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_PrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo0 *r)
229 if (ndr_flags & NDR_SCALARS) {
230 NDR_CHECK(ndr_push_align(ndr, 4));
232 uint32_t _flags_save_string = ndr->flags;
233 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
234 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
235 ndr->flags = _flags_save_string;
238 uint32_t _flags_save_string = ndr->flags;
239 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
240 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
241 ndr->flags = _flags_save_string;
243 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
244 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
245 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
246 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
247 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
248 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
249 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
250 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
251 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
252 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
253 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
254 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
255 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
256 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_error));
257 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
258 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
259 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
260 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
261 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
262 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status));
263 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
264 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
265 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
266 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
267 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
268 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
269 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
271 if (ndr_flags & NDR_BUFFERS) {
273 uint32_t _flags_save_string = ndr->flags;
274 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
275 if (r->printername) {
276 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
277 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
279 ndr->flags = _flags_save_string;
282 uint32_t _flags_save_string = ndr->flags;
283 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
285 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
286 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
288 ndr->flags = _flags_save_string;
291 return NDR_ERR_SUCCESS;
294 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo0 *r)
296 uint32_t _ptr_printername;
297 TALLOC_CTX *_mem_save_printername_0;
298 uint32_t _ptr_servername;
299 TALLOC_CTX *_mem_save_servername_0;
300 if (ndr_flags & NDR_SCALARS) {
301 NDR_CHECK(ndr_pull_align(ndr, 4));
303 uint32_t _flags_save_string = ndr->flags;
304 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
305 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
306 if (_ptr_printername) {
307 NDR_PULL_ALLOC(ndr, r->printername);
308 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
310 r->printername = NULL;
312 ndr->flags = _flags_save_string;
315 uint32_t _flags_save_string = ndr->flags;
316 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
317 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
318 if (_ptr_servername) {
319 NDR_PULL_ALLOC(ndr, r->servername);
320 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
322 r->servername = NULL;
324 ndr->flags = _flags_save_string;
326 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
327 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
328 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
329 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
330 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
331 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
332 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
333 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
334 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
335 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
336 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
337 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
338 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
339 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_error));
340 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
341 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
342 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
343 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
344 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
345 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status));
346 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
347 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
348 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
349 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
350 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
351 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
352 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
354 if (ndr_flags & NDR_BUFFERS) {
356 uint32_t _flags_save_string = ndr->flags;
357 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
358 if (r->printername) {
359 uint32_t _relative_save_offset;
360 _relative_save_offset = ndr->offset;
361 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
362 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
363 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
364 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
365 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
366 ndr->offset = _relative_save_offset;
368 ndr->flags = _flags_save_string;
371 uint32_t _flags_save_string = ndr->flags;
372 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
374 uint32_t _relative_save_offset;
375 _relative_save_offset = ndr->offset;
376 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
377 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
378 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
379 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
380 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
381 ndr->offset = _relative_save_offset;
383 ndr->flags = _flags_save_string;
386 return NDR_ERR_SUCCESS;
389 _PUBLIC_ void ndr_print_spoolss_PrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo0 *r)
391 ndr_print_struct(ndr, name, "spoolss_PrinterInfo0");
393 ndr_print_ptr(ndr, "printername", r->printername);
395 if (r->printername) {
396 ndr_print_string(ndr, "printername", r->printername);
399 ndr_print_ptr(ndr, "servername", r->servername);
402 ndr_print_string(ndr, "servername", r->servername);
405 ndr_print_uint32(ndr, "cjobs", r->cjobs);
406 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
407 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
408 ndr_print_spoolss_Time(ndr, "time", &r->time);
409 ndr_print_uint32(ndr, "global_counter", r->global_counter);
410 ndr_print_uint32(ndr, "total_pages", r->total_pages);
411 ndr_print_uint32(ndr, "version", r->version);
412 ndr_print_uint32(ndr, "free_build", r->free_build);
413 ndr_print_uint32(ndr, "spooling", r->spooling);
414 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
415 ndr_print_uint32(ndr, "session_counter", r->session_counter);
416 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
417 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
418 ndr_print_uint32(ndr, "job_error", r->job_error);
419 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
420 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
421 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
422 ndr_print_uint32(ndr, "change_id", r->change_id);
423 ndr_print_WERROR(ndr, "last_error", r->last_error);
424 ndr_print_uint32(ndr, "status", r->status);
425 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
426 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
427 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
428 ndr_print_uint16(ndr, "processor_level", r->processor_level);
429 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
430 ndr_print_uint32(ndr, "reserved2", r->reserved2);
431 ndr_print_uint32(ndr, "reserved3", r->reserved3);
435 static enum ndr_err_code ndr_push_spoolss_DeviceModeFields(struct ndr_push *ndr, int ndr_flags, uint32_t r)
437 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
438 return NDR_ERR_SUCCESS;
441 static enum ndr_err_code ndr_pull_spoolss_DeviceModeFields(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
444 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
446 return NDR_ERR_SUCCESS;
449 _PUBLIC_ void ndr_print_spoolss_DeviceModeFields(struct ndr_print *ndr, const char *name, uint32_t r)
451 ndr_print_uint32(ndr, name, r);
453 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ORIENTATION", DEVMODE_ORIENTATION, r);
454 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERSIZE", DEVMODE_PAPERSIZE, r);
455 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERLENGTH", DEVMODE_PAPERLENGTH, r);
456 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERWIDTH", DEVMODE_PAPERWIDTH, r);
457 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_SCALE", DEVMODE_SCALE, r);
458 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_POSITION", DEVMODE_POSITION, r);
459 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_NUP", DEVMODE_NUP, r);
460 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COPIES", DEVMODE_COPIES, r);
461 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DEFAULTSOURCE", DEVMODE_DEFAULTSOURCE, r);
462 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PRINTQUALITY", DEVMODE_PRINTQUALITY, r);
463 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLOR", DEVMODE_COLOR, r);
464 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DUPLEX", DEVMODE_DUPLEX, r);
465 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_YRESOLUTION", DEVMODE_YRESOLUTION, r);
466 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_TTOPTION", DEVMODE_TTOPTION, r);
467 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLLATE", DEVMODE_COLLATE, r);
468 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_FORMNAME", DEVMODE_FORMNAME, r);
469 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_LOGPIXELS", DEVMODE_LOGPIXELS, r);
470 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_BITSPERPEL", DEVMODE_BITSPERPEL, r);
471 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSWIDTH", DEVMODE_PELSWIDTH, r);
472 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSHEIGHT", DEVMODE_PELSHEIGHT, r);
473 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFLAGS", DEVMODE_DISPLAYFLAGS, r);
474 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFREQUENCY", DEVMODE_DISPLAYFREQUENCY, r);
475 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMMETHOD", DEVMODE_ICMMETHOD, r);
476 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMINTENT", DEVMODE_ICMINTENT, r);
477 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_MEDIATYPE", DEVMODE_MEDIATYPE, r);
478 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DITHERTYPE", DEVMODE_DITHERTYPE, r);
479 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGWIDTH", DEVMODE_PANNINGWIDTH, r);
480 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGHEIGHT", DEVMODE_PANNINGHEIGHT, r);
484 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeviceMode(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceMode *r)
486 if (ndr_flags & NDR_SCALARS) {
487 NDR_CHECK(ndr_push_align(ndr, 4));
488 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->devicename, 32, sizeof(uint16_t), CH_UTF16));
489 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->specversion));
490 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverversion));
491 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
492 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverextra_data.length));
493 NDR_CHECK(ndr_push_spoolss_DeviceModeFields(ndr, NDR_SCALARS, r->fields));
494 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->orientation));
495 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->papersize));
496 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperlength));
497 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperwidth));
498 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->scale));
499 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->copies));
500 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->defaultsource));
501 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->printquality));
502 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->color));
503 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->duplex));
504 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->yresolution));
505 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ttoption));
506 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->collate));
507 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, 32, sizeof(uint16_t), CH_UTF16));
508 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logpixels));
509 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bitsperpel));
510 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelswidth));
511 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelsheight));
512 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayflags));
513 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayfrequency));
514 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->icmmethod));
515 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->icmintent));
516 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->mediatype));
517 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dithertype));
518 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved1));
519 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
520 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningwidth));
521 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningheight));
523 uint32_t _flags_save_DATA_BLOB = ndr->flags;
524 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
526 struct ndr_push *_ndr_driverextra_data;
527 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->driverextra_data.length));
528 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, r->driverextra_data));
529 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_driverextra_data, 0, r->driverextra_data.length));
531 ndr->flags = _flags_save_DATA_BLOB;
534 if (ndr_flags & NDR_BUFFERS) {
536 return NDR_ERR_SUCCESS;
539 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeviceMode(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceMode *r)
541 if (ndr_flags & NDR_SCALARS) {
542 NDR_CHECK(ndr_pull_align(ndr, 4));
543 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->devicename, 32, sizeof(uint16_t), CH_UTF16));
544 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->specversion));
545 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->driverversion));
546 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
547 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->__driverextra_length));
548 NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr, NDR_SCALARS, &r->fields));
549 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->orientation));
550 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->papersize));
551 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperlength));
552 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperwidth));
553 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->scale));
554 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->copies));
555 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->defaultsource));
556 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->printquality));
557 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->color));
558 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->duplex));
559 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->yresolution));
560 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ttoption));
561 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->collate));
562 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, 32, sizeof(uint16_t), CH_UTF16));
563 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logpixels));
564 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bitsperpel));
565 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelswidth));
566 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelsheight));
567 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayflags));
568 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayfrequency));
569 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->icmmethod));
570 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->icmintent));
571 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->mediatype));
572 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dithertype));
573 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
574 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
575 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningwidth));
576 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningheight));
578 uint32_t _flags_save_DATA_BLOB = ndr->flags;
579 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
581 struct ndr_pull *_ndr_driverextra_data;
582 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->__driverextra_length));
583 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, &r->driverextra_data));
584 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_driverextra_data, 0, r->__driverextra_length));
586 ndr->flags = _flags_save_DATA_BLOB;
589 if (ndr_flags & NDR_BUFFERS) {
591 return NDR_ERR_SUCCESS;
594 _PUBLIC_ void ndr_print_spoolss_DeviceMode(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceMode *r)
596 ndr_print_struct(ndr, name, "spoolss_DeviceMode");
598 ndr_print_string(ndr, "devicename", r->devicename);
599 ndr_print_uint16(ndr, "specversion", r->specversion);
600 ndr_print_uint16(ndr, "driverversion", r->driverversion);
601 ndr_print_uint16(ndr, "size", r->size);
602 ndr_print_uint16(ndr, "__driverextra_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->driverextra_data.length:r->__driverextra_length);
603 ndr_print_spoolss_DeviceModeFields(ndr, "fields", r->fields);
604 ndr_print_uint16(ndr, "orientation", r->orientation);
605 ndr_print_uint16(ndr, "papersize", r->papersize);
606 ndr_print_uint16(ndr, "paperlength", r->paperlength);
607 ndr_print_uint16(ndr, "paperwidth", r->paperwidth);
608 ndr_print_uint16(ndr, "scale", r->scale);
609 ndr_print_uint16(ndr, "copies", r->copies);
610 ndr_print_uint16(ndr, "defaultsource", r->defaultsource);
611 ndr_print_uint16(ndr, "printquality", r->printquality);
612 ndr_print_uint16(ndr, "color", r->color);
613 ndr_print_uint16(ndr, "duplex", r->duplex);
614 ndr_print_uint16(ndr, "yresolution", r->yresolution);
615 ndr_print_uint16(ndr, "ttoption", r->ttoption);
616 ndr_print_uint16(ndr, "collate", r->collate);
617 ndr_print_string(ndr, "formname", r->formname);
618 ndr_print_uint16(ndr, "logpixels", r->logpixels);
619 ndr_print_uint32(ndr, "bitsperpel", r->bitsperpel);
620 ndr_print_uint32(ndr, "pelswidth", r->pelswidth);
621 ndr_print_uint32(ndr, "pelsheight", r->pelsheight);
622 ndr_print_uint32(ndr, "displayflags", r->displayflags);
623 ndr_print_uint32(ndr, "displayfrequency", r->displayfrequency);
624 ndr_print_uint32(ndr, "icmmethod", r->icmmethod);
625 ndr_print_uint32(ndr, "icmintent", r->icmintent);
626 ndr_print_uint32(ndr, "mediatype", r->mediatype);
627 ndr_print_uint32(ndr, "dithertype", r->dithertype);
628 ndr_print_uint32(ndr, "reserved1", r->reserved1);
629 ndr_print_uint32(ndr, "reserved2", r->reserved2);
630 ndr_print_uint32(ndr, "panningwidth", r->panningwidth);
631 ndr_print_uint32(ndr, "panningheight", r->panningheight);
632 ndr_print_DATA_BLOB(ndr, "driverextra_data", r->driverextra_data);
636 _PUBLIC_ size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode *r, struct smb_iconv_convenience *ic, int flags)
638 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DeviceMode, ic);
641 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
643 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
644 return NDR_ERR_SUCCESS;
647 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
650 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
652 return NDR_ERR_SUCCESS;
655 _PUBLIC_ void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print *ndr, const char *name, uint32_t r)
657 ndr_print_uint32(ndr, name, r);
659 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT, r);
660 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL, r);
661 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS, r);
662 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE, r);
663 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME, r);
664 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE, r);
665 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED, r);
666 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK, r);
667 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND, r);
668 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER, r);
669 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1, r);
670 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2, r);
671 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3, r);
672 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4, r);
673 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5, r);
674 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6, r);
675 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7, r);
676 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8, r);
677 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE, r);
681 static enum ndr_err_code ndr_push_spoolss_PrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo1 *r)
683 if (ndr_flags & NDR_SCALARS) {
684 NDR_CHECK(ndr_push_align(ndr, 4));
685 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->flags));
687 uint32_t _flags_save_string = ndr->flags;
688 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
689 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name));
690 ndr->flags = _flags_save_string;
693 uint32_t _flags_save_string = ndr->flags;
694 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
695 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
696 ndr->flags = _flags_save_string;
699 uint32_t _flags_save_string = ndr->flags;
700 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
701 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
702 ndr->flags = _flags_save_string;
705 if (ndr_flags & NDR_BUFFERS) {
707 uint32_t _flags_save_string = ndr->flags;
708 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
710 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->name));
711 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name));
713 ndr->flags = _flags_save_string;
716 uint32_t _flags_save_string = ndr->flags;
717 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
718 if (r->description) {
719 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
720 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
722 ndr->flags = _flags_save_string;
725 uint32_t _flags_save_string = ndr->flags;
726 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
728 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->comment));
729 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
731 ndr->flags = _flags_save_string;
734 return NDR_ERR_SUCCESS;
737 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo1 *r)
740 TALLOC_CTX *_mem_save_name_0;
741 uint32_t _ptr_description;
742 TALLOC_CTX *_mem_save_description_0;
743 uint32_t _ptr_comment;
744 TALLOC_CTX *_mem_save_comment_0;
745 if (ndr_flags & NDR_SCALARS) {
746 NDR_CHECK(ndr_pull_align(ndr, 4));
747 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->flags));
749 uint32_t _flags_save_string = ndr->flags;
750 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
751 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
753 NDR_PULL_ALLOC(ndr, r->name);
754 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name, _ptr_name));
758 ndr->flags = _flags_save_string;
761 uint32_t _flags_save_string = ndr->flags;
762 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
763 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
764 if (_ptr_description) {
765 NDR_PULL_ALLOC(ndr, r->description);
766 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
768 r->description = NULL;
770 ndr->flags = _flags_save_string;
773 uint32_t _flags_save_string = ndr->flags;
774 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
775 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
777 NDR_PULL_ALLOC(ndr, r->comment);
778 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
782 ndr->flags = _flags_save_string;
785 if (ndr_flags & NDR_BUFFERS) {
787 uint32_t _flags_save_string = ndr->flags;
788 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
790 uint32_t _relative_save_offset;
791 _relative_save_offset = ndr->offset;
792 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name));
793 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
794 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
795 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name));
796 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
797 ndr->offset = _relative_save_offset;
799 ndr->flags = _flags_save_string;
802 uint32_t _flags_save_string = ndr->flags;
803 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
804 if (r->description) {
805 uint32_t _relative_save_offset;
806 _relative_save_offset = ndr->offset;
807 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
808 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
809 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
810 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
811 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
812 ndr->offset = _relative_save_offset;
814 ndr->flags = _flags_save_string;
817 uint32_t _flags_save_string = ndr->flags;
818 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
820 uint32_t _relative_save_offset;
821 _relative_save_offset = ndr->offset;
822 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
823 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
824 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
825 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
826 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
827 ndr->offset = _relative_save_offset;
829 ndr->flags = _flags_save_string;
832 return NDR_ERR_SUCCESS;
835 _PUBLIC_ void ndr_print_spoolss_PrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo1 *r)
837 ndr_print_struct(ndr, name, "spoolss_PrinterInfo1");
839 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->flags);
840 ndr_print_ptr(ndr, "name", r->name);
843 ndr_print_string(ndr, "name", r->name);
846 ndr_print_ptr(ndr, "description", r->description);
848 if (r->description) {
849 ndr_print_string(ndr, "description", r->description);
852 ndr_print_ptr(ndr, "comment", r->comment);
855 ndr_print_string(ndr, "comment", r->comment);
861 static enum ndr_err_code ndr_push_spoolss_PrinterAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
863 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
864 return NDR_ERR_SUCCESS;
867 static enum ndr_err_code ndr_pull_spoolss_PrinterAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
870 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
872 return NDR_ERR_SUCCESS;
875 _PUBLIC_ void ndr_print_spoolss_PrinterAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
877 ndr_print_uint32(ndr, name, r);
879 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED, r);
880 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT, r);
881 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT, r);
882 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED, r);
883 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK, r);
884 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN, r);
885 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL, r);
886 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ, r);
887 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS, r);
888 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST, r);
889 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE, r);
890 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI, r);
891 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY, r);
892 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED, r);
893 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX, r);
894 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS, r);
898 static enum ndr_err_code ndr_push_spoolss_PrinterStatus(struct ndr_push *ndr, int ndr_flags, uint32_t r)
900 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
901 return NDR_ERR_SUCCESS;
904 static enum ndr_err_code ndr_pull_spoolss_PrinterStatus(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
907 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
909 return NDR_ERR_SUCCESS;
912 _PUBLIC_ void ndr_print_spoolss_PrinterStatus(struct ndr_print *ndr, const char *name, uint32_t r)
914 ndr_print_uint32(ndr, name, r);
916 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAUSED", PRINTER_STATUS_PAUSED, r);
917 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_ERROR", PRINTER_STATUS_ERROR, r);
918 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PENDING_DELETION", PRINTER_STATUS_PENDING_DELETION, r);
919 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_JAM", PRINTER_STATUS_PAPER_JAM, r);
920 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_OUT", PRINTER_STATUS_PAPER_OUT, r);
921 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_MANUAL_FEED", PRINTER_STATUS_MANUAL_FEED, r);
922 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_PROBLEM", PRINTER_STATUS_PAPER_PROBLEM, r);
923 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OFFLINE", PRINTER_STATUS_OFFLINE, r);
924 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_IO_ACTIVE", PRINTER_STATUS_IO_ACTIVE, r);
925 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_BUSY", PRINTER_STATUS_BUSY, r);
926 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PRINTING", PRINTER_STATUS_PRINTING, r);
927 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUTPUT_BIN_FULL", PRINTER_STATUS_OUTPUT_BIN_FULL, r);
928 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NOT_AVAILABLE", PRINTER_STATUS_NOT_AVAILABLE, r);
929 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WAITING", PRINTER_STATUS_WAITING, r);
930 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PROCESSING", PRINTER_STATUS_PROCESSING, r);
931 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_INITIALIZING", PRINTER_STATUS_INITIALIZING, r);
932 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WARMING_UP", PRINTER_STATUS_WARMING_UP, r);
933 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_TONER_LOW", PRINTER_STATUS_TONER_LOW, r);
934 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NO_TONER", PRINTER_STATUS_NO_TONER, r);
935 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAGE_PUNT", PRINTER_STATUS_PAGE_PUNT, r);
936 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_USER_INTERVENTION", PRINTER_STATUS_USER_INTERVENTION, r);
937 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUT_OF_MEMORY", PRINTER_STATUS_OUT_OF_MEMORY, r);
938 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_DOOR_OPEN", PRINTER_STATUS_DOOR_OPEN, r);
939 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_SERVER_UNKNOWN", PRINTER_STATUS_SERVER_UNKNOWN, r);
940 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_POWER_SAVE", PRINTER_STATUS_POWER_SAVE, r);
944 static enum ndr_err_code ndr_push_spoolss_PrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo2 *r)
946 if (ndr_flags & NDR_SCALARS) {
947 NDR_CHECK(ndr_push_align(ndr, 4));
949 uint32_t _flags_save_string = ndr->flags;
950 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
951 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
952 ndr->flags = _flags_save_string;
955 uint32_t _flags_save_string = ndr->flags;
956 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
957 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
958 ndr->flags = _flags_save_string;
961 uint32_t _flags_save_string = ndr->flags;
962 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
963 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sharename));
964 ndr->flags = _flags_save_string;
967 uint32_t _flags_save_string = ndr->flags;
968 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
969 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
970 ndr->flags = _flags_save_string;
973 uint32_t _flags_save_string = ndr->flags;
974 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
975 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->drivername));
976 ndr->flags = _flags_save_string;
979 uint32_t _flags_save_string = ndr->flags;
980 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
981 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
982 ndr->flags = _flags_save_string;
985 uint32_t _flags_save_string = ndr->flags;
986 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
987 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->location));
988 ndr->flags = _flags_save_string;
990 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
992 uint32_t _flags_save_string = ndr->flags;
993 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
994 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sepfile));
995 ndr->flags = _flags_save_string;
998 uint32_t _flags_save_string = ndr->flags;
999 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1000 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printprocessor));
1001 ndr->flags = _flags_save_string;
1004 uint32_t _flags_save_string = ndr->flags;
1005 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1006 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->datatype));
1007 ndr->flags = _flags_save_string;
1010 uint32_t _flags_save_string = ndr->flags;
1011 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1012 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
1013 ndr->flags = _flags_save_string;
1015 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
1016 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1017 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
1018 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
1019 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
1020 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
1021 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
1022 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
1023 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
1025 if (ndr_flags & NDR_BUFFERS) {
1027 uint32_t _flags_save_string = ndr->flags;
1028 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1029 if (r->servername) {
1030 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
1031 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
1033 ndr->flags = _flags_save_string;
1036 uint32_t _flags_save_string = ndr->flags;
1037 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1038 if (r->printername) {
1039 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1040 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1042 ndr->flags = _flags_save_string;
1045 uint32_t _flags_save_string = ndr->flags;
1046 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1048 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->sharename));
1049 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sharename));
1051 ndr->flags = _flags_save_string;
1054 uint32_t _flags_save_string = ndr->flags;
1055 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1057 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->portname));
1058 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
1060 ndr->flags = _flags_save_string;
1063 uint32_t _flags_save_string = ndr->flags;
1064 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1065 if (r->drivername) {
1066 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->drivername));
1067 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->drivername));
1069 ndr->flags = _flags_save_string;
1072 uint32_t _flags_save_string = ndr->flags;
1073 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1075 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->comment));
1076 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
1078 ndr->flags = _flags_save_string;
1081 uint32_t _flags_save_string = ndr->flags;
1082 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1084 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->location));
1085 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->location));
1087 ndr->flags = _flags_save_string;
1090 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
1092 struct ndr_push *_ndr_devmode;
1093 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1094 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1095 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
1099 uint32_t _flags_save_string = ndr->flags;
1100 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1102 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->sepfile));
1103 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sepfile));
1105 ndr->flags = _flags_save_string;
1108 uint32_t _flags_save_string = ndr->flags;
1109 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1110 if (r->printprocessor) {
1111 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printprocessor));
1112 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printprocessor));
1114 ndr->flags = _flags_save_string;
1117 uint32_t _flags_save_string = ndr->flags;
1118 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1120 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->datatype));
1121 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->datatype));
1123 ndr->flags = _flags_save_string;
1126 uint32_t _flags_save_string = ndr->flags;
1127 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1128 if (r->parameters) {
1129 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
1130 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
1132 ndr->flags = _flags_save_string;
1135 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
1137 struct ndr_push *_ndr_secdesc;
1138 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1139 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1140 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1144 return NDR_ERR_SUCCESS;
1147 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo2 *r)
1149 uint32_t _ptr_servername;
1150 TALLOC_CTX *_mem_save_servername_0;
1151 uint32_t _ptr_printername;
1152 TALLOC_CTX *_mem_save_printername_0;
1153 uint32_t _ptr_sharename;
1154 TALLOC_CTX *_mem_save_sharename_0;
1155 uint32_t _ptr_portname;
1156 TALLOC_CTX *_mem_save_portname_0;
1157 uint32_t _ptr_drivername;
1158 TALLOC_CTX *_mem_save_drivername_0;
1159 uint32_t _ptr_comment;
1160 TALLOC_CTX *_mem_save_comment_0;
1161 uint32_t _ptr_location;
1162 TALLOC_CTX *_mem_save_location_0;
1163 uint32_t _ptr_devmode;
1164 TALLOC_CTX *_mem_save_devmode_0;
1165 uint32_t _ptr_sepfile;
1166 TALLOC_CTX *_mem_save_sepfile_0;
1167 uint32_t _ptr_printprocessor;
1168 TALLOC_CTX *_mem_save_printprocessor_0;
1169 uint32_t _ptr_datatype;
1170 TALLOC_CTX *_mem_save_datatype_0;
1171 uint32_t _ptr_parameters;
1172 TALLOC_CTX *_mem_save_parameters_0;
1173 uint32_t _ptr_secdesc;
1174 TALLOC_CTX *_mem_save_secdesc_0;
1175 if (ndr_flags & NDR_SCALARS) {
1176 NDR_CHECK(ndr_pull_align(ndr, 4));
1178 uint32_t _flags_save_string = ndr->flags;
1179 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1180 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1181 if (_ptr_servername) {
1182 NDR_PULL_ALLOC(ndr, r->servername);
1183 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1185 r->servername = NULL;
1187 ndr->flags = _flags_save_string;
1190 uint32_t _flags_save_string = ndr->flags;
1191 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1192 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1193 if (_ptr_printername) {
1194 NDR_PULL_ALLOC(ndr, r->printername);
1195 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1197 r->printername = NULL;
1199 ndr->flags = _flags_save_string;
1202 uint32_t _flags_save_string = ndr->flags;
1203 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1204 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
1205 if (_ptr_sharename) {
1206 NDR_PULL_ALLOC(ndr, r->sharename);
1207 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sharename, _ptr_sharename));
1209 r->sharename = NULL;
1211 ndr->flags = _flags_save_string;
1214 uint32_t _flags_save_string = ndr->flags;
1215 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1216 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1217 if (_ptr_portname) {
1218 NDR_PULL_ALLOC(ndr, r->portname);
1219 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1223 ndr->flags = _flags_save_string;
1226 uint32_t _flags_save_string = ndr->flags;
1227 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1228 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
1229 if (_ptr_drivername) {
1230 NDR_PULL_ALLOC(ndr, r->drivername);
1231 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->drivername, _ptr_drivername));
1233 r->drivername = NULL;
1235 ndr->flags = _flags_save_string;
1238 uint32_t _flags_save_string = ndr->flags;
1239 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1240 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1242 NDR_PULL_ALLOC(ndr, r->comment);
1243 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1247 ndr->flags = _flags_save_string;
1250 uint32_t _flags_save_string = ndr->flags;
1251 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1252 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
1253 if (_ptr_location) {
1254 NDR_PULL_ALLOC(ndr, r->location);
1255 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->location, _ptr_location));
1259 ndr->flags = _flags_save_string;
1261 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
1263 NDR_PULL_ALLOC(ndr, r->devmode);
1264 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
1269 uint32_t _flags_save_string = ndr->flags;
1270 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1271 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
1273 NDR_PULL_ALLOC(ndr, r->sepfile);
1274 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sepfile, _ptr_sepfile));
1278 ndr->flags = _flags_save_string;
1281 uint32_t _flags_save_string = ndr->flags;
1282 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1283 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
1284 if (_ptr_printprocessor) {
1285 NDR_PULL_ALLOC(ndr, r->printprocessor);
1286 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printprocessor, _ptr_printprocessor));
1288 r->printprocessor = NULL;
1290 ndr->flags = _flags_save_string;
1293 uint32_t _flags_save_string = ndr->flags;
1294 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1295 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
1296 if (_ptr_datatype) {
1297 NDR_PULL_ALLOC(ndr, r->datatype);
1298 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->datatype, _ptr_datatype));
1302 ndr->flags = _flags_save_string;
1305 uint32_t _flags_save_string = ndr->flags;
1306 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1307 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
1308 if (_ptr_parameters) {
1309 NDR_PULL_ALLOC(ndr, r->parameters);
1310 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
1312 r->parameters = NULL;
1314 ndr->flags = _flags_save_string;
1316 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1318 NDR_PULL_ALLOC(ndr, r->secdesc);
1319 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1323 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1324 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
1325 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
1326 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
1327 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
1328 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
1329 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
1330 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
1332 if (ndr_flags & NDR_BUFFERS) {
1334 uint32_t _flags_save_string = ndr->flags;
1335 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1336 if (r->servername) {
1337 uint32_t _relative_save_offset;
1338 _relative_save_offset = ndr->offset;
1339 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1340 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1341 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1342 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1343 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
1344 ndr->offset = _relative_save_offset;
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 if (r->printername) {
1352 uint32_t _relative_save_offset;
1353 _relative_save_offset = ndr->offset;
1354 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1355 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1356 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1357 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1358 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1359 ndr->offset = _relative_save_offset;
1361 ndr->flags = _flags_save_string;
1364 uint32_t _flags_save_string = ndr->flags;
1365 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1367 uint32_t _relative_save_offset;
1368 _relative_save_offset = ndr->offset;
1369 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sharename));
1370 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
1371 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
1372 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sharename));
1373 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
1374 ndr->offset = _relative_save_offset;
1376 ndr->flags = _flags_save_string;
1379 uint32_t _flags_save_string = ndr->flags;
1380 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1382 uint32_t _relative_save_offset;
1383 _relative_save_offset = ndr->offset;
1384 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
1385 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1386 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
1387 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
1388 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
1389 ndr->offset = _relative_save_offset;
1391 ndr->flags = _flags_save_string;
1394 uint32_t _flags_save_string = ndr->flags;
1395 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1396 if (r->drivername) {
1397 uint32_t _relative_save_offset;
1398 _relative_save_offset = ndr->offset;
1399 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->drivername));
1400 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1401 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
1402 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->drivername));
1403 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
1404 ndr->offset = _relative_save_offset;
1406 ndr->flags = _flags_save_string;
1409 uint32_t _flags_save_string = ndr->flags;
1410 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1412 uint32_t _relative_save_offset;
1413 _relative_save_offset = ndr->offset;
1414 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
1415 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
1416 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
1417 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
1418 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
1419 ndr->offset = _relative_save_offset;
1421 ndr->flags = _flags_save_string;
1424 uint32_t _flags_save_string = ndr->flags;
1425 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1427 uint32_t _relative_save_offset;
1428 _relative_save_offset = ndr->offset;
1429 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->location));
1430 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
1431 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
1432 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->location));
1433 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
1434 ndr->offset = _relative_save_offset;
1436 ndr->flags = _flags_save_string;
1439 uint32_t _relative_save_offset;
1440 _relative_save_offset = ndr->offset;
1441 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
1442 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
1443 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
1445 struct ndr_pull *_ndr_devmode;
1446 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1447 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1448 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
1450 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
1451 ndr->offset = _relative_save_offset;
1454 uint32_t _flags_save_string = ndr->flags;
1455 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1457 uint32_t _relative_save_offset;
1458 _relative_save_offset = ndr->offset;
1459 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sepfile));
1460 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
1461 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
1462 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sepfile));
1463 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
1464 ndr->offset = _relative_save_offset;
1466 ndr->flags = _flags_save_string;
1469 uint32_t _flags_save_string = ndr->flags;
1470 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1471 if (r->printprocessor) {
1472 uint32_t _relative_save_offset;
1473 _relative_save_offset = ndr->offset;
1474 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printprocessor));
1475 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
1476 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
1477 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printprocessor));
1478 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
1479 ndr->offset = _relative_save_offset;
1481 ndr->flags = _flags_save_string;
1484 uint32_t _flags_save_string = ndr->flags;
1485 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1487 uint32_t _relative_save_offset;
1488 _relative_save_offset = ndr->offset;
1489 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->datatype));
1490 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
1491 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
1492 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->datatype));
1493 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
1494 ndr->offset = _relative_save_offset;
1496 ndr->flags = _flags_save_string;
1499 uint32_t _flags_save_string = ndr->flags;
1500 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1501 if (r->parameters) {
1502 uint32_t _relative_save_offset;
1503 _relative_save_offset = ndr->offset;
1504 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
1505 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
1506 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
1507 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
1508 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
1509 ndr->offset = _relative_save_offset;
1511 ndr->flags = _flags_save_string;
1514 uint32_t _relative_save_offset;
1515 _relative_save_offset = ndr->offset;
1516 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
1517 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
1518 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
1520 struct ndr_pull *_ndr_secdesc;
1521 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1522 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1523 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1525 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
1526 ndr->offset = _relative_save_offset;
1529 return NDR_ERR_SUCCESS;
1532 _PUBLIC_ void ndr_print_spoolss_PrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo2 *r)
1534 ndr_print_struct(ndr, name, "spoolss_PrinterInfo2");
1536 ndr_print_ptr(ndr, "servername", r->servername);
1538 if (r->servername) {
1539 ndr_print_string(ndr, "servername", r->servername);
1542 ndr_print_ptr(ndr, "printername", r->printername);
1544 if (r->printername) {
1545 ndr_print_string(ndr, "printername", r->printername);
1548 ndr_print_ptr(ndr, "sharename", r->sharename);
1551 ndr_print_string(ndr, "sharename", r->sharename);
1554 ndr_print_ptr(ndr, "portname", r->portname);
1557 ndr_print_string(ndr, "portname", r->portname);
1560 ndr_print_ptr(ndr, "drivername", r->drivername);
1562 if (r->drivername) {
1563 ndr_print_string(ndr, "drivername", r->drivername);
1566 ndr_print_ptr(ndr, "comment", r->comment);
1569 ndr_print_string(ndr, "comment", r->comment);
1572 ndr_print_ptr(ndr, "location", r->location);
1575 ndr_print_string(ndr, "location", r->location);
1578 ndr_print_ptr(ndr, "devmode", r->devmode);
1581 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
1584 ndr_print_ptr(ndr, "sepfile", r->sepfile);
1587 ndr_print_string(ndr, "sepfile", r->sepfile);
1590 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
1592 if (r->printprocessor) {
1593 ndr_print_string(ndr, "printprocessor", r->printprocessor);
1596 ndr_print_ptr(ndr, "datatype", r->datatype);
1599 ndr_print_string(ndr, "datatype", r->datatype);
1602 ndr_print_ptr(ndr, "parameters", r->parameters);
1604 if (r->parameters) {
1605 ndr_print_string(ndr, "parameters", r->parameters);
1608 ndr_print_ptr(ndr, "secdesc", r->secdesc);
1611 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
1614 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1615 ndr_print_uint32(ndr, "priority", r->priority);
1616 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
1617 ndr_print_uint32(ndr, "starttime", r->starttime);
1618 ndr_print_uint32(ndr, "untiltime", r->untiltime);
1619 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
1620 ndr_print_uint32(ndr, "cjobs", r->cjobs);
1621 ndr_print_uint32(ndr, "averageppm", r->averageppm);
1625 static enum ndr_err_code ndr_push_spoolss_PrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo3 *r)
1627 if (ndr_flags & NDR_SCALARS) {
1628 NDR_CHECK(ndr_push_align(ndr, 4));
1629 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
1631 if (ndr_flags & NDR_BUFFERS) {
1633 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
1635 struct ndr_push *_ndr_secdesc;
1636 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1637 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1638 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1642 return NDR_ERR_SUCCESS;
1645 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo3 *r)
1647 uint32_t _ptr_secdesc;
1648 TALLOC_CTX *_mem_save_secdesc_0;
1649 if (ndr_flags & NDR_SCALARS) {
1650 NDR_CHECK(ndr_pull_align(ndr, 4));
1651 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1653 NDR_PULL_ALLOC(ndr, r->secdesc);
1654 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1659 if (ndr_flags & NDR_BUFFERS) {
1661 uint32_t _relative_save_offset;
1662 _relative_save_offset = ndr->offset;
1663 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
1664 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
1665 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
1667 struct ndr_pull *_ndr_secdesc;
1668 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1669 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1670 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1672 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
1673 ndr->offset = _relative_save_offset;
1676 return NDR_ERR_SUCCESS;
1679 _PUBLIC_ void ndr_print_spoolss_PrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo3 *r)
1681 ndr_print_struct(ndr, name, "spoolss_PrinterInfo3");
1683 ndr_print_ptr(ndr, "secdesc", r->secdesc);
1686 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
1692 static enum ndr_err_code ndr_push_spoolss_PrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo4 *r)
1694 if (ndr_flags & NDR_SCALARS) {
1695 NDR_CHECK(ndr_push_align(ndr, 4));
1697 uint32_t _flags_save_string = ndr->flags;
1698 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1699 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1700 ndr->flags = _flags_save_string;
1703 uint32_t _flags_save_string = ndr->flags;
1704 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1705 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
1706 ndr->flags = _flags_save_string;
1708 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1710 if (ndr_flags & NDR_BUFFERS) {
1712 uint32_t _flags_save_string = ndr->flags;
1713 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1714 if (r->printername) {
1715 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1716 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1718 ndr->flags = _flags_save_string;
1721 uint32_t _flags_save_string = ndr->flags;
1722 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1723 if (r->servername) {
1724 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
1725 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
1727 ndr->flags = _flags_save_string;
1730 return NDR_ERR_SUCCESS;
1733 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo4 *r)
1735 uint32_t _ptr_printername;
1736 TALLOC_CTX *_mem_save_printername_0;
1737 uint32_t _ptr_servername;
1738 TALLOC_CTX *_mem_save_servername_0;
1739 if (ndr_flags & NDR_SCALARS) {
1740 NDR_CHECK(ndr_pull_align(ndr, 4));
1742 uint32_t _flags_save_string = ndr->flags;
1743 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1744 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1745 if (_ptr_printername) {
1746 NDR_PULL_ALLOC(ndr, r->printername);
1747 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1749 r->printername = NULL;
1751 ndr->flags = _flags_save_string;
1754 uint32_t _flags_save_string = ndr->flags;
1755 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1756 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1757 if (_ptr_servername) {
1758 NDR_PULL_ALLOC(ndr, r->servername);
1759 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1761 r->servername = NULL;
1763 ndr->flags = _flags_save_string;
1765 NDR_CHECK(ndr_pull_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 uint32_t _relative_save_offset;
1773 _relative_save_offset = ndr->offset;
1774 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1775 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1776 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1777 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1778 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1779 ndr->offset = _relative_save_offset;
1781 ndr->flags = _flags_save_string;
1784 uint32_t _flags_save_string = ndr->flags;
1785 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1786 if (r->servername) {
1787 uint32_t _relative_save_offset;
1788 _relative_save_offset = ndr->offset;
1789 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1790 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1791 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1792 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1793 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
1794 ndr->offset = _relative_save_offset;
1796 ndr->flags = _flags_save_string;
1799 return NDR_ERR_SUCCESS;
1802 _PUBLIC_ void ndr_print_spoolss_PrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo4 *r)
1804 ndr_print_struct(ndr, name, "spoolss_PrinterInfo4");
1806 ndr_print_ptr(ndr, "printername", r->printername);
1808 if (r->printername) {
1809 ndr_print_string(ndr, "printername", r->printername);
1812 ndr_print_ptr(ndr, "servername", r->servername);
1814 if (r->servername) {
1815 ndr_print_string(ndr, "servername", r->servername);
1818 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1822 static enum ndr_err_code ndr_push_spoolss_PrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo5 *r)
1824 if (ndr_flags & NDR_SCALARS) {
1825 NDR_CHECK(ndr_push_align(ndr, 4));
1827 uint32_t _flags_save_string = ndr->flags;
1828 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1829 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1830 ndr->flags = _flags_save_string;
1833 uint32_t _flags_save_string = ndr->flags;
1834 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1835 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
1836 ndr->flags = _flags_save_string;
1838 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1839 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
1840 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
1842 if (ndr_flags & NDR_BUFFERS) {
1844 uint32_t _flags_save_string = ndr->flags;
1845 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1846 if (r->printername) {
1847 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1848 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1850 ndr->flags = _flags_save_string;
1853 uint32_t _flags_save_string = ndr->flags;
1854 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1856 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->portname));
1857 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
1859 ndr->flags = _flags_save_string;
1862 return NDR_ERR_SUCCESS;
1865 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo5 *r)
1867 uint32_t _ptr_printername;
1868 TALLOC_CTX *_mem_save_printername_0;
1869 uint32_t _ptr_portname;
1870 TALLOC_CTX *_mem_save_portname_0;
1871 if (ndr_flags & NDR_SCALARS) {
1872 NDR_CHECK(ndr_pull_align(ndr, 4));
1874 uint32_t _flags_save_string = ndr->flags;
1875 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1876 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1877 if (_ptr_printername) {
1878 NDR_PULL_ALLOC(ndr, r->printername);
1879 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1881 r->printername = NULL;
1883 ndr->flags = _flags_save_string;
1886 uint32_t _flags_save_string = ndr->flags;
1887 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1888 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1889 if (_ptr_portname) {
1890 NDR_PULL_ALLOC(ndr, r->portname);
1891 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1895 ndr->flags = _flags_save_string;
1897 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1898 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
1899 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
1901 if (ndr_flags & NDR_BUFFERS) {
1903 uint32_t _flags_save_string = ndr->flags;
1904 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1905 if (r->printername) {
1906 uint32_t _relative_save_offset;
1907 _relative_save_offset = ndr->offset;
1908 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1909 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1910 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1911 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1912 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1913 ndr->offset = _relative_save_offset;
1915 ndr->flags = _flags_save_string;
1918 uint32_t _flags_save_string = ndr->flags;
1919 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1921 uint32_t _relative_save_offset;
1922 _relative_save_offset = ndr->offset;
1923 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
1924 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1925 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
1926 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
1927 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
1928 ndr->offset = _relative_save_offset;
1930 ndr->flags = _flags_save_string;
1933 return NDR_ERR_SUCCESS;
1936 _PUBLIC_ void ndr_print_spoolss_PrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo5 *r)
1938 ndr_print_struct(ndr, name, "spoolss_PrinterInfo5");
1940 ndr_print_ptr(ndr, "printername", r->printername);
1942 if (r->printername) {
1943 ndr_print_string(ndr, "printername", r->printername);
1946 ndr_print_ptr(ndr, "portname", r->portname);
1949 ndr_print_string(ndr, "portname", r->portname);
1952 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1953 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
1954 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
1958 static enum ndr_err_code ndr_push_spoolss_PrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo6 *r)
1960 if (ndr_flags & NDR_SCALARS) {
1961 NDR_CHECK(ndr_push_align(ndr, 4));
1962 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
1964 if (ndr_flags & NDR_BUFFERS) {
1966 return NDR_ERR_SUCCESS;
1969 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo6 *r)
1971 if (ndr_flags & NDR_SCALARS) {
1972 NDR_CHECK(ndr_pull_align(ndr, 4));
1973 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
1975 if (ndr_flags & NDR_BUFFERS) {
1977 return NDR_ERR_SUCCESS;
1980 _PUBLIC_ void ndr_print_spoolss_PrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo6 *r)
1982 ndr_print_struct(ndr, name, "spoolss_PrinterInfo6");
1984 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
1988 static enum ndr_err_code ndr_push_spoolss_DsPrintAction(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1990 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1991 return NDR_ERR_SUCCESS;
1994 static enum ndr_err_code ndr_pull_spoolss_DsPrintAction(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1997 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1999 return NDR_ERR_SUCCESS;
2002 _PUBLIC_ void ndr_print_spoolss_DsPrintAction(struct ndr_print *ndr, const char *name, uint32_t r)
2004 ndr_print_uint32(ndr, name, r);
2006 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH, r);
2007 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE, r);
2008 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH, r);
2009 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH, r);
2010 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING, r);
2014 static enum ndr_err_code ndr_push_spoolss_PrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo7 *r)
2016 if (ndr_flags & NDR_SCALARS) {
2017 NDR_CHECK(ndr_push_align(ndr, 4));
2019 uint32_t _flags_save_string = ndr->flags;
2020 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2021 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->guid));
2022 ndr->flags = _flags_save_string;
2024 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
2026 if (ndr_flags & NDR_BUFFERS) {
2028 uint32_t _flags_save_string = ndr->flags;
2029 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2031 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->guid));
2032 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->guid));
2034 ndr->flags = _flags_save_string;
2037 return NDR_ERR_SUCCESS;
2040 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo7 *r)
2043 TALLOC_CTX *_mem_save_guid_0;
2044 if (ndr_flags & NDR_SCALARS) {
2045 NDR_CHECK(ndr_pull_align(ndr, 4));
2047 uint32_t _flags_save_string = ndr->flags;
2048 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2049 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
2051 NDR_PULL_ALLOC(ndr, r->guid);
2052 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->guid, _ptr_guid));
2056 ndr->flags = _flags_save_string;
2058 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
2060 if (ndr_flags & NDR_BUFFERS) {
2062 uint32_t _flags_save_string = ndr->flags;
2063 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2065 uint32_t _relative_save_offset;
2066 _relative_save_offset = ndr->offset;
2067 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->guid));
2068 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
2069 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
2070 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->guid));
2071 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
2072 ndr->offset = _relative_save_offset;
2074 ndr->flags = _flags_save_string;
2077 return NDR_ERR_SUCCESS;
2080 _PUBLIC_ void ndr_print_spoolss_PrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo7 *r)
2082 ndr_print_struct(ndr, name, "spoolss_PrinterInfo7");
2084 ndr_print_ptr(ndr, "guid", r->guid);
2087 ndr_print_string(ndr, "guid", r->guid);
2090 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
2094 static enum ndr_err_code ndr_push_spoolss_DeviceModeInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceModeInfo *r)
2096 if (ndr_flags & NDR_SCALARS) {
2097 NDR_CHECK(ndr_push_align(ndr, 4));
2098 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
2100 if (ndr_flags & NDR_BUFFERS) {
2102 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
2104 struct ndr_push *_ndr_devmode;
2105 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2106 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2107 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
2111 return NDR_ERR_SUCCESS;
2114 static enum ndr_err_code ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceModeInfo *r)
2116 uint32_t _ptr_devmode;
2117 TALLOC_CTX *_mem_save_devmode_0;
2118 if (ndr_flags & NDR_SCALARS) {
2119 NDR_CHECK(ndr_pull_align(ndr, 4));
2120 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2122 NDR_PULL_ALLOC(ndr, r->devmode);
2123 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
2128 if (ndr_flags & NDR_BUFFERS) {
2130 uint32_t _relative_save_offset;
2131 _relative_save_offset = ndr->offset;
2132 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
2133 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2134 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2136 struct ndr_pull *_ndr_devmode;
2137 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2138 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2139 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
2141 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2142 ndr->offset = _relative_save_offset;
2145 return NDR_ERR_SUCCESS;
2148 _PUBLIC_ void ndr_print_spoolss_DeviceModeInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceModeInfo *r)
2150 ndr_print_struct(ndr, name, "spoolss_DeviceModeInfo");
2152 ndr_print_ptr(ndr, "devmode", r->devmode);
2155 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2161 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterInfo *r)
2163 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
2164 if (ndr_flags & NDR_SCALARS) {
2165 int level = ndr_push_get_switch_value(ndr, r);
2168 NDR_CHECK(ndr_push_align(ndr, 4));
2169 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2170 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2174 NDR_CHECK(ndr_push_align(ndr, 4));
2175 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2176 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2180 NDR_CHECK(ndr_push_align(ndr, 4));
2181 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2182 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2186 NDR_CHECK(ndr_push_align(ndr, 4));
2187 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2188 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2192 NDR_CHECK(ndr_push_align(ndr, 4));
2193 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2194 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2198 NDR_CHECK(ndr_push_align(ndr, 4));
2199 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2200 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2204 NDR_CHECK(ndr_push_align(ndr, 4));
2205 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2206 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2210 NDR_CHECK(ndr_push_align(ndr, 4));
2211 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2212 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2216 NDR_CHECK(ndr_push_align(ndr, 4));
2217 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2218 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2222 NDR_CHECK(ndr_push_align(ndr, 4));
2223 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2224 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2232 if (ndr_flags & NDR_BUFFERS) {
2233 int level = ndr_push_get_switch_value(ndr, r);
2234 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
2237 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2241 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2245 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2249 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2253 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2257 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2264 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2268 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2272 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2280 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
2281 return NDR_ERR_SUCCESS;
2284 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterInfo *r)
2286 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
2288 level = ndr_pull_get_switch_value(ndr, r);
2289 if (ndr_flags & NDR_SCALARS) {
2292 NDR_CHECK(ndr_pull_align(ndr, 4));
2293 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2294 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2298 NDR_CHECK(ndr_pull_align(ndr, 4));
2299 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2300 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2304 NDR_CHECK(ndr_pull_align(ndr, 4));
2305 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2306 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2310 NDR_CHECK(ndr_pull_align(ndr, 4));
2311 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2312 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2316 NDR_CHECK(ndr_pull_align(ndr, 4));
2317 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2318 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2322 NDR_CHECK(ndr_pull_align(ndr, 4));
2323 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2324 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2328 NDR_CHECK(ndr_pull_align(ndr, 4));
2329 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2330 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2334 NDR_CHECK(ndr_pull_align(ndr, 4));
2335 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2336 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2340 NDR_CHECK(ndr_pull_align(ndr, 4));
2341 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2342 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2346 NDR_CHECK(ndr_pull_align(ndr, 4));
2347 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2348 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2356 if (ndr_flags & NDR_BUFFERS) {
2357 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
2360 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2364 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2368 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2372 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2376 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2380 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2387 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2391 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2395 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2403 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
2404 return NDR_ERR_SUCCESS;
2407 _PUBLIC_ void ndr_print_spoolss_PrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrinterInfo *r)
2410 level = ndr_print_get_switch_value(ndr, r);
2411 ndr_print_union(ndr, name, level, "spoolss_PrinterInfo");
2414 ndr_print_spoolss_PrinterInfo0(ndr, "info0", &r->info0);
2418 ndr_print_spoolss_PrinterInfo1(ndr, "info1", &r->info1);
2422 ndr_print_spoolss_PrinterInfo2(ndr, "info2", &r->info2);
2426 ndr_print_spoolss_PrinterInfo3(ndr, "info3", &r->info3);
2430 ndr_print_spoolss_PrinterInfo4(ndr, "info4", &r->info4);
2434 ndr_print_spoolss_PrinterInfo5(ndr, "info5", &r->info5);
2438 ndr_print_spoolss_PrinterInfo6(ndr, "info6", &r->info6);
2442 ndr_print_spoolss_PrinterInfo7(ndr, "info7", &r->info7);
2446 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", &r->info8);
2450 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", &r->info9);
2459 static enum ndr_err_code ndr_push_spoolss_DevmodeContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DevmodeContainer *r)
2461 if (ndr_flags & NDR_SCALARS) {
2462 NDR_CHECK(ndr_push_align(ndr, 4));
2463 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2464 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
2466 if (ndr_flags & NDR_BUFFERS) {
2469 struct ndr_push *_ndr_devmode;
2470 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2471 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2472 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2476 return NDR_ERR_SUCCESS;
2479 static enum ndr_err_code ndr_pull_spoolss_DevmodeContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DevmodeContainer *r)
2481 uint32_t _ptr_devmode;
2482 TALLOC_CTX *_mem_save_devmode_0;
2483 if (ndr_flags & NDR_SCALARS) {
2484 NDR_CHECK(ndr_pull_align(ndr, 4));
2485 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
2486 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2488 NDR_PULL_ALLOC(ndr, r->devmode);
2493 if (ndr_flags & NDR_BUFFERS) {
2495 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2496 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2498 struct ndr_pull *_ndr_devmode;
2499 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 4, r->_ndr_size));
2500 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2501 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 4, r->_ndr_size));
2503 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2506 return NDR_ERR_SUCCESS;
2509 _PUBLIC_ void ndr_print_spoolss_DevmodeContainer(struct ndr_print *ndr, const char *name, const struct spoolss_DevmodeContainer *r)
2511 ndr_print_struct(ndr, name, "spoolss_DevmodeContainer");
2513 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);
2514 ndr_print_ptr(ndr, "devmode", r->devmode);
2517 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2523 static enum ndr_err_code ndr_push_spoolss_JobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo1 *r)
2525 if (ndr_flags & NDR_SCALARS) {
2526 NDR_CHECK(ndr_push_align(ndr, 4));
2527 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
2529 uint32_t _flags_save_string = ndr->flags;
2530 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2531 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
2532 ndr->flags = _flags_save_string;
2535 uint32_t _flags_save_string = ndr->flags;
2536 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2537 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
2538 ndr->flags = _flags_save_string;
2541 uint32_t _flags_save_string = ndr->flags;
2542 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2543 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
2544 ndr->flags = _flags_save_string;
2547 uint32_t _flags_save_string = ndr->flags;
2548 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2549 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
2550 ndr->flags = _flags_save_string;
2553 uint32_t _flags_save_string = ndr->flags;
2554 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2555 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
2556 ndr->flags = _flags_save_string;
2559 uint32_t _flags_save_string = ndr->flags;
2560 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2561 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
2562 ndr->flags = _flags_save_string;
2564 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status));
2565 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
2566 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
2567 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
2568 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
2569 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
2571 if (ndr_flags & NDR_BUFFERS) {
2573 uint32_t _flags_save_string = ndr->flags;
2574 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2575 if (r->printer_name) {
2576 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
2577 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
2579 ndr->flags = _flags_save_string;
2582 uint32_t _flags_save_string = ndr->flags;
2583 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2584 if (r->server_name) {
2585 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
2586 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
2588 ndr->flags = _flags_save_string;
2591 uint32_t _flags_save_string = ndr->flags;
2592 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2594 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
2595 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
2597 ndr->flags = _flags_save_string;
2600 uint32_t _flags_save_string = ndr->flags;
2601 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2602 if (r->document_name) {
2603 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
2604 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
2606 ndr->flags = _flags_save_string;
2609 uint32_t _flags_save_string = ndr->flags;
2610 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2612 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
2613 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
2615 ndr->flags = _flags_save_string;
2618 uint32_t _flags_save_string = ndr->flags;
2619 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2620 if (r->text_status) {
2621 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
2622 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
2624 ndr->flags = _flags_save_string;
2627 return NDR_ERR_SUCCESS;
2630 static enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo1 *r)
2632 uint32_t _ptr_printer_name;
2633 TALLOC_CTX *_mem_save_printer_name_0;
2634 uint32_t _ptr_server_name;
2635 TALLOC_CTX *_mem_save_server_name_0;
2636 uint32_t _ptr_user_name;
2637 TALLOC_CTX *_mem_save_user_name_0;
2638 uint32_t _ptr_document_name;
2639 TALLOC_CTX *_mem_save_document_name_0;
2640 uint32_t _ptr_data_type;
2641 TALLOC_CTX *_mem_save_data_type_0;
2642 uint32_t _ptr_text_status;
2643 TALLOC_CTX *_mem_save_text_status_0;
2644 if (ndr_flags & NDR_SCALARS) {
2645 NDR_CHECK(ndr_pull_align(ndr, 4));
2646 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
2648 uint32_t _flags_save_string = ndr->flags;
2649 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2650 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
2651 if (_ptr_printer_name) {
2652 NDR_PULL_ALLOC(ndr, r->printer_name);
2653 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
2655 r->printer_name = NULL;
2657 ndr->flags = _flags_save_string;
2660 uint32_t _flags_save_string = ndr->flags;
2661 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2662 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
2663 if (_ptr_server_name) {
2664 NDR_PULL_ALLOC(ndr, r->server_name);
2665 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
2667 r->server_name = NULL;
2669 ndr->flags = _flags_save_string;
2672 uint32_t _flags_save_string = ndr->flags;
2673 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2674 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
2675 if (_ptr_user_name) {
2676 NDR_PULL_ALLOC(ndr, r->user_name);
2677 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
2679 r->user_name = NULL;
2681 ndr->flags = _flags_save_string;
2684 uint32_t _flags_save_string = ndr->flags;
2685 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2686 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
2687 if (_ptr_document_name) {
2688 NDR_PULL_ALLOC(ndr, r->document_name);
2689 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
2691 r->document_name = NULL;
2693 ndr->flags = _flags_save_string;
2696 uint32_t _flags_save_string = ndr->flags;
2697 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2698 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
2699 if (_ptr_data_type) {
2700 NDR_PULL_ALLOC(ndr, r->data_type);
2701 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
2703 r->data_type = NULL;
2705 ndr->flags = _flags_save_string;
2708 uint32_t _flags_save_string = ndr->flags;
2709 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2710 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
2711 if (_ptr_text_status) {
2712 NDR_PULL_ALLOC(ndr, r->text_status);
2713 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
2715 r->text_status = NULL;
2717 ndr->flags = _flags_save_string;
2719 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status));
2720 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
2721 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
2722 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
2723 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
2724 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
2726 if (ndr_flags & NDR_BUFFERS) {
2728 uint32_t _flags_save_string = ndr->flags;
2729 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2730 if (r->printer_name) {
2731 uint32_t _relative_save_offset;
2732 _relative_save_offset = ndr->offset;
2733 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
2734 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2735 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
2736 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
2737 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
2738 ndr->offset = _relative_save_offset;
2740 ndr->flags = _flags_save_string;
2743 uint32_t _flags_save_string = ndr->flags;
2744 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2745 if (r->server_name) {
2746 uint32_t _relative_save_offset;
2747 _relative_save_offset = ndr->offset;
2748 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
2749 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2750 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
2751 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
2752 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
2753 ndr->offset = _relative_save_offset;
2755 ndr->flags = _flags_save_string;
2758 uint32_t _flags_save_string = ndr->flags;
2759 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2761 uint32_t _relative_save_offset;
2762 _relative_save_offset = ndr->offset;
2763 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
2764 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2765 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
2766 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
2767 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
2768 ndr->offset = _relative_save_offset;
2770 ndr->flags = _flags_save_string;
2773 uint32_t _flags_save_string = ndr->flags;
2774 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2775 if (r->document_name) {
2776 uint32_t _relative_save_offset;
2777 _relative_save_offset = ndr->offset;
2778 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
2779 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2780 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
2781 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
2782 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
2783 ndr->offset = _relative_save_offset;
2785 ndr->flags = _flags_save_string;
2788 uint32_t _flags_save_string = ndr->flags;
2789 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2791 uint32_t _relative_save_offset;
2792 _relative_save_offset = ndr->offset;
2793 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
2794 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
2795 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
2796 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
2797 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
2798 ndr->offset = _relative_save_offset;
2800 ndr->flags = _flags_save_string;
2803 uint32_t _flags_save_string = ndr->flags;
2804 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2805 if (r->text_status) {
2806 uint32_t _relative_save_offset;
2807 _relative_save_offset = ndr->offset;
2808 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
2809 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
2810 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
2811 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
2812 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
2813 ndr->offset = _relative_save_offset;
2815 ndr->flags = _flags_save_string;
2818 return NDR_ERR_SUCCESS;
2821 _PUBLIC_ void ndr_print_spoolss_JobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo1 *r)
2823 ndr_print_struct(ndr, name, "spoolss_JobInfo1");
2825 ndr_print_uint32(ndr, "job_id", r->job_id);
2826 ndr_print_ptr(ndr, "printer_name", r->printer_name);
2828 if (r->printer_name) {
2829 ndr_print_string(ndr, "printer_name", r->printer_name);
2832 ndr_print_ptr(ndr, "server_name", r->server_name);
2834 if (r->server_name) {
2835 ndr_print_string(ndr, "server_name", r->server_name);
2838 ndr_print_ptr(ndr, "user_name", r->user_name);
2841 ndr_print_string(ndr, "user_name", r->user_name);
2844 ndr_print_ptr(ndr, "document_name", r->document_name);
2846 if (r->document_name) {
2847 ndr_print_string(ndr, "document_name", r->document_name);
2850 ndr_print_ptr(ndr, "data_type", r->data_type);
2853 ndr_print_string(ndr, "data_type", r->data_type);
2856 ndr_print_ptr(ndr, "text_status", r->text_status);
2858 if (r->text_status) {
2859 ndr_print_string(ndr, "text_status", r->text_status);
2862 ndr_print_uint32(ndr, "status", r->status);
2863 ndr_print_uint32(ndr, "priority", r->priority);
2864 ndr_print_uint32(ndr, "position", r->position);
2865 ndr_print_uint32(ndr, "total_pages", r->total_pages);
2866 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
2867 ndr_print_spoolss_Time(ndr, "time", &r->time);
2871 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_JobInfo *r)
2873 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
2874 if (ndr_flags & NDR_SCALARS) {
2875 int level = ndr_push_get_switch_value(ndr, r);
2878 NDR_CHECK(ndr_push_align(ndr, 4));
2879 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2880 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
2894 if (ndr_flags & NDR_BUFFERS) {
2895 int level = ndr_push_get_switch_value(ndr, r);
2896 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
2899 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
2913 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
2914 return NDR_ERR_SUCCESS;
2917 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_JobInfo *r)
2919 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
2921 level = ndr_pull_get_switch_value(ndr, r);
2922 if (ndr_flags & NDR_SCALARS) {
2925 NDR_CHECK(ndr_pull_align(ndr, 4));
2926 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2927 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
2941 if (ndr_flags & NDR_BUFFERS) {
2942 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
2945 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
2959 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
2960 return NDR_ERR_SUCCESS;
2963 _PUBLIC_ void ndr_print_spoolss_JobInfo(struct ndr_print *ndr, const char *name, const union spoolss_JobInfo *r)
2966 level = ndr_print_get_switch_value(ndr, r);
2967 ndr_print_union(ndr, name, level, "spoolss_JobInfo");
2970 ndr_print_spoolss_JobInfo1(ndr, "info1", &r->info1);
2985 static enum ndr_err_code ndr_push_spoolss_JobInfoContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfoContainer *r)
2987 if (ndr_flags & NDR_SCALARS) {
2988 NDR_CHECK(ndr_push_align(ndr, 4));
2989 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
2990 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
2991 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->info));
2993 if (ndr_flags & NDR_BUFFERS) {
2994 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->info));
2996 return NDR_ERR_SUCCESS;
2999 static enum ndr_err_code ndr_pull_spoolss_JobInfoContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfoContainer *r)
3001 if (ndr_flags & NDR_SCALARS) {
3002 NDR_CHECK(ndr_pull_align(ndr, 4));
3003 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
3004 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
3005 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->info));
3007 if (ndr_flags & NDR_BUFFERS) {
3008 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->info));
3010 return NDR_ERR_SUCCESS;
3013 _PUBLIC_ void ndr_print_spoolss_JobInfoContainer(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfoContainer *r)
3015 ndr_print_struct(ndr, name, "spoolss_JobInfoContainer");
3017 ndr_print_uint32(ndr, "level", r->level);
3018 ndr_print_set_switch_value(ndr, &r->info, r->level);
3019 ndr_print_spoolss_JobInfo(ndr, "info", &r->info);
3023 static enum ndr_err_code ndr_push_spoolss_JobControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobControl r)
3025 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
3026 return NDR_ERR_SUCCESS;
3029 static enum ndr_err_code ndr_pull_spoolss_JobControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobControl *r)
3032 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
3034 return NDR_ERR_SUCCESS;
3037 _PUBLIC_ void ndr_print_spoolss_JobControl(struct ndr_print *ndr, const char *name, enum spoolss_JobControl r)
3039 const char *val = NULL;
3042 case SPOOLSS_JOB_CONTROL_PAUSE: val = "SPOOLSS_JOB_CONTROL_PAUSE"; break;
3043 case SPOOLSS_JOB_CONTROL_RESUME: val = "SPOOLSS_JOB_CONTROL_RESUME"; break;
3044 case SPOOLSS_JOB_CONTROL_CANCEL: val = "SPOOLSS_JOB_CONTROL_CANCEL"; break;
3045 case SPOOLSS_JOB_CONTROL_RESTART: val = "SPOOLSS_JOB_CONTROL_RESTART"; break;
3046 case SPOOLSS_JOB_CONTROL_DELETE: val = "SPOOLSS_JOB_CONTROL_DELETE"; break;
3047 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER: val = "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
3048 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED: val = "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
3050 ndr_print_enum(ndr, name, "ENUM", val, r);
3053 static enum ndr_err_code ndr_push_spoolss_PrinterControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterControl r)
3055 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
3056 return NDR_ERR_SUCCESS;
3059 static enum ndr_err_code ndr_pull_spoolss_PrinterControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterControl *r)
3062 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
3064 return NDR_ERR_SUCCESS;
3067 _PUBLIC_ void ndr_print_spoolss_PrinterControl(struct ndr_print *ndr, const char *name, enum spoolss_PrinterControl r)
3069 const char *val = NULL;
3072 case SPOOLSS_PRINTER_CONTROL_UNPAUSE: val = "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
3073 case SPOOLSS_PRINTER_CONTROL_PAUSE: val = "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
3074 case SPOOLSS_PRINTER_CONTROL_RESUME: val = "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
3075 case SPOOLSS_PRINTER_CONTROL_PURGE: val = "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
3076 case SPOOLSS_PRINTER_CONTROL_SET_STATUS: val = "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
3078 ndr_print_enum(ndr, name, "ENUM", val, r);
3081 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo0 *r)
3083 if (ndr_flags & NDR_SCALARS) {
3084 NDR_CHECK(ndr_push_align(ndr, 4));
3085 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
3086 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
3087 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
3088 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
3089 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
3090 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
3091 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
3092 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3093 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
3094 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
3095 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
3096 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
3097 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
3098 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
3099 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
3100 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_error));
3101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
3102 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
3103 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
3104 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
3105 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
3106 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status));
3107 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
3108 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
3109 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
3110 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
3111 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
3112 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
3113 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
3115 if (ndr_flags & NDR_BUFFERS) {
3116 if (r->servername) {
3117 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
3118 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3119 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
3120 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3122 if (r->printername) {
3123 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
3124 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3125 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
3126 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3129 return NDR_ERR_SUCCESS;
3132 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo0 *r)
3134 uint32_t _ptr_servername;
3135 TALLOC_CTX *_mem_save_servername_0;
3136 uint32_t _ptr_printername;
3137 TALLOC_CTX *_mem_save_printername_0;
3138 if (ndr_flags & NDR_SCALARS) {
3139 NDR_CHECK(ndr_pull_align(ndr, 4));
3140 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
3141 if (_ptr_servername) {
3142 NDR_PULL_ALLOC(ndr, r->servername);
3144 r->servername = NULL;
3146 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
3147 if (_ptr_printername) {
3148 NDR_PULL_ALLOC(ndr, r->printername);
3150 r->printername = NULL;
3152 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
3153 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
3154 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
3155 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
3156 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
3157 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3158 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
3159 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
3160 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
3161 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
3162 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
3163 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
3164 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
3165 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_error));
3166 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
3167 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
3168 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
3169 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
3170 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
3171 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status));
3172 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
3173 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
3174 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
3175 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
3176 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
3177 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
3178 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
3180 if (ndr_flags & NDR_BUFFERS) {
3181 if (r->servername) {
3182 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
3183 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
3184 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
3185 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
3186 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
3187 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));
3189 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
3190 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
3191 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
3193 if (r->printername) {
3194 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
3195 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
3196 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
3197 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
3198 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
3199 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));
3201 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
3202 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
3203 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
3206 return NDR_ERR_SUCCESS;
3209 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo0 *r)
3211 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo0");
3213 ndr_print_ptr(ndr, "servername", r->servername);
3215 if (r->servername) {
3216 ndr_print_string(ndr, "servername", r->servername);
3219 ndr_print_ptr(ndr, "printername", r->printername);
3221 if (r->printername) {
3222 ndr_print_string(ndr, "printername", r->printername);
3225 ndr_print_uint32(ndr, "cjobs", r->cjobs);
3226 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
3227 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
3228 ndr_print_spoolss_Time(ndr, "time", &r->time);
3229 ndr_print_uint32(ndr, "global_counter", r->global_counter);
3230 ndr_print_uint32(ndr, "total_pages", r->total_pages);
3231 ndr_print_uint32(ndr, "version", r->version);
3232 ndr_print_uint32(ndr, "free_build", r->free_build);
3233 ndr_print_uint32(ndr, "spooling", r->spooling);
3234 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
3235 ndr_print_uint32(ndr, "session_counter", r->session_counter);
3236 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
3237 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
3238 ndr_print_uint32(ndr, "job_error", r->job_error);
3239 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
3240 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
3241 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
3242 ndr_print_uint32(ndr, "change_id", r->change_id);
3243 ndr_print_WERROR(ndr, "last_error", r->last_error);
3244 ndr_print_uint32(ndr, "status", r->status);
3245 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
3246 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
3247 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
3248 ndr_print_uint16(ndr, "processor_level", r->processor_level);
3249 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
3250 ndr_print_uint32(ndr, "reserved2", r->reserved2);
3251 ndr_print_uint32(ndr, "reserved3", r->reserved3);
3255 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo1 *r)
3257 if (ndr_flags & NDR_SCALARS) {
3258 NDR_CHECK(ndr_push_align(ndr, 4));
3259 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->flags));
3260 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
3261 NDR_CHECK(ndr_push_unique_ptr(ndr, r->description));
3262 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
3264 if (ndr_flags & NDR_BUFFERS) {
3266 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
3267 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3268 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
3269 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3271 if (r->description) {
3272 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
3273 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3274 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
3275 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->description, ndr_charset_length(r->description, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3278 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
3279 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3280 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
3281 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3284 return NDR_ERR_SUCCESS;
3287 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo1 *r)
3290 TALLOC_CTX *_mem_save_name_0;
3291 uint32_t _ptr_description;
3292 TALLOC_CTX *_mem_save_description_0;
3293 uint32_t _ptr_comment;
3294 TALLOC_CTX *_mem_save_comment_0;
3295 if (ndr_flags & NDR_SCALARS) {
3296 NDR_CHECK(ndr_pull_align(ndr, 4));
3297 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->flags));
3298 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
3300 NDR_PULL_ALLOC(ndr, r->name);
3304 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
3305 if (_ptr_description) {
3306 NDR_PULL_ALLOC(ndr, r->description);
3308 r->description = NULL;
3310 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
3312 NDR_PULL_ALLOC(ndr, r->comment);
3317 if (ndr_flags & NDR_BUFFERS) {
3319 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3320 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
3321 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
3322 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
3323 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
3324 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));
3326 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
3327 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
3328 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
3330 if (r->description) {
3331 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
3332 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
3333 NDR_CHECK(ndr_pull_array_size(ndr, &r->description));
3334 NDR_CHECK(ndr_pull_array_length(ndr, &r->description));
3335 if (ndr_get_array_length(ndr, &r->description) > ndr_get_array_size(ndr, &r->description)) {
3336 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));
3338 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t)));
3339 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->description, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t), CH_UTF16));
3340 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
3343 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
3344 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
3345 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
3346 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
3347 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
3348 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));
3350 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
3351 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
3352 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
3355 return NDR_ERR_SUCCESS;
3358 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo1 *r)
3360 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo1");
3362 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->flags);
3363 ndr_print_ptr(ndr, "name", r->name);
3366 ndr_print_string(ndr, "name", r->name);
3369 ndr_print_ptr(ndr, "description", r->description);
3371 if (r->description) {
3372 ndr_print_string(ndr, "description", r->description);
3375 ndr_print_ptr(ndr, "comment", r->comment);
3378 ndr_print_string(ndr, "comment", r->comment);
3384 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo2 *r)
3386 if (ndr_flags & NDR_SCALARS) {
3387 NDR_CHECK(ndr_push_align(ndr, 4));
3388 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
3389 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
3390 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sharename));
3391 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
3392 NDR_CHECK(ndr_push_unique_ptr(ndr, r->drivername));
3393 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
3394 NDR_CHECK(ndr_push_unique_ptr(ndr, r->location));
3395 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
3396 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sepfile));
3397 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printprocessor));
3398 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
3399 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
3400 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secdesc));
3401 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
3402 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3403 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
3404 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
3405 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
3406 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
3407 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
3408 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
3410 if (ndr_flags & NDR_BUFFERS) {
3411 if (r->servername) {
3412 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
3413 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3414 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
3415 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3417 if (r->printername) {
3418 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
3419 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3420 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
3421 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3424 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
3425 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3426 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
3427 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sharename, ndr_charset_length(r->sharename, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3430 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
3431 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3432 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
3433 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3435 if (r->drivername) {
3436 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
3437 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3438 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
3439 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->drivername, ndr_charset_length(r->drivername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3442 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
3443 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3444 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
3445 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3448 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
3449 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3450 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
3451 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->location, ndr_charset_length(r->location, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3455 struct ndr_push *_ndr_devmode;
3456 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
3457 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3458 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
3462 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
3463 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3464 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
3465 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sepfile, ndr_charset_length(r->sepfile, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3467 if (r->printprocessor) {
3468 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
3469 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3470 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
3471 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printprocessor, ndr_charset_length(r->printprocessor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3474 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
3475 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3476 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
3477 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3479 if (r->parameters) {
3480 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
3481 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3482 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
3483 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3487 struct ndr_push *_ndr_secdesc;
3488 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
3489 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3490 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
3494 return NDR_ERR_SUCCESS;
3497 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo2 *r)
3499 uint32_t _ptr_servername;
3500 TALLOC_CTX *_mem_save_servername_0;
3501 uint32_t _ptr_printername;
3502 TALLOC_CTX *_mem_save_printername_0;
3503 uint32_t _ptr_sharename;
3504 TALLOC_CTX *_mem_save_sharename_0;
3505 uint32_t _ptr_portname;
3506 TALLOC_CTX *_mem_save_portname_0;
3507 uint32_t _ptr_drivername;
3508 TALLOC_CTX *_mem_save_drivername_0;
3509 uint32_t _ptr_comment;
3510 TALLOC_CTX *_mem_save_comment_0;
3511 uint32_t _ptr_location;
3512 TALLOC_CTX *_mem_save_location_0;
3513 uint32_t _ptr_devmode;
3514 TALLOC_CTX *_mem_save_devmode_0;
3515 uint32_t _ptr_sepfile;
3516 TALLOC_CTX *_mem_save_sepfile_0;
3517 uint32_t _ptr_printprocessor;
3518 TALLOC_CTX *_mem_save_printprocessor_0;
3519 uint32_t _ptr_datatype;
3520 TALLOC_CTX *_mem_save_datatype_0;
3521 uint32_t _ptr_parameters;
3522 TALLOC_CTX *_mem_save_parameters_0;
3523 uint32_t _ptr_secdesc;
3524 TALLOC_CTX *_mem_save_secdesc_0;
3525 if (ndr_flags & NDR_SCALARS) {
3526 NDR_CHECK(ndr_pull_align(ndr, 4));
3527 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
3528 if (_ptr_servername) {
3529 NDR_PULL_ALLOC(ndr, r->servername);
3531 r->servername = NULL;
3533 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
3534 if (_ptr_printername) {
3535 NDR_PULL_ALLOC(ndr, r->printername);
3537 r->printername = NULL;
3539 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
3540 if (_ptr_sharename) {
3541 NDR_PULL_ALLOC(ndr, r->sharename);
3543 r->sharename = NULL;
3545 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
3546 if (_ptr_portname) {
3547 NDR_PULL_ALLOC(ndr, r->portname);
3551 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
3552 if (_ptr_drivername) {
3553 NDR_PULL_ALLOC(ndr, r->drivername);
3555 r->drivername = NULL;
3557 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
3559 NDR_PULL_ALLOC(ndr, r->comment);
3563 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
3564 if (_ptr_location) {
3565 NDR_PULL_ALLOC(ndr, r->location);
3569 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3571 NDR_PULL_ALLOC(ndr, r->devmode);
3575 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
3577 NDR_PULL_ALLOC(ndr, r->sepfile);
3581 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
3582 if (_ptr_printprocessor) {
3583 NDR_PULL_ALLOC(ndr, r->printprocessor);
3585 r->printprocessor = NULL;
3587 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
3588 if (_ptr_datatype) {
3589 NDR_PULL_ALLOC(ndr, r->datatype);
3593 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
3594 if (_ptr_parameters) {
3595 NDR_PULL_ALLOC(ndr, r->parameters);
3597 r->parameters = NULL;
3599 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
3601 NDR_PULL_ALLOC(ndr, r->secdesc);
3605 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
3606 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3607 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
3608 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
3609 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
3610 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
3611 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
3612 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
3614 if (ndr_flags & NDR_BUFFERS) {
3615 if (r->servername) {
3616 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
3617 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
3618 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
3619 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
3620 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
3621 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));
3623 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
3624 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
3625 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
3627 if (r->printername) {
3628 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
3629 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
3630 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
3631 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
3632 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
3633 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));
3635 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
3636 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
3637 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
3640 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
3641 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
3642 NDR_CHECK(ndr_pull_array_size(ndr, &r->sharename));
3643 NDR_CHECK(ndr_pull_array_length(ndr, &r->sharename));
3644 if (ndr_get_array_length(ndr, &r->sharename) > ndr_get_array_size(ndr, &r->sharename)) {
3645 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));
3647 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t)));
3648 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sharename, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t), CH_UTF16));
3649 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
3652 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
3653 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
3654 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
3655 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
3656 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
3657 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));
3659 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
3660 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
3661 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
3663 if (r->drivername) {
3664 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
3665 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
3666 NDR_CHECK(ndr_pull_array_size(ndr, &r->drivername));
3667 NDR_CHECK(ndr_pull_array_length(ndr, &r->drivername));
3668 if (ndr_get_array_length(ndr, &r->drivername) > ndr_get_array_size(ndr, &r->drivername)) {
3669 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));
3671 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t)));
3672 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->drivername, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t), CH_UTF16));
3673 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
3676 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
3677 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
3678 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
3679 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
3680 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
3681 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));
3683 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
3684 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
3685 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
3688 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
3689 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
3690 NDR_CHECK(ndr_pull_array_size(ndr, &r->location));
3691 NDR_CHECK(ndr_pull_array_length(ndr, &r->location));
3692 if (ndr_get_array_length(ndr, &r->location) > ndr_get_array_size(ndr, &r->location)) {
3693 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));
3695 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t)));
3696 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->location, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t), CH_UTF16));
3697 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
3700 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
3701 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
3703 struct ndr_pull *_ndr_devmode;
3704 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
3705 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3706 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
3708 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
3711 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
3712 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
3713 NDR_CHECK(ndr_pull_array_size(ndr, &r->sepfile));
3714 NDR_CHECK(ndr_pull_array_length(ndr, &r->sepfile));
3715 if (ndr_get_array_length(ndr, &r->sepfile) > ndr_get_array_size(ndr, &r->sepfile)) {
3716 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));
3718 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t)));
3719 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sepfile, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t), CH_UTF16));
3720 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
3722 if (r->printprocessor) {
3723 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
3724 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
3725 NDR_CHECK(ndr_pull_array_size(ndr, &r->printprocessor));
3726 NDR_CHECK(ndr_pull_array_length(ndr, &r->printprocessor));
3727 if (ndr_get_array_length(ndr, &r->printprocessor) > ndr_get_array_size(ndr, &r->printprocessor)) {
3728 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));
3730 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t)));
3731 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printprocessor, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t), CH_UTF16));
3732 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
3735 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
3736 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
3737 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
3738 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
3739 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
3740 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));
3742 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
3743 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
3744 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
3746 if (r->parameters) {
3747 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
3748 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
3749 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
3750 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
3751 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
3752 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));
3754 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
3755 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
3756 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
3759 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
3760 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
3762 struct ndr_pull *_ndr_secdesc;
3763 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
3764 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3765 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
3767 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
3770 return NDR_ERR_SUCCESS;
3773 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo2 *r)
3775 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo2");
3777 ndr_print_ptr(ndr, "servername", r->servername);
3779 if (r->servername) {
3780 ndr_print_string(ndr, "servername", r->servername);
3783 ndr_print_ptr(ndr, "printername", r->printername);
3785 if (r->printername) {
3786 ndr_print_string(ndr, "printername", r->printername);
3789 ndr_print_ptr(ndr, "sharename", r->sharename);
3792 ndr_print_string(ndr, "sharename", r->sharename);
3795 ndr_print_ptr(ndr, "portname", r->portname);
3798 ndr_print_string(ndr, "portname", r->portname);
3801 ndr_print_ptr(ndr, "drivername", r->drivername);
3803 if (r->drivername) {
3804 ndr_print_string(ndr, "drivername", r->drivername);
3807 ndr_print_ptr(ndr, "comment", r->comment);
3810 ndr_print_string(ndr, "comment", r->comment);
3813 ndr_print_ptr(ndr, "location", r->location);
3816 ndr_print_string(ndr, "location", r->location);
3819 ndr_print_ptr(ndr, "devmode", r->devmode);
3822 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
3825 ndr_print_ptr(ndr, "sepfile", r->sepfile);
3828 ndr_print_string(ndr, "sepfile", r->sepfile);
3831 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
3833 if (r->printprocessor) {
3834 ndr_print_string(ndr, "printprocessor", r->printprocessor);
3837 ndr_print_ptr(ndr, "datatype", r->datatype);
3840 ndr_print_string(ndr, "datatype", r->datatype);
3843 ndr_print_ptr(ndr, "parameters", r->parameters);
3845 if (r->parameters) {
3846 ndr_print_string(ndr, "parameters", r->parameters);
3849 ndr_print_ptr(ndr, "secdesc", r->secdesc);
3852 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
3855 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
3856 ndr_print_uint32(ndr, "priority", r->priority);
3857 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
3858 ndr_print_uint32(ndr, "starttime", r->starttime);
3859 ndr_print_uint32(ndr, "untiltime", r->untiltime);
3860 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
3861 ndr_print_uint32(ndr, "cjobs", r->cjobs);
3862 ndr_print_uint32(ndr, "averageppm", r->averageppm);
3866 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo3 *r)
3868 if (ndr_flags & NDR_SCALARS) {
3869 NDR_CHECK(ndr_push_align(ndr, 4));
3870 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secdesc));
3872 if (ndr_flags & NDR_BUFFERS) {
3874 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3877 return NDR_ERR_SUCCESS;
3880 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo3 *r)
3882 uint32_t _ptr_secdesc;
3883 TALLOC_CTX *_mem_save_secdesc_0;
3884 if (ndr_flags & NDR_SCALARS) {
3885 NDR_CHECK(ndr_pull_align(ndr, 4));
3886 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
3888 NDR_PULL_ALLOC(ndr, r->secdesc);
3893 if (ndr_flags & NDR_BUFFERS) {
3895 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
3896 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
3897 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3898 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
3901 return NDR_ERR_SUCCESS;
3904 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo3 *r)
3906 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo3");
3908 ndr_print_ptr(ndr, "secdesc", r->secdesc);
3911 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
3917 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo4 *r)
3919 if (ndr_flags & NDR_SCALARS) {
3920 NDR_CHECK(ndr_push_align(ndr, 4));
3921 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
3922 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
3923 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
3925 if (ndr_flags & NDR_BUFFERS) {
3926 if (r->printername) {
3927 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
3928 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3929 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
3930 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3932 if (r->servername) {
3933 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
3934 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3935 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
3936 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3939 return NDR_ERR_SUCCESS;
3942 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo4 *r)
3944 uint32_t _ptr_printername;
3945 TALLOC_CTX *_mem_save_printername_0;
3946 uint32_t _ptr_servername;
3947 TALLOC_CTX *_mem_save_servername_0;
3948 if (ndr_flags & NDR_SCALARS) {
3949 NDR_CHECK(ndr_pull_align(ndr, 4));
3950 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
3951 if (_ptr_printername) {
3952 NDR_PULL_ALLOC(ndr, r->printername);
3954 r->printername = NULL;
3956 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
3957 if (_ptr_servername) {
3958 NDR_PULL_ALLOC(ndr, r->servername);
3960 r->servername = NULL;
3962 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
3964 if (ndr_flags & NDR_BUFFERS) {
3965 if (r->printername) {
3966 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
3967 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
3968 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
3969 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
3970 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
3971 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));
3973 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
3974 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
3975 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
3977 if (r->servername) {
3978 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
3979 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
3980 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
3981 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
3982 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
3983 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));
3985 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
3986 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
3987 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
3990 return NDR_ERR_SUCCESS;
3993 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo4 *r)
3995 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo4");
3997 ndr_print_ptr(ndr, "printername", r->printername);
3999 if (r->printername) {
4000 ndr_print_string(ndr, "printername", r->printername);
4003 ndr_print_ptr(ndr, "servername", r->servername);
4005 if (r->servername) {
4006 ndr_print_string(ndr, "servername", r->servername);
4009 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
4013 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo5 *r)
4015 if (ndr_flags & NDR_SCALARS) {
4016 NDR_CHECK(ndr_push_align(ndr, 4));
4017 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
4018 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
4019 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
4020 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
4021 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
4023 if (ndr_flags & NDR_BUFFERS) {
4024 if (r->printername) {
4025 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
4026 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4027 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
4028 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4031 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
4032 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4033 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
4034 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4037 return NDR_ERR_SUCCESS;
4040 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo5 *r)
4042 uint32_t _ptr_printername;
4043 TALLOC_CTX *_mem_save_printername_0;
4044 uint32_t _ptr_portname;
4045 TALLOC_CTX *_mem_save_portname_0;
4046 if (ndr_flags & NDR_SCALARS) {
4047 NDR_CHECK(ndr_pull_align(ndr, 4));
4048 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
4049 if (_ptr_printername) {
4050 NDR_PULL_ALLOC(ndr, r->printername);
4052 r->printername = NULL;
4054 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
4055 if (_ptr_portname) {
4056 NDR_PULL_ALLOC(ndr, r->portname);
4060 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
4061 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
4062 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
4064 if (ndr_flags & NDR_BUFFERS) {
4065 if (r->printername) {
4066 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
4067 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
4068 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
4069 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
4070 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
4071 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));
4073 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
4074 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
4075 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
4078 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
4079 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
4080 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
4081 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
4082 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
4083 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));
4085 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
4086 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
4087 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
4090 return NDR_ERR_SUCCESS;
4093 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo5 *r)
4095 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo5");
4097 ndr_print_ptr(ndr, "printername", r->printername);
4099 if (r->printername) {
4100 ndr_print_string(ndr, "printername", r->printername);
4103 ndr_print_ptr(ndr, "portname", r->portname);
4106 ndr_print_string(ndr, "portname", r->portname);
4109 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
4110 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
4111 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
4115 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo6 *r)
4117 if (ndr_flags & NDR_SCALARS) {
4118 NDR_CHECK(ndr_push_align(ndr, 4));
4119 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
4121 if (ndr_flags & NDR_BUFFERS) {
4123 return NDR_ERR_SUCCESS;
4126 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo6 *r)
4128 if (ndr_flags & NDR_SCALARS) {
4129 NDR_CHECK(ndr_pull_align(ndr, 4));
4130 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
4132 if (ndr_flags & NDR_BUFFERS) {
4134 return NDR_ERR_SUCCESS;
4137 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo6 *r)
4139 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo6");
4141 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
4145 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo7 *r)
4147 if (ndr_flags & NDR_SCALARS) {
4148 NDR_CHECK(ndr_push_align(ndr, 4));
4149 NDR_CHECK(ndr_push_unique_ptr(ndr, r->guid));
4150 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
4152 if (ndr_flags & NDR_BUFFERS) {
4154 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
4155 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4156 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
4157 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->guid, ndr_charset_length(r->guid, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4160 return NDR_ERR_SUCCESS;
4163 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo7 *r)
4166 TALLOC_CTX *_mem_save_guid_0;
4167 if (ndr_flags & NDR_SCALARS) {
4168 NDR_CHECK(ndr_pull_align(ndr, 4));
4169 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
4171 NDR_PULL_ALLOC(ndr, r->guid);
4175 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
4177 if (ndr_flags & NDR_BUFFERS) {
4179 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4180 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
4181 NDR_CHECK(ndr_pull_array_size(ndr, &r->guid));
4182 NDR_CHECK(ndr_pull_array_length(ndr, &r->guid));
4183 if (ndr_get_array_length(ndr, &r->guid) > ndr_get_array_size(ndr, &r->guid)) {
4184 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));
4186 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t)));
4187 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->guid, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t), CH_UTF16));
4188 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
4191 return NDR_ERR_SUCCESS;
4194 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo7 *r)
4196 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo7");
4198 ndr_print_ptr(ndr, "guid", r->guid);
4201 ndr_print_string(ndr, "guid", r->guid);
4204 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
4208 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetPrinterInfo *r)
4210 if (ndr_flags & NDR_SCALARS) {
4211 int level = ndr_push_get_switch_value(ndr, r);
4212 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
4215 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
4219 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
4223 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
4227 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
4231 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
4235 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info5));
4239 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
4243 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info7));
4247 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
4251 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info9));
4259 if (ndr_flags & NDR_BUFFERS) {
4260 int level = ndr_push_get_switch_value(ndr, r);
4264 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
4270 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
4276 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
4282 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
4288 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
4294 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
4300 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
4306 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
4312 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
4318 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
4327 return NDR_ERR_SUCCESS;
4330 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetPrinterInfo *r)
4334 TALLOC_CTX *_mem_save_info0_0;
4335 TALLOC_CTX *_mem_save_info1_0;
4336 TALLOC_CTX *_mem_save_info2_0;
4337 TALLOC_CTX *_mem_save_info3_0;
4338 TALLOC_CTX *_mem_save_info4_0;
4339 TALLOC_CTX *_mem_save_info5_0;
4340 TALLOC_CTX *_mem_save_info6_0;
4341 TALLOC_CTX *_mem_save_info7_0;
4342 TALLOC_CTX *_mem_save_info8_0;
4343 TALLOC_CTX *_mem_save_info9_0;
4344 level = ndr_pull_get_switch_value(ndr, r);
4345 if (ndr_flags & NDR_SCALARS) {
4346 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
4347 if (_level != level) {
4348 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
4352 uint32_t _ptr_info0;
4353 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
4355 NDR_PULL_ALLOC(ndr, r->info0);
4362 uint32_t _ptr_info1;
4363 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
4365 NDR_PULL_ALLOC(ndr, r->info1);
4372 uint32_t _ptr_info2;
4373 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
4375 NDR_PULL_ALLOC(ndr, r->info2);
4382 uint32_t _ptr_info3;
4383 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
4385 NDR_PULL_ALLOC(ndr, r->info3);
4392 uint32_t _ptr_info4;
4393 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
4395 NDR_PULL_ALLOC(ndr, r->info4);
4402 uint32_t _ptr_info5;
4403 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info5));
4405 NDR_PULL_ALLOC(ndr, r->info5);
4412 uint32_t _ptr_info6;
4413 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
4415 NDR_PULL_ALLOC(ndr, r->info6);
4422 uint32_t _ptr_info7;
4423 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info7));
4425 NDR_PULL_ALLOC(ndr, r->info7);
4432 uint32_t _ptr_info8;
4433 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
4435 NDR_PULL_ALLOC(ndr, r->info8);
4442 uint32_t _ptr_info9;
4443 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info9));
4445 NDR_PULL_ALLOC(ndr, r->info9);
4456 if (ndr_flags & NDR_BUFFERS) {
4460 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
4461 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
4462 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
4463 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
4469 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
4470 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
4471 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
4472 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
4478 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
4479 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
4480 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
4481 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
4487 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
4488 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
4489 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
4490 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
4496 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
4497 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
4498 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
4499 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
4505 _mem_save_info5_0 = NDR_PULL_GET_MEM_CTX(ndr);
4506 NDR_PULL_SET_MEM_CTX(ndr, r->info5, 0);
4507 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
4508 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info5_0, 0);
4514 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
4515 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
4516 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
4517 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
4523 _mem_save_info7_0 = NDR_PULL_GET_MEM_CTX(ndr);
4524 NDR_PULL_SET_MEM_CTX(ndr, r->info7, 0);
4525 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
4526 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info7_0, 0);
4532 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
4533 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
4534 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
4535 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
4541 _mem_save_info9_0 = NDR_PULL_GET_MEM_CTX(ndr);
4542 NDR_PULL_SET_MEM_CTX(ndr, r->info9, 0);
4543 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
4544 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info9_0, 0);
4553 return NDR_ERR_SUCCESS;
4556 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetPrinterInfo *r)
4559 level = ndr_print_get_switch_value(ndr, r);
4560 ndr_print_union(ndr, name, level, "spoolss_SetPrinterInfo");
4563 ndr_print_ptr(ndr, "info0", r->info0);
4566 ndr_print_spoolss_SetPrinterInfo0(ndr, "info0", r->info0);
4572 ndr_print_ptr(ndr, "info1", r->info1);
4575 ndr_print_spoolss_SetPrinterInfo1(ndr, "info1", r->info1);
4581 ndr_print_ptr(ndr, "info2", r->info2);
4584 ndr_print_spoolss_SetPrinterInfo2(ndr, "info2", r->info2);
4590 ndr_print_ptr(ndr, "info3", r->info3);
4593 ndr_print_spoolss_SetPrinterInfo3(ndr, "info3", r->info3);
4599 ndr_print_ptr(ndr, "info4", r->info4);
4602 ndr_print_spoolss_SetPrinterInfo4(ndr, "info4", r->info4);
4608 ndr_print_ptr(ndr, "info5", r->info5);
4611 ndr_print_spoolss_SetPrinterInfo5(ndr, "info5", r->info5);
4617 ndr_print_ptr(ndr, "info6", r->info6);
4620 ndr_print_spoolss_SetPrinterInfo6(ndr, "info6", r->info6);
4626 ndr_print_ptr(ndr, "info7", r->info7);
4629 ndr_print_spoolss_SetPrinterInfo7(ndr, "info7", r->info7);
4635 ndr_print_ptr(ndr, "info8", r->info8);
4638 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", r->info8);
4644 ndr_print_ptr(ndr, "info9", r->info9);
4647 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", r->info9);
4658 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfoCtr *r)
4660 if (ndr_flags & NDR_SCALARS) {
4661 NDR_CHECK(ndr_push_align(ndr, 4));
4662 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
4663 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
4664 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
4666 if (ndr_flags & NDR_BUFFERS) {
4667 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
4669 return NDR_ERR_SUCCESS;
4672 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfoCtr *r)
4674 if (ndr_flags & NDR_SCALARS) {
4675 NDR_CHECK(ndr_pull_align(ndr, 4));
4676 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
4677 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
4678 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
4680 if (ndr_flags & NDR_BUFFERS) {
4681 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
4683 return NDR_ERR_SUCCESS;
4686 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfoCtr *r)
4688 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfoCtr");
4690 ndr_print_uint32(ndr, "level", r->level);
4691 ndr_print_set_switch_value(ndr, &r->info, r->level);
4692 ndr_print_spoolss_SetPrinterInfo(ndr, "info", &r->info);
4696 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_StringArray(struct ndr_push *ndr, int ndr_flags, const struct spoolss_StringArray *r)
4698 if (ndr_flags & NDR_SCALARS) {
4699 NDR_CHECK(ndr_push_align(ndr, 4));
4700 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, (ndr_size_spoolss_StringArray(r, ndr->iconv_convenience, ndr->flags) - 4) / 2));
4702 uint32_t _flags_save_string_array = ndr->flags;
4703 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4704 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string));
4705 ndr->flags = _flags_save_string_array;
4708 if (ndr_flags & NDR_BUFFERS) {
4710 return NDR_ERR_SUCCESS;
4713 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_StringArray(struct ndr_pull *ndr, int ndr_flags, struct spoolss_StringArray *r)
4715 if (ndr_flags & NDR_SCALARS) {
4716 NDR_CHECK(ndr_pull_align(ndr, 4));
4717 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
4719 uint32_t _flags_save_string_array = ndr->flags;
4720 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4721 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string));
4722 ndr->flags = _flags_save_string_array;
4725 if (ndr_flags & NDR_BUFFERS) {
4727 return NDR_ERR_SUCCESS;
4730 _PUBLIC_ void ndr_print_spoolss_StringArray(struct ndr_print *ndr, const char *name, const struct spoolss_StringArray *r)
4732 ndr_print_struct(ndr, name, "spoolss_StringArray");
4734 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);
4735 ndr_print_string_array(ndr, "string", r->string);
4739 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo1 *r)
4741 if (ndr_flags & NDR_SCALARS) {
4742 NDR_CHECK(ndr_push_align(ndr, 4));
4743 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
4745 if (ndr_flags & NDR_BUFFERS) {
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));
4753 return NDR_ERR_SUCCESS;
4756 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo1 *r)
4758 uint32_t _ptr_driver_name;
4759 TALLOC_CTX *_mem_save_driver_name_0;
4760 if (ndr_flags & NDR_SCALARS) {
4761 NDR_CHECK(ndr_pull_align(ndr, 4));
4762 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4763 if (_ptr_driver_name) {
4764 NDR_PULL_ALLOC(ndr, r->driver_name);
4766 r->driver_name = NULL;
4769 if (ndr_flags & NDR_BUFFERS) {
4770 if (r->driver_name) {
4771 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4772 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4773 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
4774 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
4775 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
4776 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));
4778 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
4779 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
4780 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4783 return NDR_ERR_SUCCESS;
4786 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo1 *r)
4788 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo1");
4790 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4792 if (r->driver_name) {
4793 ndr_print_string(ndr, "driver_name", r->driver_name);
4799 static enum ndr_err_code ndr_push_spoolss_DriverOSVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverOSVersion r)
4801 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
4802 return NDR_ERR_SUCCESS;
4805 static enum ndr_err_code ndr_pull_spoolss_DriverOSVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverOSVersion *r)
4808 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
4810 return NDR_ERR_SUCCESS;
4813 _PUBLIC_ void ndr_print_spoolss_DriverOSVersion(struct ndr_print *ndr, const char *name, enum spoolss_DriverOSVersion r)
4815 const char *val = NULL;
4818 case SPOOLSS_DRIVER_VERSION_9X: val = "SPOOLSS_DRIVER_VERSION_9X"; break;
4819 case SPOOLSS_DRIVER_VERSION_NT35: val = "SPOOLSS_DRIVER_VERSION_NT35"; break;
4820 case SPOOLSS_DRIVER_VERSION_NT4: val = "SPOOLSS_DRIVER_VERSION_NT4"; break;
4821 case SPOOLSS_DRIVER_VERSION_200X: val = "SPOOLSS_DRIVER_VERSION_200X"; break;
4823 ndr_print_enum(ndr, name, "ENUM", val, r);
4826 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo2 *r)
4828 if (ndr_flags & NDR_SCALARS) {
4829 NDR_CHECK(ndr_push_align(ndr, 4));
4830 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
4831 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
4832 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
4833 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
4834 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
4835 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
4837 if (ndr_flags & NDR_BUFFERS) {
4838 if (r->driver_name) {
4839 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
4840 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4841 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
4842 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4844 if (r->architecture) {
4845 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
4846 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4847 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
4848 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4850 if (r->driver_path) {
4851 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
4852 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4853 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
4854 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4857 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
4858 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4859 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
4860 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4862 if (r->config_file) {
4863 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
4864 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4865 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
4866 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4869 return NDR_ERR_SUCCESS;
4872 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo2 *r)
4874 uint32_t _ptr_driver_name;
4875 TALLOC_CTX *_mem_save_driver_name_0;
4876 uint32_t _ptr_architecture;
4877 TALLOC_CTX *_mem_save_architecture_0;
4878 uint32_t _ptr_driver_path;
4879 TALLOC_CTX *_mem_save_driver_path_0;
4880 uint32_t _ptr_data_file;
4881 TALLOC_CTX *_mem_save_data_file_0;
4882 uint32_t _ptr_config_file;
4883 TALLOC_CTX *_mem_save_config_file_0;
4884 if (ndr_flags & NDR_SCALARS) {
4885 NDR_CHECK(ndr_pull_align(ndr, 4));
4886 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
4887 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4888 if (_ptr_driver_name) {
4889 NDR_PULL_ALLOC(ndr, r->driver_name);
4891 r->driver_name = NULL;
4893 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
4894 if (_ptr_architecture) {
4895 NDR_PULL_ALLOC(ndr, r->architecture);
4897 r->architecture = NULL;
4899 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
4900 if (_ptr_driver_path) {
4901 NDR_PULL_ALLOC(ndr, r->driver_path);
4903 r->driver_path = NULL;
4905 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
4906 if (_ptr_data_file) {
4907 NDR_PULL_ALLOC(ndr, r->data_file);
4909 r->data_file = NULL;
4911 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
4912 if (_ptr_config_file) {
4913 NDR_PULL_ALLOC(ndr, r->config_file);
4915 r->config_file = NULL;
4918 if (ndr_flags & NDR_BUFFERS) {
4919 if (r->driver_name) {
4920 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4921 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4922 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
4923 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
4924 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
4925 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));
4927 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
4928 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
4929 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4931 if (r->architecture) {
4932 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
4933 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
4934 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
4935 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
4936 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
4937 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));
4939 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
4940 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
4941 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
4943 if (r->driver_path) {
4944 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
4945 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
4946 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
4947 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
4948 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
4949 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));
4951 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
4952 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
4953 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
4956 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
4957 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
4958 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
4959 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
4960 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
4961 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));
4963 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
4964 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
4965 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
4967 if (r->config_file) {
4968 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
4969 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
4970 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
4971 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
4972 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
4973 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));
4975 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
4976 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
4977 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
4980 return NDR_ERR_SUCCESS;
4983 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo2 *r)
4985 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo2");
4987 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
4988 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4990 if (r->driver_name) {
4991 ndr_print_string(ndr, "driver_name", r->driver_name);
4994 ndr_print_ptr(ndr, "architecture", r->architecture);
4996 if (r->architecture) {
4997 ndr_print_string(ndr, "architecture", r->architecture);
5000 ndr_print_ptr(ndr, "driver_path", r->driver_path);
5002 if (r->driver_path) {
5003 ndr_print_string(ndr, "driver_path", r->driver_path);
5006 ndr_print_ptr(ndr, "data_file", r->data_file);
5009 ndr_print_string(ndr, "data_file", r->data_file);
5012 ndr_print_ptr(ndr, "config_file", r->config_file);
5014 if (r->config_file) {
5015 ndr_print_string(ndr, "config_file", r->config_file);
5021 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo3 *r)
5023 if (ndr_flags & NDR_SCALARS) {
5024 NDR_CHECK(ndr_push_align(ndr, 4));
5025 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
5026 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5027 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
5028 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
5029 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
5030 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
5031 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
5032 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
5033 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
5034 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
5035 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
5037 if (ndr_flags & NDR_BUFFERS) {
5038 if (r->driver_name) {
5039 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5040 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5041 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5042 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5044 if (r->architecture) {
5045 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
5046 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5047 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
5048 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5050 if (r->driver_path) {
5051 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
5052 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5053 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
5054 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5057 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
5058 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5059 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
5060 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5062 if (r->config_file) {
5063 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
5064 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5065 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
5066 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5069 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
5070 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5071 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
5072 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5074 if (r->monitor_name) {
5075 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
5076 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5077 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
5078 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5080 if (r->default_datatype) {
5081 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
5082 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5083 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
5084 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5086 if (r->dependent_files) {
5087 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
5090 return NDR_ERR_SUCCESS;
5093 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo3 *r)
5095 uint32_t _ptr_driver_name;
5096 TALLOC_CTX *_mem_save_driver_name_0;
5097 uint32_t _ptr_architecture;
5098 TALLOC_CTX *_mem_save_architecture_0;
5099 uint32_t _ptr_driver_path;
5100 TALLOC_CTX *_mem_save_driver_path_0;
5101 uint32_t _ptr_data_file;
5102 TALLOC_CTX *_mem_save_data_file_0;
5103 uint32_t _ptr_config_file;
5104 TALLOC_CTX *_mem_save_config_file_0;
5105 uint32_t _ptr_help_file;
5106 TALLOC_CTX *_mem_save_help_file_0;
5107 uint32_t _ptr_monitor_name;
5108 TALLOC_CTX *_mem_save_monitor_name_0;
5109 uint32_t _ptr_default_datatype;
5110 TALLOC_CTX *_mem_save_default_datatype_0;
5111 uint32_t _ptr_dependent_files;
5112 TALLOC_CTX *_mem_save_dependent_files_0;
5113 if (ndr_flags & NDR_SCALARS) {
5114 NDR_CHECK(ndr_pull_align(ndr, 4));
5115 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
5116 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5117 if (_ptr_driver_name) {
5118 NDR_PULL_ALLOC(ndr, r->driver_name);
5120 r->driver_name = NULL;
5122 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
5123 if (_ptr_architecture) {
5124 NDR_PULL_ALLOC(ndr, r->architecture);
5126 r->architecture = NULL;
5128 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
5129 if (_ptr_driver_path) {
5130 NDR_PULL_ALLOC(ndr, r->driver_path);
5132 r->driver_path = NULL;
5134 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
5135 if (_ptr_data_file) {
5136 NDR_PULL_ALLOC(ndr, r->data_file);
5138 r->data_file = NULL;
5140 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
5141 if (_ptr_config_file) {
5142 NDR_PULL_ALLOC(ndr, r->config_file);
5144 r->config_file = NULL;
5146 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
5147 if (_ptr_help_file) {
5148 NDR_PULL_ALLOC(ndr, r->help_file);
5150 r->help_file = NULL;
5152 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
5153 if (_ptr_monitor_name) {
5154 NDR_PULL_ALLOC(ndr, r->monitor_name);
5156 r->monitor_name = NULL;
5158 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
5159 if (_ptr_default_datatype) {
5160 NDR_PULL_ALLOC(ndr, r->default_datatype);
5162 r->default_datatype = NULL;
5164 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
5165 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
5166 if (_ptr_dependent_files) {
5167 NDR_PULL_ALLOC(ndr, r->dependent_files);
5169 r->dependent_files = NULL;
5172 if (ndr_flags & NDR_BUFFERS) {
5173 if (r->driver_name) {
5174 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5175 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5176 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5177 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5178 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5179 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));
5181 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5182 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5183 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5185 if (r->architecture) {
5186 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
5187 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
5188 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
5189 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
5190 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
5191 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));
5193 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
5194 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
5195 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
5197 if (r->driver_path) {
5198 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
5199 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
5200 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
5201 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
5202 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
5203 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));
5205 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
5206 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
5207 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
5210 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5211 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
5212 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
5213 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
5214 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
5215 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));
5217 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
5218 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
5219 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
5221 if (r->config_file) {
5222 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5223 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
5224 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
5225 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
5226 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
5227 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));
5229 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
5230 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
5231 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
5234 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5235 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
5236 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
5237 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
5238 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
5239 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));
5241 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
5242 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
5243 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
5245 if (r->monitor_name) {
5246 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5247 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
5248 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
5249 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
5250 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
5251 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));
5253 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
5254 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
5255 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
5257 if (r->default_datatype) {
5258 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
5259 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
5260 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
5261 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
5262 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
5263 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));
5265 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
5266 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
5267 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
5269 if (r->dependent_files) {
5270 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
5271 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
5272 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
5273 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
5276 return NDR_ERR_SUCCESS;
5279 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo3 *r)
5281 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo3");
5283 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
5284 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5286 if (r->driver_name) {
5287 ndr_print_string(ndr, "driver_name", r->driver_name);
5290 ndr_print_ptr(ndr, "architecture", r->architecture);
5292 if (r->architecture) {
5293 ndr_print_string(ndr, "architecture", r->architecture);
5296 ndr_print_ptr(ndr, "driver_path", r->driver_path);
5298 if (r->driver_path) {
5299 ndr_print_string(ndr, "driver_path", r->driver_path);
5302 ndr_print_ptr(ndr, "data_file", r->data_file);
5305 ndr_print_string(ndr, "data_file", r->data_file);
5308 ndr_print_ptr(ndr, "config_file", r->config_file);
5310 if (r->config_file) {
5311 ndr_print_string(ndr, "config_file", r->config_file);
5314 ndr_print_ptr(ndr, "help_file", r->help_file);
5317 ndr_print_string(ndr, "help_file", r->help_file);
5320 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
5322 if (r->monitor_name) {
5323 ndr_print_string(ndr, "monitor_name", r->monitor_name);
5326 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
5328 if (r->default_datatype) {
5329 ndr_print_string(ndr, "default_datatype", r->default_datatype);
5332 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);
5333 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
5335 if (r->dependent_files) {
5336 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
5342 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo4 *r)
5344 if (ndr_flags & NDR_SCALARS) {
5345 NDR_CHECK(ndr_push_align(ndr, 4));
5346 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
5347 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5348 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
5349 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
5350 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
5351 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
5352 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
5353 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
5354 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
5355 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
5356 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
5357 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
5358 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
5360 if (ndr_flags & NDR_BUFFERS) {
5361 if (r->driver_name) {
5362 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5363 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5364 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5365 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5367 if (r->architecture) {
5368 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
5369 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5370 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
5371 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5373 if (r->driver_path) {
5374 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
5375 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5376 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
5377 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5380 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
5381 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5382 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
5383 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5385 if (r->config_file) {
5386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
5387 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5388 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
5389 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5392 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
5393 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5394 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
5395 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5397 if (r->monitor_name) {
5398 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
5399 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5400 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
5401 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5403 if (r->default_datatype) {
5404 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
5405 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5406 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
5407 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5409 if (r->dependent_files) {
5410 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
5412 if (r->previous_names) {
5413 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
5416 return NDR_ERR_SUCCESS;
5419 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo4 *r)
5421 uint32_t _ptr_driver_name;
5422 TALLOC_CTX *_mem_save_driver_name_0;
5423 uint32_t _ptr_architecture;
5424 TALLOC_CTX *_mem_save_architecture_0;
5425 uint32_t _ptr_driver_path;
5426 TALLOC_CTX *_mem_save_driver_path_0;
5427 uint32_t _ptr_data_file;
5428 TALLOC_CTX *_mem_save_data_file_0;
5429 uint32_t _ptr_config_file;
5430 TALLOC_CTX *_mem_save_config_file_0;
5431 uint32_t _ptr_help_file;
5432 TALLOC_CTX *_mem_save_help_file_0;
5433 uint32_t _ptr_monitor_name;
5434 TALLOC_CTX *_mem_save_monitor_name_0;
5435 uint32_t _ptr_default_datatype;
5436 TALLOC_CTX *_mem_save_default_datatype_0;
5437 uint32_t _ptr_dependent_files;
5438 TALLOC_CTX *_mem_save_dependent_files_0;
5439 uint32_t _ptr_previous_names;
5440 TALLOC_CTX *_mem_save_previous_names_0;
5441 if (ndr_flags & NDR_SCALARS) {
5442 NDR_CHECK(ndr_pull_align(ndr, 4));
5443 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
5444 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5445 if (_ptr_driver_name) {
5446 NDR_PULL_ALLOC(ndr, r->driver_name);
5448 r->driver_name = NULL;
5450 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
5451 if (_ptr_architecture) {
5452 NDR_PULL_ALLOC(ndr, r->architecture);
5454 r->architecture = NULL;
5456 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
5457 if (_ptr_driver_path) {
5458 NDR_PULL_ALLOC(ndr, r->driver_path);
5460 r->driver_path = NULL;
5462 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
5463 if (_ptr_data_file) {
5464 NDR_PULL_ALLOC(ndr, r->data_file);
5466 r->data_file = NULL;
5468 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
5469 if (_ptr_config_file) {
5470 NDR_PULL_ALLOC(ndr, r->config_file);
5472 r->config_file = NULL;
5474 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
5475 if (_ptr_help_file) {
5476 NDR_PULL_ALLOC(ndr, r->help_file);
5478 r->help_file = NULL;
5480 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
5481 if (_ptr_monitor_name) {
5482 NDR_PULL_ALLOC(ndr, r->monitor_name);
5484 r->monitor_name = NULL;
5486 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
5487 if (_ptr_default_datatype) {
5488 NDR_PULL_ALLOC(ndr, r->default_datatype);
5490 r->default_datatype = NULL;
5492 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
5493 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
5494 if (_ptr_dependent_files) {
5495 NDR_PULL_ALLOC(ndr, r->dependent_files);
5497 r->dependent_files = NULL;
5499 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
5500 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
5501 if (_ptr_previous_names) {
5502 NDR_PULL_ALLOC(ndr, r->previous_names);
5504 r->previous_names = NULL;
5507 if (ndr_flags & NDR_BUFFERS) {
5508 if (r->driver_name) {
5509 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5510 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5511 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5512 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5513 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5514 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));
5516 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5517 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5518 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5520 if (r->architecture) {
5521 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
5522 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
5523 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
5524 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
5525 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
5526 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));
5528 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
5529 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
5530 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
5532 if (r->driver_path) {
5533 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
5534 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
5535 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
5536 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
5537 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
5538 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));
5540 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
5541 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
5542 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
5545 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5546 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
5547 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
5548 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
5549 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
5550 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));
5552 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
5553 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
5554 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
5556 if (r->config_file) {
5557 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5558 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
5559 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
5560 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
5561 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
5562 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));
5564 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
5565 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
5566 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
5569 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5570 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
5571 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
5572 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
5573 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
5574 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));
5576 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
5577 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
5578 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
5580 if (r->monitor_name) {
5581 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5582 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
5583 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
5584 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
5585 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
5586 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));
5588 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
5589 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
5590 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
5592 if (r->default_datatype) {
5593 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
5594 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
5595 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
5596 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
5597 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
5598 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));
5600 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
5601 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
5602 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
5604 if (r->dependent_files) {
5605 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
5606 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
5607 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
5608 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
5610 if (r->previous_names) {
5611 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
5612 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
5613 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
5614 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
5617 return NDR_ERR_SUCCESS;
5620 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo4 *r)
5622 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo4");
5624 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
5625 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5627 if (r->driver_name) {
5628 ndr_print_string(ndr, "driver_name", r->driver_name);
5631 ndr_print_ptr(ndr, "architecture", r->architecture);
5633 if (r->architecture) {
5634 ndr_print_string(ndr, "architecture", r->architecture);
5637 ndr_print_ptr(ndr, "driver_path", r->driver_path);
5639 if (r->driver_path) {
5640 ndr_print_string(ndr, "driver_path", r->driver_path);
5643 ndr_print_ptr(ndr, "data_file", r->data_file);
5646 ndr_print_string(ndr, "data_file", r->data_file);
5649 ndr_print_ptr(ndr, "config_file", r->config_file);
5651 if (r->config_file) {
5652 ndr_print_string(ndr, "config_file", r->config_file);
5655 ndr_print_ptr(ndr, "help_file", r->help_file);
5658 ndr_print_string(ndr, "help_file", r->help_file);
5661 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
5663 if (r->monitor_name) {
5664 ndr_print_string(ndr, "monitor_name", r->monitor_name);
5667 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
5669 if (r->default_datatype) {
5670 ndr_print_string(ndr, "default_datatype", r->default_datatype);
5673 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);
5674 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
5676 if (r->dependent_files) {
5677 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
5680 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);
5681 ndr_print_ptr(ndr, "previous_names", r->previous_names);
5683 if (r->previous_names) {
5684 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
5690 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo6 *r)
5692 if (ndr_flags & NDR_SCALARS) {
5693 NDR_CHECK(ndr_push_align(ndr, 8));
5694 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
5695 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5696 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
5697 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
5698 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
5699 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
5700 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
5701 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
5702 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
5703 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
5704 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
5705 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
5706 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
5707 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_data));
5708 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
5709 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
5710 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
5711 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
5712 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
5714 if (ndr_flags & NDR_BUFFERS) {
5715 if (r->driver_name) {
5716 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5717 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5718 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5719 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5721 if (r->architecture) {
5722 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
5723 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5724 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
5725 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5727 if (r->driver_path) {
5728 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
5729 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5730 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
5731 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5734 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
5735 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5736 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
5737 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5739 if (r->config_file) {
5740 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
5741 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5742 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
5743 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5746 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
5747 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5748 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
5749 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5751 if (r->monitor_name) {
5752 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
5753 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5754 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
5755 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5757 if (r->default_datatype) {
5758 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
5759 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5760 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
5761 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5763 if (r->dependent_files) {
5764 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
5766 if (r->previous_names) {
5767 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
5769 if (r->manufacturer_name) {
5770 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
5771 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5772 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
5773 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5775 if (r->manufacturer_url) {
5776 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
5777 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5778 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
5779 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5781 if (r->hardware_id) {
5782 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
5783 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5784 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
5785 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5788 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
5789 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5790 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
5791 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5794 return NDR_ERR_SUCCESS;
5797 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo6 *r)
5799 uint32_t _ptr_driver_name;
5800 TALLOC_CTX *_mem_save_driver_name_0;
5801 uint32_t _ptr_architecture;
5802 TALLOC_CTX *_mem_save_architecture_0;
5803 uint32_t _ptr_driver_path;
5804 TALLOC_CTX *_mem_save_driver_path_0;
5805 uint32_t _ptr_data_file;
5806 TALLOC_CTX *_mem_save_data_file_0;
5807 uint32_t _ptr_config_file;
5808 TALLOC_CTX *_mem_save_config_file_0;
5809 uint32_t _ptr_help_file;
5810 TALLOC_CTX *_mem_save_help_file_0;
5811 uint32_t _ptr_monitor_name;
5812 TALLOC_CTX *_mem_save_monitor_name_0;
5813 uint32_t _ptr_default_datatype;
5814 TALLOC_CTX *_mem_save_default_datatype_0;
5815 uint32_t _ptr_dependent_files;
5816 TALLOC_CTX *_mem_save_dependent_files_0;
5817 uint32_t _ptr_previous_names;
5818 TALLOC_CTX *_mem_save_previous_names_0;
5819 uint32_t _ptr_manufacturer_name;
5820 TALLOC_CTX *_mem_save_manufacturer_name_0;
5821 uint32_t _ptr_manufacturer_url;
5822 TALLOC_CTX *_mem_save_manufacturer_url_0;
5823 uint32_t _ptr_hardware_id;
5824 TALLOC_CTX *_mem_save_hardware_id_0;
5825 uint32_t _ptr_provider;
5826 TALLOC_CTX *_mem_save_provider_0;
5827 if (ndr_flags & NDR_SCALARS) {
5828 NDR_CHECK(ndr_pull_align(ndr, 8));
5829 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
5830 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5831 if (_ptr_driver_name) {
5832 NDR_PULL_ALLOC(ndr, r->driver_name);
5834 r->driver_name = NULL;
5836 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
5837 if (_ptr_architecture) {
5838 NDR_PULL_ALLOC(ndr, r->architecture);
5840 r->architecture = NULL;
5842 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
5843 if (_ptr_driver_path) {
5844 NDR_PULL_ALLOC(ndr, r->driver_path);
5846 r->driver_path = NULL;
5848 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
5849 if (_ptr_data_file) {
5850 NDR_PULL_ALLOC(ndr, r->data_file);
5852 r->data_file = NULL;
5854 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
5855 if (_ptr_config_file) {
5856 NDR_PULL_ALLOC(ndr, r->config_file);
5858 r->config_file = NULL;
5860 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
5861 if (_ptr_help_file) {
5862 NDR_PULL_ALLOC(ndr, r->help_file);
5864 r->help_file = NULL;
5866 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
5867 if (_ptr_monitor_name) {
5868 NDR_PULL_ALLOC(ndr, r->monitor_name);
5870 r->monitor_name = NULL;
5872 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
5873 if (_ptr_default_datatype) {
5874 NDR_PULL_ALLOC(ndr, r->default_datatype);
5876 r->default_datatype = NULL;
5878 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
5879 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
5880 if (_ptr_dependent_files) {
5881 NDR_PULL_ALLOC(ndr, r->dependent_files);
5883 r->dependent_files = NULL;
5885 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
5886 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
5887 if (_ptr_previous_names) {
5888 NDR_PULL_ALLOC(ndr, r->previous_names);
5890 r->previous_names = NULL;
5892 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_data));
5893 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
5894 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
5895 if (_ptr_manufacturer_name) {
5896 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
5898 r->manufacturer_name = NULL;
5900 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
5901 if (_ptr_manufacturer_url) {
5902 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
5904 r->manufacturer_url = NULL;
5906 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
5907 if (_ptr_hardware_id) {
5908 NDR_PULL_ALLOC(ndr, r->hardware_id);
5910 r->hardware_id = NULL;
5912 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
5913 if (_ptr_provider) {
5914 NDR_PULL_ALLOC(ndr, r->provider);
5919 if (ndr_flags & NDR_BUFFERS) {
5920 if (r->driver_name) {
5921 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5922 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5923 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5924 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5925 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5926 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));
5928 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5929 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5930 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5932 if (r->architecture) {
5933 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
5934 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
5935 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
5936 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
5937 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
5938 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));
5940 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
5941 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
5942 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
5944 if (r->driver_path) {
5945 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
5946 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
5947 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
5948 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
5949 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
5950 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));
5952 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
5953 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
5954 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
5957 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5958 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
5959 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
5960 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
5961 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
5962 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));
5964 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
5965 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
5966 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
5968 if (r->config_file) {
5969 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5970 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
5971 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
5972 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
5973 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
5974 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));
5976 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
5977 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
5978 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
5981 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5982 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
5983 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
5984 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
5985 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
5986 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));
5988 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
5989 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
5990 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
5992 if (r->monitor_name) {
5993 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5994 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
5995 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
5996 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
5997 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
5998 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));
6000 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
6001 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
6002 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
6004 if (r->default_datatype) {
6005 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
6006 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
6007 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
6008 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
6009 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
6010 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));
6012 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
6013 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
6014 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
6016 if (r->dependent_files) {
6017 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
6018 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
6019 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
6020 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
6022 if (r->previous_names) {
6023 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
6024 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
6025 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
6026 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
6028 if (r->manufacturer_name) {
6029 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6030 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
6031 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
6032 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
6033 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
6034 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));
6036 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
6037 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
6038 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
6040 if (r->manufacturer_url) {
6041 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
6042 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
6043 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
6044 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
6045 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
6046 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));
6048 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
6049 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
6050 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
6052 if (r->hardware_id) {
6053 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
6054 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
6055 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
6056 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
6057 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
6058 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));
6060 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
6061 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
6062 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
6065 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
6066 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
6067 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
6068 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
6069 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
6070 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));
6072 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
6073 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
6074 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
6077 return NDR_ERR_SUCCESS;
6080 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo6 *r)
6082 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo6");
6084 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
6085 ndr_print_ptr(ndr, "driver_name", r->driver_name);
6087 if (r->driver_name) {
6088 ndr_print_string(ndr, "driver_name", r->driver_name);
6091 ndr_print_ptr(ndr, "architecture", r->architecture);
6093 if (r->architecture) {
6094 ndr_print_string(ndr, "architecture", r->architecture);
6097 ndr_print_ptr(ndr, "driver_path", r->driver_path);
6099 if (r->driver_path) {
6100 ndr_print_string(ndr, "driver_path", r->driver_path);
6103 ndr_print_ptr(ndr, "data_file", r->data_file);
6106 ndr_print_string(ndr, "data_file", r->data_file);
6109 ndr_print_ptr(ndr, "config_file", r->config_file);
6111 if (r->config_file) {
6112 ndr_print_string(ndr, "config_file", r->config_file);
6115 ndr_print_ptr(ndr, "help_file", r->help_file);
6118 ndr_print_string(ndr, "help_file", r->help_file);
6121 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
6123 if (r->monitor_name) {
6124 ndr_print_string(ndr, "monitor_name", r->monitor_name);
6127 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
6129 if (r->default_datatype) {
6130 ndr_print_string(ndr, "default_datatype", r->default_datatype);
6133 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);
6134 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
6136 if (r->dependent_files) {
6137 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
6140 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);
6141 ndr_print_ptr(ndr, "previous_names", r->previous_names);
6143 if (r->previous_names) {
6144 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
6147 ndr_print_NTTIME(ndr, "driver_data", r->driver_data);
6148 ndr_print_hyper(ndr, "driver_version", r->driver_version);
6149 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
6151 if (r->manufacturer_name) {
6152 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
6155 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
6157 if (r->manufacturer_url) {
6158 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
6161 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
6163 if (r->hardware_id) {
6164 ndr_print_string(ndr, "hardware_id", r->hardware_id);
6167 ndr_print_ptr(ndr, "provider", r->provider);
6170 ndr_print_string(ndr, "provider", r->provider);
6176 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo8 *r)
6178 if (ndr_flags & NDR_SCALARS) {
6179 NDR_CHECK(ndr_push_align(ndr, 8));
6180 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
6181 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
6182 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
6183 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
6184 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
6185 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
6186 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
6187 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
6188 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
6189 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
6190 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
6191 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
6192 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
6193 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_data));
6194 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
6195 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
6196 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
6197 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
6198 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
6199 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
6200 NDR_CHECK(ndr_push_unique_ptr(ndr, r->vendor_setup));
6201 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->color_profiles, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
6202 NDR_CHECK(ndr_push_unique_ptr(ndr, r->color_profiles));
6203 NDR_CHECK(ndr_push_unique_ptr(ndr, r->inf_path));
6204 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
6205 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
6206 NDR_CHECK(ndr_push_unique_ptr(ndr, r->core_driver_dependencies));
6207 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
6208 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
6210 if (ndr_flags & NDR_BUFFERS) {
6211 if (r->driver_name) {
6212 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
6213 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6214 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
6215 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6217 if (r->architecture) {
6218 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
6219 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6220 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
6221 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6223 if (r->driver_path) {
6224 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
6225 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6226 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
6227 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6230 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
6231 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6232 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
6233 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6235 if (r->config_file) {
6236 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
6237 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6238 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
6239 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6242 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
6243 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6244 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
6245 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6247 if (r->monitor_name) {
6248 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
6249 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6250 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
6251 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6253 if (r->default_datatype) {
6254 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
6255 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6256 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
6257 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6259 if (r->dependent_files) {
6260 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
6262 if (r->previous_names) {
6263 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
6265 if (r->manufacturer_name) {
6266 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
6267 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6268 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
6269 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6271 if (r->manufacturer_url) {
6272 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
6273 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6274 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
6275 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6277 if (r->hardware_id) {
6278 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
6279 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6280 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
6281 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6284 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
6285 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6286 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
6287 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6289 if (r->print_processor) {
6290 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
6291 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6292 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
6293 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6295 if (r->vendor_setup) {
6296 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
6297 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6298 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
6299 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->vendor_setup, ndr_charset_length(r->vendor_setup, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6301 if (r->color_profiles) {
6302 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
6305 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
6306 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6307 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
6308 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->inf_path, ndr_charset_length(r->inf_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6310 if (r->core_driver_dependencies) {
6311 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
6314 return NDR_ERR_SUCCESS;
6317 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo8 *r)
6319 uint32_t _ptr_driver_name;
6320 TALLOC_CTX *_mem_save_driver_name_0;
6321 uint32_t _ptr_architecture;
6322 TALLOC_CTX *_mem_save_architecture_0;
6323 uint32_t _ptr_driver_path;
6324 TALLOC_CTX *_mem_save_driver_path_0;
6325 uint32_t _ptr_data_file;
6326 TALLOC_CTX *_mem_save_data_file_0;
6327 uint32_t _ptr_config_file;
6328 TALLOC_CTX *_mem_save_config_file_0;
6329 uint32_t _ptr_help_file;
6330 TALLOC_CTX *_mem_save_help_file_0;
6331 uint32_t _ptr_monitor_name;
6332 TALLOC_CTX *_mem_save_monitor_name_0;
6333 uint32_t _ptr_default_datatype;
6334 TALLOC_CTX *_mem_save_default_datatype_0;
6335 uint32_t _ptr_dependent_files;
6336 TALLOC_CTX *_mem_save_dependent_files_0;
6337 uint32_t _ptr_previous_names;
6338 TALLOC_CTX *_mem_save_previous_names_0;
6339 uint32_t _ptr_manufacturer_name;
6340 TALLOC_CTX *_mem_save_manufacturer_name_0;
6341 uint32_t _ptr_manufacturer_url;
6342 TALLOC_CTX *_mem_save_manufacturer_url_0;
6343 uint32_t _ptr_hardware_id;
6344 TALLOC_CTX *_mem_save_hardware_id_0;
6345 uint32_t _ptr_provider;
6346 TALLOC_CTX *_mem_save_provider_0;
6347 uint32_t _ptr_print_processor;
6348 TALLOC_CTX *_mem_save_print_processor_0;
6349 uint32_t _ptr_vendor_setup;
6350 TALLOC_CTX *_mem_save_vendor_setup_0;
6351 uint32_t _ptr_color_profiles;
6352 TALLOC_CTX *_mem_save_color_profiles_0;
6353 uint32_t _ptr_inf_path;
6354 TALLOC_CTX *_mem_save_inf_path_0;
6355 uint32_t _ptr_core_driver_dependencies;
6356 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
6357 if (ndr_flags & NDR_SCALARS) {
6358 NDR_CHECK(ndr_pull_align(ndr, 8));
6359 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
6360 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
6361 if (_ptr_driver_name) {
6362 NDR_PULL_ALLOC(ndr, r->driver_name);
6364 r->driver_name = NULL;
6366 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
6367 if (_ptr_architecture) {
6368 NDR_PULL_ALLOC(ndr, r->architecture);
6370 r->architecture = NULL;
6372 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
6373 if (_ptr_driver_path) {
6374 NDR_PULL_ALLOC(ndr, r->driver_path);
6376 r->driver_path = NULL;
6378 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
6379 if (_ptr_data_file) {
6380 NDR_PULL_ALLOC(ndr, r->data_file);
6382 r->data_file = NULL;
6384 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
6385 if (_ptr_config_file) {
6386 NDR_PULL_ALLOC(ndr, r->config_file);
6388 r->config_file = NULL;
6390 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
6391 if (_ptr_help_file) {
6392 NDR_PULL_ALLOC(ndr, r->help_file);
6394 r->help_file = NULL;
6396 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
6397 if (_ptr_monitor_name) {
6398 NDR_PULL_ALLOC(ndr, r->monitor_name);
6400 r->monitor_name = NULL;
6402 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
6403 if (_ptr_default_datatype) {
6404 NDR_PULL_ALLOC(ndr, r->default_datatype);
6406 r->default_datatype = NULL;
6408 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
6409 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
6410 if (_ptr_dependent_files) {
6411 NDR_PULL_ALLOC(ndr, r->dependent_files);
6413 r->dependent_files = NULL;
6415 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
6416 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
6417 if (_ptr_previous_names) {
6418 NDR_PULL_ALLOC(ndr, r->previous_names);
6420 r->previous_names = NULL;
6422 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_data));
6423 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
6424 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
6425 if (_ptr_manufacturer_name) {
6426 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
6428 r->manufacturer_name = NULL;
6430 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
6431 if (_ptr_manufacturer_url) {
6432 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
6434 r->manufacturer_url = NULL;
6436 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
6437 if (_ptr_hardware_id) {
6438 NDR_PULL_ALLOC(ndr, r->hardware_id);
6440 r->hardware_id = NULL;
6442 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
6443 if (_ptr_provider) {
6444 NDR_PULL_ALLOC(ndr, r->provider);
6448 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
6449 if (_ptr_print_processor) {
6450 NDR_PULL_ALLOC(ndr, r->print_processor);
6452 r->print_processor = NULL;
6454 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
6455 if (_ptr_vendor_setup) {
6456 NDR_PULL_ALLOC(ndr, r->vendor_setup);
6458 r->vendor_setup = NULL;
6460 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_color_profiles));
6461 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
6462 if (_ptr_color_profiles) {
6463 NDR_PULL_ALLOC(ndr, r->color_profiles);
6465 r->color_profiles = NULL;
6467 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
6468 if (_ptr_inf_path) {
6469 NDR_PULL_ALLOC(ndr, r->inf_path);
6473 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
6474 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_core_driver_dependencies));
6475 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
6476 if (_ptr_core_driver_dependencies) {
6477 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
6479 r->core_driver_dependencies = NULL;
6481 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
6482 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
6484 if (ndr_flags & NDR_BUFFERS) {
6485 if (r->driver_name) {
6486 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6487 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
6488 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
6489 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
6490 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
6491 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));
6493 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
6494 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
6495 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
6497 if (r->architecture) {
6498 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
6499 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
6500 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
6501 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
6502 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
6503 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));
6505 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
6506 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
6507 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
6509 if (r->driver_path) {
6510 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
6511 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
6512 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
6513 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
6514 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
6515 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));
6517 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
6518 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
6519 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
6522 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
6523 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
6524 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
6525 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
6526 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
6527 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));
6529 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
6530 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
6531 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
6533 if (r->config_file) {
6534 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
6535 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
6536 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
6537 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
6538 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
6539 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));
6541 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
6542 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
6543 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
6546 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
6547 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
6548 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
6549 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
6550 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
6551 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));
6553 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
6554 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
6555 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
6557 if (r->monitor_name) {
6558 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6559 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
6560 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
6561 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
6562 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
6563 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));
6565 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
6566 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
6567 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
6569 if (r->default_datatype) {
6570 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
6571 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
6572 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
6573 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
6574 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
6575 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));
6577 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
6578 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
6579 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
6581 if (r->dependent_files) {
6582 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
6583 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
6584 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
6585 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
6587 if (r->previous_names) {
6588 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
6589 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
6590 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
6591 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
6593 if (r->manufacturer_name) {
6594 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6595 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
6596 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
6597 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
6598 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
6599 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));
6601 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
6602 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
6603 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
6605 if (r->manufacturer_url) {
6606 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
6607 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
6608 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
6609 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
6610 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
6611 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));
6613 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
6614 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
6615 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
6617 if (r->hardware_id) {
6618 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
6619 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
6620 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
6621 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
6622 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
6623 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));
6625 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
6626 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
6627 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
6630 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
6631 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
6632 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
6633 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
6634 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
6635 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));
6637 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
6638 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
6639 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
6641 if (r->print_processor) {
6642 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
6643 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
6644 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
6645 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
6646 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
6647 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));
6649 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
6650 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
6651 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
6653 if (r->vendor_setup) {
6654 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
6655 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
6656 NDR_CHECK(ndr_pull_array_size(ndr, &r->vendor_setup));
6657 NDR_CHECK(ndr_pull_array_length(ndr, &r->vendor_setup));
6658 if (ndr_get_array_length(ndr, &r->vendor_setup) > ndr_get_array_size(ndr, &r->vendor_setup)) {
6659 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));
6661 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t)));
6662 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->vendor_setup, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t), CH_UTF16));
6663 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
6665 if (r->color_profiles) {
6666 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
6667 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
6668 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
6669 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
6672 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
6673 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
6674 NDR_CHECK(ndr_pull_array_size(ndr, &r->inf_path));
6675 NDR_CHECK(ndr_pull_array_length(ndr, &r->inf_path));
6676 if (ndr_get_array_length(ndr, &r->inf_path) > ndr_get_array_size(ndr, &r->inf_path)) {
6677 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));
6679 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t)));
6680 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->inf_path, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t), CH_UTF16));
6681 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
6683 if (r->core_driver_dependencies) {
6684 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
6685 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
6686 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
6687 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
6690 return NDR_ERR_SUCCESS;
6693 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo8 *r)
6695 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo8");
6697 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
6698 ndr_print_ptr(ndr, "driver_name", r->driver_name);
6700 if (r->driver_name) {
6701 ndr_print_string(ndr, "driver_name", r->driver_name);
6704 ndr_print_ptr(ndr, "architecture", r->architecture);
6706 if (r->architecture) {
6707 ndr_print_string(ndr, "architecture", r->architecture);
6710 ndr_print_ptr(ndr, "driver_path", r->driver_path);
6712 if (r->driver_path) {
6713 ndr_print_string(ndr, "driver_path", r->driver_path);
6716 ndr_print_ptr(ndr, "data_file", r->data_file);
6719 ndr_print_string(ndr, "data_file", r->data_file);
6722 ndr_print_ptr(ndr, "config_file", r->config_file);
6724 if (r->config_file) {
6725 ndr_print_string(ndr, "config_file", r->config_file);
6728 ndr_print_ptr(ndr, "help_file", r->help_file);
6731 ndr_print_string(ndr, "help_file", r->help_file);
6734 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
6736 if (r->monitor_name) {
6737 ndr_print_string(ndr, "monitor_name", r->monitor_name);
6740 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
6742 if (r->default_datatype) {
6743 ndr_print_string(ndr, "default_datatype", r->default_datatype);
6746 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);
6747 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
6749 if (r->dependent_files) {
6750 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
6753 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);
6754 ndr_print_ptr(ndr, "previous_names", r->previous_names);
6756 if (r->previous_names) {
6757 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
6760 ndr_print_NTTIME(ndr, "driver_data", r->driver_data);
6761 ndr_print_hyper(ndr, "driver_version", r->driver_version);
6762 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
6764 if (r->manufacturer_name) {
6765 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
6768 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
6770 if (r->manufacturer_url) {
6771 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
6774 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
6776 if (r->hardware_id) {
6777 ndr_print_string(ndr, "hardware_id", r->hardware_id);
6780 ndr_print_ptr(ndr, "provider", r->provider);
6783 ndr_print_string(ndr, "provider", r->provider);
6786 ndr_print_ptr(ndr, "print_processor", r->print_processor);
6788 if (r->print_processor) {
6789 ndr_print_string(ndr, "print_processor", r->print_processor);
6792 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
6794 if (r->vendor_setup) {
6795 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
6798 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);
6799 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
6801 if (r->color_profiles) {
6802 ndr_print_spoolss_StringArray(ndr, "color_profiles", r->color_profiles);
6805 ndr_print_ptr(ndr, "inf_path", r->inf_path);
6808 ndr_print_string(ndr, "inf_path", r->inf_path);
6811 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
6812 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);
6813 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
6815 if (r->core_driver_dependencies) {
6816 ndr_print_spoolss_StringArray(ndr, "core_driver_dependencies", r->core_driver_dependencies);
6819 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
6820 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
6824 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddDriverInfo *r)
6826 if (ndr_flags & NDR_SCALARS) {
6827 int level = ndr_push_get_switch_value(ndr, r);
6828 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6831 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
6835 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
6839 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
6843 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
6847 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
6851 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
6855 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6858 if (ndr_flags & NDR_BUFFERS) {
6859 int level = ndr_push_get_switch_value(ndr, r);
6863 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6869 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6875 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
6881 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6887 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
6893 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
6898 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6901 return NDR_ERR_SUCCESS;
6904 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddDriverInfo *r)
6908 TALLOC_CTX *_mem_save_info1_0;
6909 TALLOC_CTX *_mem_save_info2_0;
6910 TALLOC_CTX *_mem_save_info3_0;
6911 TALLOC_CTX *_mem_save_info4_0;
6912 TALLOC_CTX *_mem_save_info6_0;
6913 TALLOC_CTX *_mem_save_info8_0;
6914 level = ndr_pull_get_switch_value(ndr, r);
6915 if (ndr_flags & NDR_SCALARS) {
6916 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6917 if (_level != level) {
6918 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
6922 uint32_t _ptr_info1;
6923 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
6925 NDR_PULL_ALLOC(ndr, r->info1);
6932 uint32_t _ptr_info2;
6933 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
6935 NDR_PULL_ALLOC(ndr, r->info2);
6942 uint32_t _ptr_info3;
6943 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
6945 NDR_PULL_ALLOC(ndr, r->info3);
6952 uint32_t _ptr_info4;
6953 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
6955 NDR_PULL_ALLOC(ndr, r->info4);
6962 uint32_t _ptr_info6;
6963 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
6965 NDR_PULL_ALLOC(ndr, r->info6);
6972 uint32_t _ptr_info8;
6973 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
6975 NDR_PULL_ALLOC(ndr, r->info8);
6982 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6985 if (ndr_flags & NDR_BUFFERS) {
6989 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6990 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
6991 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6992 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
6998 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
6999 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
7000 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7001 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
7007 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
7008 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
7009 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
7010 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
7016 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
7017 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
7018 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
7019 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
7025 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
7026 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
7027 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
7028 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
7034 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
7035 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
7036 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
7037 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
7042 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7045 return NDR_ERR_SUCCESS;
7048 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddDriverInfo *r)
7051 level = ndr_print_get_switch_value(ndr, r);
7052 ndr_print_union(ndr, name, level, "spoolss_AddDriverInfo");
7055 ndr_print_ptr(ndr, "info1", r->info1);
7058 ndr_print_spoolss_AddDriverInfo1(ndr, "info1", r->info1);
7064 ndr_print_ptr(ndr, "info2", r->info2);
7067 ndr_print_spoolss_AddDriverInfo2(ndr, "info2", r->info2);
7073 ndr_print_ptr(ndr, "info3", r->info3);
7076 ndr_print_spoolss_AddDriverInfo3(ndr, "info3", r->info3);
7082 ndr_print_ptr(ndr, "info4", r->info4);
7085 ndr_print_spoolss_AddDriverInfo4(ndr, "info4", r->info4);
7091 ndr_print_ptr(ndr, "info6", r->info6);
7094 ndr_print_spoolss_AddDriverInfo6(ndr, "info6", r->info6);
7100 ndr_print_ptr(ndr, "info8", r->info8);
7103 ndr_print_spoolss_AddDriverInfo8(ndr, "info8", r->info8);
7109 ndr_print_bad_level(ndr, name, level);
7113 static enum ndr_err_code ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfoCtr *r)
7115 if (ndr_flags & NDR_SCALARS) {
7116 NDR_CHECK(ndr_push_align(ndr, 4));
7117 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
7118 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
7119 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
7121 if (ndr_flags & NDR_BUFFERS) {
7122 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
7124 return NDR_ERR_SUCCESS;
7127 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfoCtr *r)
7129 if (ndr_flags & NDR_SCALARS) {
7130 NDR_CHECK(ndr_pull_align(ndr, 4));
7131 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
7132 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
7133 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
7135 if (ndr_flags & NDR_BUFFERS) {
7136 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
7138 return NDR_ERR_SUCCESS;
7141 _PUBLIC_ void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfoCtr *r)
7143 ndr_print_struct(ndr, name, "spoolss_AddDriverInfoCtr");
7145 ndr_print_uint32(ndr, "level", r->level);
7146 ndr_print_set_switch_value(ndr, &r->info, r->level);
7147 ndr_print_spoolss_AddDriverInfo(ndr, "info", &r->info);
7151 static enum ndr_err_code ndr_push_spoolss_DriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo1 *r)
7153 if (ndr_flags & NDR_SCALARS) {
7154 NDR_CHECK(ndr_push_align(ndr, 4));
7156 uint32_t _flags_save_string = ndr->flags;
7157 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7158 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
7159 ndr->flags = _flags_save_string;
7162 if (ndr_flags & NDR_BUFFERS) {
7164 uint32_t _flags_save_string = ndr->flags;
7165 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7166 if (r->driver_name) {
7167 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
7168 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
7170 ndr->flags = _flags_save_string;
7173 return NDR_ERR_SUCCESS;
7176 static enum ndr_err_code ndr_pull_spoolss_DriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo1 *r)
7178 uint32_t _ptr_driver_name;
7179 TALLOC_CTX *_mem_save_driver_name_0;
7180 if (ndr_flags & NDR_SCALARS) {
7181 NDR_CHECK(ndr_pull_align(ndr, 4));
7183 uint32_t _flags_save_string = ndr->flags;
7184 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7185 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7186 if (_ptr_driver_name) {
7187 NDR_PULL_ALLOC(ndr, r->driver_name);
7188 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
7190 r->driver_name = NULL;
7192 ndr->flags = _flags_save_string;
7195 if (ndr_flags & NDR_BUFFERS) {
7197 uint32_t _flags_save_string = ndr->flags;
7198 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7199 if (r->driver_name) {
7200 uint32_t _relative_save_offset;
7201 _relative_save_offset = ndr->offset;
7202 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
7203 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7204 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7205 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
7206 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7207 ndr->offset = _relative_save_offset;
7209 ndr->flags = _flags_save_string;
7212 return NDR_ERR_SUCCESS;
7215 _PUBLIC_ void ndr_print_spoolss_DriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo1 *r)
7217 ndr_print_struct(ndr, name, "spoolss_DriverInfo1");
7219 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7221 if (r->driver_name) {
7222 ndr_print_string(ndr, "driver_name", r->driver_name);
7228 static enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo2 *r)
7230 if (ndr_flags & NDR_SCALARS) {
7231 NDR_CHECK(ndr_push_align(ndr, 4));
7232 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7234 uint32_t _flags_save_string = ndr->flags;
7235 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7236 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
7237 ndr->flags = _flags_save_string;
7240 uint32_t _flags_save_string = ndr->flags;
7241 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7242 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
7243 ndr->flags = _flags_save_string;
7246 uint32_t _flags_save_string = ndr->flags;
7247 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7248 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
7249 ndr->flags = _flags_save_string;
7252 uint32_t _flags_save_string = ndr->flags;
7253 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7254 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
7255 ndr->flags = _flags_save_string;
7258 uint32_t _flags_save_string = ndr->flags;
7259 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7260 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
7261 ndr->flags = _flags_save_string;
7264 if (ndr_flags & NDR_BUFFERS) {
7266 uint32_t _flags_save_string = ndr->flags;
7267 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7268 if (r->driver_name) {
7269 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
7270 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
7272 ndr->flags = _flags_save_string;
7275 uint32_t _flags_save_string = ndr->flags;
7276 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7277 if (r->architecture) {
7278 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
7279 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
7281 ndr->flags = _flags_save_string;
7284 uint32_t _flags_save_string = ndr->flags;
7285 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7286 if (r->driver_path) {
7287 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
7288 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
7290 ndr->flags = _flags_save_string;
7293 uint32_t _flags_save_string = ndr->flags;
7294 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7296 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
7297 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
7299 ndr->flags = _flags_save_string;
7302 uint32_t _flags_save_string = ndr->flags;
7303 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7304 if (r->config_file) {
7305 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
7306 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
7308 ndr->flags = _flags_save_string;
7311 return NDR_ERR_SUCCESS;
7314 static enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo2 *r)
7316 uint32_t _ptr_driver_name;
7317 TALLOC_CTX *_mem_save_driver_name_0;
7318 uint32_t _ptr_architecture;
7319 TALLOC_CTX *_mem_save_architecture_0;
7320 uint32_t _ptr_driver_path;
7321 TALLOC_CTX *_mem_save_driver_path_0;
7322 uint32_t _ptr_data_file;
7323 TALLOC_CTX *_mem_save_data_file_0;
7324 uint32_t _ptr_config_file;
7325 TALLOC_CTX *_mem_save_config_file_0;
7326 if (ndr_flags & NDR_SCALARS) {
7327 NDR_CHECK(ndr_pull_align(ndr, 4));
7328 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
7330 uint32_t _flags_save_string = ndr->flags;
7331 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7332 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7333 if (_ptr_driver_name) {
7334 NDR_PULL_ALLOC(ndr, r->driver_name);
7335 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
7337 r->driver_name = NULL;
7339 ndr->flags = _flags_save_string;
7342 uint32_t _flags_save_string = ndr->flags;
7343 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7344 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
7345 if (_ptr_architecture) {
7346 NDR_PULL_ALLOC(ndr, r->architecture);
7347 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
7349 r->architecture = NULL;
7351 ndr->flags = _flags_save_string;
7354 uint32_t _flags_save_string = ndr->flags;
7355 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7356 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
7357 if (_ptr_driver_path) {
7358 NDR_PULL_ALLOC(ndr, r->driver_path);
7359 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
7361 r->driver_path = NULL;
7363 ndr->flags = _flags_save_string;
7366 uint32_t _flags_save_string = ndr->flags;
7367 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7368 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
7369 if (_ptr_data_file) {
7370 NDR_PULL_ALLOC(ndr, r->data_file);
7371 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
7373 r->data_file = NULL;
7375 ndr->flags = _flags_save_string;
7378 uint32_t _flags_save_string = ndr->flags;
7379 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7380 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
7381 if (_ptr_config_file) {
7382 NDR_PULL_ALLOC(ndr, r->config_file);
7383 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
7385 r->config_file = NULL;
7387 ndr->flags = _flags_save_string;
7390 if (ndr_flags & NDR_BUFFERS) {
7392 uint32_t _flags_save_string = ndr->flags;
7393 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7394 if (r->driver_name) {
7395 uint32_t _relative_save_offset;
7396 _relative_save_offset = ndr->offset;
7397 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
7398 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7399 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7400 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
7401 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7402 ndr->offset = _relative_save_offset;
7404 ndr->flags = _flags_save_string;
7407 uint32_t _flags_save_string = ndr->flags;
7408 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7409 if (r->architecture) {
7410 uint32_t _relative_save_offset;
7411 _relative_save_offset = ndr->offset;
7412 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
7413 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
7414 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
7415 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
7416 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
7417 ndr->offset = _relative_save_offset;
7419 ndr->flags = _flags_save_string;
7422 uint32_t _flags_save_string = ndr->flags;
7423 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7424 if (r->driver_path) {
7425 uint32_t _relative_save_offset;
7426 _relative_save_offset = ndr->offset;
7427 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
7428 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
7429 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
7430 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
7431 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
7432 ndr->offset = _relative_save_offset;
7434 ndr->flags = _flags_save_string;
7437 uint32_t _flags_save_string = ndr->flags;
7438 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7440 uint32_t _relative_save_offset;
7441 _relative_save_offset = ndr->offset;
7442 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
7443 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7444 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
7445 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
7446 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
7447 ndr->offset = _relative_save_offset;
7449 ndr->flags = _flags_save_string;
7452 uint32_t _flags_save_string = ndr->flags;
7453 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7454 if (r->config_file) {
7455 uint32_t _relative_save_offset;
7456 _relative_save_offset = ndr->offset;
7457 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
7458 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7459 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
7460 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
7461 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
7462 ndr->offset = _relative_save_offset;
7464 ndr->flags = _flags_save_string;
7467 return NDR_ERR_SUCCESS;
7470 _PUBLIC_ void ndr_print_spoolss_DriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo2 *r)
7472 ndr_print_struct(ndr, name, "spoolss_DriverInfo2");
7474 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
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);
7481 ndr_print_ptr(ndr, "architecture", r->architecture);
7483 if (r->architecture) {
7484 ndr_print_string(ndr, "architecture", r->architecture);
7487 ndr_print_ptr(ndr, "driver_path", r->driver_path);
7489 if (r->driver_path) {
7490 ndr_print_string(ndr, "driver_path", r->driver_path);
7493 ndr_print_ptr(ndr, "data_file", r->data_file);
7496 ndr_print_string(ndr, "data_file", r->data_file);
7499 ndr_print_ptr(ndr, "config_file", r->config_file);
7501 if (r->config_file) {
7502 ndr_print_string(ndr, "config_file", r->config_file);
7508 static enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo3 *r)
7510 if (ndr_flags & NDR_SCALARS) {
7511 NDR_CHECK(ndr_push_align(ndr, 4));
7512 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7514 uint32_t _flags_save_string = ndr->flags;
7515 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7516 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
7517 ndr->flags = _flags_save_string;
7520 uint32_t _flags_save_string = ndr->flags;
7521 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7522 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
7523 ndr->flags = _flags_save_string;
7526 uint32_t _flags_save_string = ndr->flags;
7527 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7528 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
7529 ndr->flags = _flags_save_string;
7532 uint32_t _flags_save_string = ndr->flags;
7533 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7534 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
7535 ndr->flags = _flags_save_string;
7538 uint32_t _flags_save_string = ndr->flags;
7539 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7540 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
7541 ndr->flags = _flags_save_string;
7544 uint32_t _flags_save_string = ndr->flags;
7545 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7546 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
7547 ndr->flags = _flags_save_string;
7550 uint32_t _flags_save_string_array = ndr->flags;
7551 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7552 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
7553 ndr->flags = _flags_save_string_array;
7556 uint32_t _flags_save_string = ndr->flags;
7557 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7558 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
7559 ndr->flags = _flags_save_string;
7562 uint32_t _flags_save_string = ndr->flags;
7563 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7564 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
7565 ndr->flags = _flags_save_string;
7568 if (ndr_flags & NDR_BUFFERS) {
7570 uint32_t _flags_save_string = ndr->flags;
7571 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7572 if (r->driver_name) {
7573 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
7574 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
7576 ndr->flags = _flags_save_string;
7579 uint32_t _flags_save_string = ndr->flags;
7580 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7581 if (r->architecture) {
7582 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
7583 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
7585 ndr->flags = _flags_save_string;
7588 uint32_t _flags_save_string = ndr->flags;
7589 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7590 if (r->driver_path) {
7591 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
7592 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
7594 ndr->flags = _flags_save_string;
7597 uint32_t _flags_save_string = ndr->flags;
7598 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7600 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
7601 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
7603 ndr->flags = _flags_save_string;
7606 uint32_t _flags_save_string = ndr->flags;
7607 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7608 if (r->config_file) {
7609 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
7610 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
7612 ndr->flags = _flags_save_string;
7615 uint32_t _flags_save_string = ndr->flags;
7616 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7618 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
7619 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
7621 ndr->flags = _flags_save_string;
7624 uint32_t _flags_save_string_array = ndr->flags;
7625 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7626 if (r->dependent_files) {
7627 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
7628 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
7630 ndr->flags = _flags_save_string_array;
7633 uint32_t _flags_save_string = ndr->flags;
7634 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7635 if (r->monitor_name) {
7636 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
7637 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
7639 ndr->flags = _flags_save_string;
7642 uint32_t _flags_save_string = ndr->flags;
7643 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7644 if (r->default_datatype) {
7645 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
7646 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
7648 ndr->flags = _flags_save_string;
7651 return NDR_ERR_SUCCESS;
7654 static enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo3 *r)
7656 uint32_t _ptr_driver_name;
7657 TALLOC_CTX *_mem_save_driver_name_0;
7658 uint32_t _ptr_architecture;
7659 TALLOC_CTX *_mem_save_architecture_0;
7660 uint32_t _ptr_driver_path;
7661 TALLOC_CTX *_mem_save_driver_path_0;
7662 uint32_t _ptr_data_file;
7663 TALLOC_CTX *_mem_save_data_file_0;
7664 uint32_t _ptr_config_file;
7665 TALLOC_CTX *_mem_save_config_file_0;
7666 uint32_t _ptr_help_file;
7667 TALLOC_CTX *_mem_save_help_file_0;
7668 uint32_t _ptr_dependent_files;
7669 TALLOC_CTX *_mem_save_dependent_files_0;
7670 uint32_t _ptr_monitor_name;
7671 TALLOC_CTX *_mem_save_monitor_name_0;
7672 uint32_t _ptr_default_datatype;
7673 TALLOC_CTX *_mem_save_default_datatype_0;
7674 if (ndr_flags & NDR_SCALARS) {
7675 NDR_CHECK(ndr_pull_align(ndr, 4));
7676 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
7678 uint32_t _flags_save_string = ndr->flags;
7679 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7680 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7681 if (_ptr_driver_name) {
7682 NDR_PULL_ALLOC(ndr, r->driver_name);
7683 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
7685 r->driver_name = NULL;
7687 ndr->flags = _flags_save_string;
7690 uint32_t _flags_save_string = ndr->flags;
7691 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7692 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
7693 if (_ptr_architecture) {
7694 NDR_PULL_ALLOC(ndr, r->architecture);
7695 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
7697 r->architecture = NULL;
7699 ndr->flags = _flags_save_string;
7702 uint32_t _flags_save_string = ndr->flags;
7703 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7704 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
7705 if (_ptr_driver_path) {
7706 NDR_PULL_ALLOC(ndr, r->driver_path);
7707 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
7709 r->driver_path = NULL;
7711 ndr->flags = _flags_save_string;
7714 uint32_t _flags_save_string = ndr->flags;
7715 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7716 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
7717 if (_ptr_data_file) {
7718 NDR_PULL_ALLOC(ndr, r->data_file);
7719 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
7721 r->data_file = NULL;
7723 ndr->flags = _flags_save_string;
7726 uint32_t _flags_save_string = ndr->flags;
7727 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7728 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
7729 if (_ptr_config_file) {
7730 NDR_PULL_ALLOC(ndr, r->config_file);
7731 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
7733 r->config_file = NULL;
7735 ndr->flags = _flags_save_string;
7738 uint32_t _flags_save_string = ndr->flags;
7739 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7740 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
7741 if (_ptr_help_file) {
7742 NDR_PULL_ALLOC(ndr, r->help_file);
7743 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
7745 r->help_file = NULL;
7747 ndr->flags = _flags_save_string;
7750 uint32_t _flags_save_string_array = ndr->flags;
7751 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7752 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
7753 if (_ptr_dependent_files) {
7754 NDR_PULL_ALLOC(ndr, r->dependent_files);
7755 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
7757 r->dependent_files = NULL;
7759 ndr->flags = _flags_save_string_array;
7762 uint32_t _flags_save_string = ndr->flags;
7763 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7764 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
7765 if (_ptr_monitor_name) {
7766 NDR_PULL_ALLOC(ndr, r->monitor_name);
7767 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
7769 r->monitor_name = NULL;
7771 ndr->flags = _flags_save_string;
7774 uint32_t _flags_save_string = ndr->flags;
7775 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7776 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
7777 if (_ptr_default_datatype) {
7778 NDR_PULL_ALLOC(ndr, r->default_datatype);
7779 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
7781 r->default_datatype = NULL;
7783 ndr->flags = _flags_save_string;
7786 if (ndr_flags & NDR_BUFFERS) {
7788 uint32_t _flags_save_string = ndr->flags;
7789 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7790 if (r->driver_name) {
7791 uint32_t _relative_save_offset;
7792 _relative_save_offset = ndr->offset;
7793 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
7794 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7795 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7796 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
7797 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7798 ndr->offset = _relative_save_offset;
7800 ndr->flags = _flags_save_string;
7803 uint32_t _flags_save_string = ndr->flags;
7804 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7805 if (r->architecture) {
7806 uint32_t _relative_save_offset;
7807 _relative_save_offset = ndr->offset;
7808 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
7809 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
7810 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
7811 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
7812 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
7813 ndr->offset = _relative_save_offset;
7815 ndr->flags = _flags_save_string;
7818 uint32_t _flags_save_string = ndr->flags;
7819 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7820 if (r->driver_path) {
7821 uint32_t _relative_save_offset;
7822 _relative_save_offset = ndr->offset;
7823 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
7824 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
7825 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
7826 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
7827 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
7828 ndr->offset = _relative_save_offset;
7830 ndr->flags = _flags_save_string;
7833 uint32_t _flags_save_string = ndr->flags;
7834 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7836 uint32_t _relative_save_offset;
7837 _relative_save_offset = ndr->offset;
7838 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
7839 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7840 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
7841 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
7842 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
7843 ndr->offset = _relative_save_offset;
7845 ndr->flags = _flags_save_string;
7848 uint32_t _flags_save_string = ndr->flags;
7849 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7850 if (r->config_file) {
7851 uint32_t _relative_save_offset;
7852 _relative_save_offset = ndr->offset;
7853 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
7854 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7855 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
7856 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
7857 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
7858 ndr->offset = _relative_save_offset;
7860 ndr->flags = _flags_save_string;
7863 uint32_t _flags_save_string = ndr->flags;
7864 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7866 uint32_t _relative_save_offset;
7867 _relative_save_offset = ndr->offset;
7868 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
7869 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7870 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
7871 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
7872 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
7873 ndr->offset = _relative_save_offset;
7875 ndr->flags = _flags_save_string;
7878 uint32_t _flags_save_string_array = ndr->flags;
7879 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7880 if (r->dependent_files) {
7881 uint32_t _relative_save_offset;
7882 _relative_save_offset = ndr->offset;
7883 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
7884 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
7885 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
7886 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
7887 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
7888 ndr->offset = _relative_save_offset;
7890 ndr->flags = _flags_save_string_array;
7893 uint32_t _flags_save_string = ndr->flags;
7894 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7895 if (r->monitor_name) {
7896 uint32_t _relative_save_offset;
7897 _relative_save_offset = ndr->offset;
7898 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
7899 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7900 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
7901 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
7902 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
7903 ndr->offset = _relative_save_offset;
7905 ndr->flags = _flags_save_string;
7908 uint32_t _flags_save_string = ndr->flags;
7909 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7910 if (r->default_datatype) {
7911 uint32_t _relative_save_offset;
7912 _relative_save_offset = ndr->offset;
7913 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
7914 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
7915 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
7916 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
7917 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
7918 ndr->offset = _relative_save_offset;
7920 ndr->flags = _flags_save_string;
7923 return NDR_ERR_SUCCESS;
7926 _PUBLIC_ void ndr_print_spoolss_DriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo3 *r)
7928 ndr_print_struct(ndr, name, "spoolss_DriverInfo3");
7930 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
7931 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7933 if (r->driver_name) {
7934 ndr_print_string(ndr, "driver_name", r->driver_name);
7937 ndr_print_ptr(ndr, "architecture", r->architecture);
7939 if (r->architecture) {
7940 ndr_print_string(ndr, "architecture", r->architecture);
7943 ndr_print_ptr(ndr, "driver_path", r->driver_path);
7945 if (r->driver_path) {
7946 ndr_print_string(ndr, "driver_path", r->driver_path);
7949 ndr_print_ptr(ndr, "data_file", r->data_file);
7952 ndr_print_string(ndr, "data_file", r->data_file);
7955 ndr_print_ptr(ndr, "config_file", r->config_file);
7957 if (r->config_file) {
7958 ndr_print_string(ndr, "config_file", r->config_file);
7961 ndr_print_ptr(ndr, "help_file", r->help_file);
7964 ndr_print_string(ndr, "help_file", r->help_file);
7967 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
7969 if (r->dependent_files) {
7970 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
7973 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
7975 if (r->monitor_name) {
7976 ndr_print_string(ndr, "monitor_name", r->monitor_name);
7979 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
7981 if (r->default_datatype) {
7982 ndr_print_string(ndr, "default_datatype", r->default_datatype);
7988 static enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo4 *r)
7990 if (ndr_flags & NDR_SCALARS) {
7991 NDR_CHECK(ndr_push_align(ndr, 4));
7992 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7994 uint32_t _flags_save_string = ndr->flags;
7995 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7996 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
7997 ndr->flags = _flags_save_string;
8000 uint32_t _flags_save_string = ndr->flags;
8001 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8002 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
8003 ndr->flags = _flags_save_string;
8006 uint32_t _flags_save_string = ndr->flags;
8007 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8008 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
8009 ndr->flags = _flags_save_string;
8012 uint32_t _flags_save_string = ndr->flags;
8013 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8014 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
8015 ndr->flags = _flags_save_string;
8018 uint32_t _flags_save_string = ndr->flags;
8019 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8020 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
8021 ndr->flags = _flags_save_string;
8024 uint32_t _flags_save_string = ndr->flags;
8025 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8026 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
8027 ndr->flags = _flags_save_string;
8030 uint32_t _flags_save_string_array = ndr->flags;
8031 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8032 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
8033 ndr->flags = _flags_save_string_array;
8036 uint32_t _flags_save_string = ndr->flags;
8037 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8038 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
8039 ndr->flags = _flags_save_string;
8042 uint32_t _flags_save_string = ndr->flags;
8043 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8044 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
8045 ndr->flags = _flags_save_string;
8048 uint32_t _flags_save_string_array = ndr->flags;
8049 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8050 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
8051 ndr->flags = _flags_save_string_array;
8054 if (ndr_flags & NDR_BUFFERS) {
8056 uint32_t _flags_save_string = ndr->flags;
8057 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8058 if (r->driver_name) {
8059 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
8060 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
8062 ndr->flags = _flags_save_string;
8065 uint32_t _flags_save_string = ndr->flags;
8066 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8067 if (r->architecture) {
8068 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
8069 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
8071 ndr->flags = _flags_save_string;
8074 uint32_t _flags_save_string = ndr->flags;
8075 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8076 if (r->driver_path) {
8077 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
8078 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
8080 ndr->flags = _flags_save_string;
8083 uint32_t _flags_save_string = ndr->flags;
8084 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8086 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
8087 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
8089 ndr->flags = _flags_save_string;
8092 uint32_t _flags_save_string = ndr->flags;
8093 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8094 if (r->config_file) {
8095 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
8096 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
8098 ndr->flags = _flags_save_string;
8101 uint32_t _flags_save_string = ndr->flags;
8102 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8104 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
8105 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
8107 ndr->flags = _flags_save_string;
8110 uint32_t _flags_save_string_array = ndr->flags;
8111 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8112 if (r->dependent_files) {
8113 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
8114 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
8116 ndr->flags = _flags_save_string_array;
8119 uint32_t _flags_save_string = ndr->flags;
8120 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8121 if (r->monitor_name) {
8122 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
8123 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
8125 ndr->flags = _flags_save_string;
8128 uint32_t _flags_save_string = ndr->flags;
8129 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8130 if (r->default_datatype) {
8131 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
8132 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
8134 ndr->flags = _flags_save_string;
8137 uint32_t _flags_save_string_array = ndr->flags;
8138 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8139 if (r->previous_names) {
8140 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
8141 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
8143 ndr->flags = _flags_save_string_array;
8146 return NDR_ERR_SUCCESS;
8149 static enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo4 *r)
8151 uint32_t _ptr_driver_name;
8152 TALLOC_CTX *_mem_save_driver_name_0;
8153 uint32_t _ptr_architecture;
8154 TALLOC_CTX *_mem_save_architecture_0;
8155 uint32_t _ptr_driver_path;
8156 TALLOC_CTX *_mem_save_driver_path_0;
8157 uint32_t _ptr_data_file;
8158 TALLOC_CTX *_mem_save_data_file_0;
8159 uint32_t _ptr_config_file;
8160 TALLOC_CTX *_mem_save_config_file_0;
8161 uint32_t _ptr_help_file;
8162 TALLOC_CTX *_mem_save_help_file_0;
8163 uint32_t _ptr_dependent_files;
8164 TALLOC_CTX *_mem_save_dependent_files_0;
8165 uint32_t _ptr_monitor_name;
8166 TALLOC_CTX *_mem_save_monitor_name_0;
8167 uint32_t _ptr_default_datatype;
8168 TALLOC_CTX *_mem_save_default_datatype_0;
8169 uint32_t _ptr_previous_names;
8170 TALLOC_CTX *_mem_save_previous_names_0;
8171 if (ndr_flags & NDR_SCALARS) {
8172 NDR_CHECK(ndr_pull_align(ndr, 4));
8173 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8175 uint32_t _flags_save_string = ndr->flags;
8176 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8177 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8178 if (_ptr_driver_name) {
8179 NDR_PULL_ALLOC(ndr, r->driver_name);
8180 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
8182 r->driver_name = NULL;
8184 ndr->flags = _flags_save_string;
8187 uint32_t _flags_save_string = ndr->flags;
8188 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8189 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8190 if (_ptr_architecture) {
8191 NDR_PULL_ALLOC(ndr, r->architecture);
8192 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
8194 r->architecture = NULL;
8196 ndr->flags = _flags_save_string;
8199 uint32_t _flags_save_string = ndr->flags;
8200 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8201 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8202 if (_ptr_driver_path) {
8203 NDR_PULL_ALLOC(ndr, r->driver_path);
8204 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
8206 r->driver_path = NULL;
8208 ndr->flags = _flags_save_string;
8211 uint32_t _flags_save_string = ndr->flags;
8212 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8213 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8214 if (_ptr_data_file) {
8215 NDR_PULL_ALLOC(ndr, r->data_file);
8216 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
8218 r->data_file = NULL;
8220 ndr->flags = _flags_save_string;
8223 uint32_t _flags_save_string = ndr->flags;
8224 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8225 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8226 if (_ptr_config_file) {
8227 NDR_PULL_ALLOC(ndr, r->config_file);
8228 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
8230 r->config_file = NULL;
8232 ndr->flags = _flags_save_string;
8235 uint32_t _flags_save_string = ndr->flags;
8236 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8237 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8238 if (_ptr_help_file) {
8239 NDR_PULL_ALLOC(ndr, r->help_file);
8240 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
8242 r->help_file = NULL;
8244 ndr->flags = _flags_save_string;
8247 uint32_t _flags_save_string_array = ndr->flags;
8248 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8249 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8250 if (_ptr_dependent_files) {
8251 NDR_PULL_ALLOC(ndr, r->dependent_files);
8252 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
8254 r->dependent_files = NULL;
8256 ndr->flags = _flags_save_string_array;
8259 uint32_t _flags_save_string = ndr->flags;
8260 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8261 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8262 if (_ptr_monitor_name) {
8263 NDR_PULL_ALLOC(ndr, r->monitor_name);
8264 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
8266 r->monitor_name = NULL;
8268 ndr->flags = _flags_save_string;
8271 uint32_t _flags_save_string = ndr->flags;
8272 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8273 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8274 if (_ptr_default_datatype) {
8275 NDR_PULL_ALLOC(ndr, r->default_datatype);
8276 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
8278 r->default_datatype = NULL;
8280 ndr->flags = _flags_save_string;
8283 uint32_t _flags_save_string_array = ndr->flags;
8284 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8285 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
8286 if (_ptr_previous_names) {
8287 NDR_PULL_ALLOC(ndr, r->previous_names);
8288 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
8290 r->previous_names = NULL;
8292 ndr->flags = _flags_save_string_array;
8295 if (ndr_flags & NDR_BUFFERS) {
8297 uint32_t _flags_save_string = ndr->flags;
8298 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8299 if (r->driver_name) {
8300 uint32_t _relative_save_offset;
8301 _relative_save_offset = ndr->offset;
8302 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
8303 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8304 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8305 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
8306 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8307 ndr->offset = _relative_save_offset;
8309 ndr->flags = _flags_save_string;
8312 uint32_t _flags_save_string = ndr->flags;
8313 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8314 if (r->architecture) {
8315 uint32_t _relative_save_offset;
8316 _relative_save_offset = ndr->offset;
8317 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
8318 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8319 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8320 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
8321 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8322 ndr->offset = _relative_save_offset;
8324 ndr->flags = _flags_save_string;
8327 uint32_t _flags_save_string = ndr->flags;
8328 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8329 if (r->driver_path) {
8330 uint32_t _relative_save_offset;
8331 _relative_save_offset = ndr->offset;
8332 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
8333 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8334 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8335 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
8336 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8337 ndr->offset = _relative_save_offset;
8339 ndr->flags = _flags_save_string;
8342 uint32_t _flags_save_string = ndr->flags;
8343 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8345 uint32_t _relative_save_offset;
8346 _relative_save_offset = ndr->offset;
8347 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
8348 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8349 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8350 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
8351 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8352 ndr->offset = _relative_save_offset;
8354 ndr->flags = _flags_save_string;
8357 uint32_t _flags_save_string = ndr->flags;
8358 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8359 if (r->config_file) {
8360 uint32_t _relative_save_offset;
8361 _relative_save_offset = ndr->offset;
8362 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
8363 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8364 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8365 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
8366 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8367 ndr->offset = _relative_save_offset;
8369 ndr->flags = _flags_save_string;
8372 uint32_t _flags_save_string = ndr->flags;
8373 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8375 uint32_t _relative_save_offset;
8376 _relative_save_offset = ndr->offset;
8377 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
8378 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8379 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8380 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
8381 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8382 ndr->offset = _relative_save_offset;
8384 ndr->flags = _flags_save_string;
8387 uint32_t _flags_save_string_array = ndr->flags;
8388 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8389 if (r->dependent_files) {
8390 uint32_t _relative_save_offset;
8391 _relative_save_offset = ndr->offset;
8392 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
8393 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8394 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8395 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
8396 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8397 ndr->offset = _relative_save_offset;
8399 ndr->flags = _flags_save_string_array;
8402 uint32_t _flags_save_string = ndr->flags;
8403 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8404 if (r->monitor_name) {
8405 uint32_t _relative_save_offset;
8406 _relative_save_offset = ndr->offset;
8407 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
8408 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8409 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8410 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
8411 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8412 ndr->offset = _relative_save_offset;
8414 ndr->flags = _flags_save_string;
8417 uint32_t _flags_save_string = ndr->flags;
8418 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8419 if (r->default_datatype) {
8420 uint32_t _relative_save_offset;
8421 _relative_save_offset = ndr->offset;
8422 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
8423 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8424 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8425 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
8426 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8427 ndr->offset = _relative_save_offset;
8429 ndr->flags = _flags_save_string;
8432 uint32_t _flags_save_string_array = ndr->flags;
8433 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8434 if (r->previous_names) {
8435 uint32_t _relative_save_offset;
8436 _relative_save_offset = ndr->offset;
8437 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
8438 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
8439 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
8440 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
8441 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
8442 ndr->offset = _relative_save_offset;
8444 ndr->flags = _flags_save_string_array;
8447 return NDR_ERR_SUCCESS;
8450 _PUBLIC_ void ndr_print_spoolss_DriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo4 *r)
8452 ndr_print_struct(ndr, name, "spoolss_DriverInfo4");
8454 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8455 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8457 if (r->driver_name) {
8458 ndr_print_string(ndr, "driver_name", r->driver_name);
8461 ndr_print_ptr(ndr, "architecture", r->architecture);
8463 if (r->architecture) {
8464 ndr_print_string(ndr, "architecture", r->architecture);
8467 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8469 if (r->driver_path) {
8470 ndr_print_string(ndr, "driver_path", r->driver_path);
8473 ndr_print_ptr(ndr, "data_file", r->data_file);
8476 ndr_print_string(ndr, "data_file", r->data_file);
8479 ndr_print_ptr(ndr, "config_file", r->config_file);
8481 if (r->config_file) {
8482 ndr_print_string(ndr, "config_file", r->config_file);
8485 ndr_print_ptr(ndr, "help_file", r->help_file);
8488 ndr_print_string(ndr, "help_file", r->help_file);
8491 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8493 if (r->dependent_files) {
8494 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
8497 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8499 if (r->monitor_name) {
8500 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8503 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8505 if (r->default_datatype) {
8506 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8509 ndr_print_ptr(ndr, "previous_names", r->previous_names);
8511 if (r->previous_names) {
8512 ndr_print_string_array(ndr, "previous_names", r->previous_names);
8518 static enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo5 *r)
8520 if (ndr_flags & NDR_SCALARS) {
8521 NDR_CHECK(ndr_push_align(ndr, 4));
8522 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8524 uint32_t _flags_save_string = ndr->flags;
8525 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8526 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
8527 ndr->flags = _flags_save_string;
8530 uint32_t _flags_save_string = ndr->flags;
8531 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8532 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
8533 ndr->flags = _flags_save_string;
8536 uint32_t _flags_save_string = ndr->flags;
8537 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8538 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
8539 ndr->flags = _flags_save_string;
8542 uint32_t _flags_save_string = ndr->flags;
8543 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8544 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
8545 ndr->flags = _flags_save_string;
8548 uint32_t _flags_save_string = ndr->flags;
8549 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8550 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
8551 ndr->flags = _flags_save_string;
8553 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_attributes));
8554 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->config_version));
8555 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_version));
8557 if (ndr_flags & NDR_BUFFERS) {
8559 uint32_t _flags_save_string = ndr->flags;
8560 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8561 if (r->driver_name) {
8562 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
8563 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
8565 ndr->flags = _flags_save_string;
8568 uint32_t _flags_save_string = ndr->flags;
8569 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8570 if (r->architecture) {
8571 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
8572 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
8574 ndr->flags = _flags_save_string;
8577 uint32_t _flags_save_string = ndr->flags;
8578 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8579 if (r->driver_path) {
8580 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
8581 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
8583 ndr->flags = _flags_save_string;
8586 uint32_t _flags_save_string = ndr->flags;
8587 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8589 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
8590 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
8592 ndr->flags = _flags_save_string;
8595 uint32_t _flags_save_string = ndr->flags;
8596 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8597 if (r->config_file) {
8598 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
8599 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
8601 ndr->flags = _flags_save_string;
8604 return NDR_ERR_SUCCESS;
8607 static enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo5 *r)
8609 uint32_t _ptr_driver_name;
8610 TALLOC_CTX *_mem_save_driver_name_0;
8611 uint32_t _ptr_architecture;
8612 TALLOC_CTX *_mem_save_architecture_0;
8613 uint32_t _ptr_driver_path;
8614 TALLOC_CTX *_mem_save_driver_path_0;
8615 uint32_t _ptr_data_file;
8616 TALLOC_CTX *_mem_save_data_file_0;
8617 uint32_t _ptr_config_file;
8618 TALLOC_CTX *_mem_save_config_file_0;
8619 if (ndr_flags & NDR_SCALARS) {
8620 NDR_CHECK(ndr_pull_align(ndr, 4));
8621 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8623 uint32_t _flags_save_string = ndr->flags;
8624 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8625 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8626 if (_ptr_driver_name) {
8627 NDR_PULL_ALLOC(ndr, r->driver_name);
8628 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
8630 r->driver_name = NULL;
8632 ndr->flags = _flags_save_string;
8635 uint32_t _flags_save_string = ndr->flags;
8636 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8637 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8638 if (_ptr_architecture) {
8639 NDR_PULL_ALLOC(ndr, r->architecture);
8640 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
8642 r->architecture = NULL;
8644 ndr->flags = _flags_save_string;
8647 uint32_t _flags_save_string = ndr->flags;
8648 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8649 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8650 if (_ptr_driver_path) {
8651 NDR_PULL_ALLOC(ndr, r->driver_path);
8652 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
8654 r->driver_path = NULL;
8656 ndr->flags = _flags_save_string;
8659 uint32_t _flags_save_string = ndr->flags;
8660 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8661 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8662 if (_ptr_data_file) {
8663 NDR_PULL_ALLOC(ndr, r->data_file);
8664 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
8666 r->data_file = NULL;
8668 ndr->flags = _flags_save_string;
8671 uint32_t _flags_save_string = ndr->flags;
8672 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8673 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8674 if (_ptr_config_file) {
8675 NDR_PULL_ALLOC(ndr, r->config_file);
8676 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
8678 r->config_file = NULL;
8680 ndr->flags = _flags_save_string;
8682 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_attributes));
8683 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->config_version));
8684 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_version));
8686 if (ndr_flags & NDR_BUFFERS) {
8688 uint32_t _flags_save_string = ndr->flags;
8689 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8690 if (r->driver_name) {
8691 uint32_t _relative_save_offset;
8692 _relative_save_offset = ndr->offset;
8693 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
8694 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8695 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8696 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
8697 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8698 ndr->offset = _relative_save_offset;
8700 ndr->flags = _flags_save_string;
8703 uint32_t _flags_save_string = ndr->flags;
8704 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8705 if (r->architecture) {
8706 uint32_t _relative_save_offset;
8707 _relative_save_offset = ndr->offset;
8708 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
8709 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8710 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8711 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
8712 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8713 ndr->offset = _relative_save_offset;
8715 ndr->flags = _flags_save_string;
8718 uint32_t _flags_save_string = ndr->flags;
8719 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8720 if (r->driver_path) {
8721 uint32_t _relative_save_offset;
8722 _relative_save_offset = ndr->offset;
8723 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
8724 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8725 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8726 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
8727 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8728 ndr->offset = _relative_save_offset;
8730 ndr->flags = _flags_save_string;
8733 uint32_t _flags_save_string = ndr->flags;
8734 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8736 uint32_t _relative_save_offset;
8737 _relative_save_offset = ndr->offset;
8738 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
8739 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8740 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8741 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
8742 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8743 ndr->offset = _relative_save_offset;
8745 ndr->flags = _flags_save_string;
8748 uint32_t _flags_save_string = ndr->flags;
8749 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8750 if (r->config_file) {
8751 uint32_t _relative_save_offset;
8752 _relative_save_offset = ndr->offset;
8753 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
8754 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8755 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8756 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
8757 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8758 ndr->offset = _relative_save_offset;
8760 ndr->flags = _flags_save_string;
8763 return NDR_ERR_SUCCESS;
8766 _PUBLIC_ void ndr_print_spoolss_DriverInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo5 *r)
8768 ndr_print_struct(ndr, name, "spoolss_DriverInfo5");
8770 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8771 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8773 if (r->driver_name) {
8774 ndr_print_string(ndr, "driver_name", r->driver_name);
8777 ndr_print_ptr(ndr, "architecture", r->architecture);
8779 if (r->architecture) {
8780 ndr_print_string(ndr, "architecture", r->architecture);
8783 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8785 if (r->driver_path) {
8786 ndr_print_string(ndr, "driver_path", r->driver_path);
8789 ndr_print_ptr(ndr, "data_file", r->data_file);
8792 ndr_print_string(ndr, "data_file", r->data_file);
8795 ndr_print_ptr(ndr, "config_file", r->config_file);
8797 if (r->config_file) {
8798 ndr_print_string(ndr, "config_file", r->config_file);
8801 ndr_print_uint32(ndr, "driver_attributes", r->driver_attributes);
8802 ndr_print_uint32(ndr, "config_version", r->config_version);
8803 ndr_print_uint32(ndr, "driver_version", r->driver_version);
8807 static enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo6 *r)
8809 if (ndr_flags & NDR_SCALARS) {
8810 NDR_CHECK(ndr_push_align(ndr, 8));
8811 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8813 uint32_t _flags_save_string = ndr->flags;
8814 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8815 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
8816 ndr->flags = _flags_save_string;
8819 uint32_t _flags_save_string = ndr->flags;
8820 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8821 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
8822 ndr->flags = _flags_save_string;
8825 uint32_t _flags_save_string = ndr->flags;
8826 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8827 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
8828 ndr->flags = _flags_save_string;
8831 uint32_t _flags_save_string = ndr->flags;
8832 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8833 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
8834 ndr->flags = _flags_save_string;
8837 uint32_t _flags_save_string = ndr->flags;
8838 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8839 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
8840 ndr->flags = _flags_save_string;
8843 uint32_t _flags_save_string = ndr->flags;
8844 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8845 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
8846 ndr->flags = _flags_save_string;
8849 uint32_t _flags_save_string_array = ndr->flags;
8850 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8851 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
8852 ndr->flags = _flags_save_string_array;
8855 uint32_t _flags_save_string = ndr->flags;
8856 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8857 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
8858 ndr->flags = _flags_save_string;
8861 uint32_t _flags_save_string = ndr->flags;
8862 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8863 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
8864 ndr->flags = _flags_save_string;
8867 uint32_t _flags_save_string_array = ndr->flags;
8868 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8869 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
8870 ndr->flags = _flags_save_string_array;
8872 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_data));
8873 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
8875 uint32_t _flags_save_string = ndr->flags;
8876 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8877 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
8878 ndr->flags = _flags_save_string;
8881 uint32_t _flags_save_string = ndr->flags;
8882 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8883 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
8884 ndr->flags = _flags_save_string;
8887 uint32_t _flags_save_string = ndr->flags;
8888 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8889 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
8890 ndr->flags = _flags_save_string;
8893 uint32_t _flags_save_string = ndr->flags;
8894 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8895 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
8896 ndr->flags = _flags_save_string;
8899 if (ndr_flags & NDR_BUFFERS) {
8901 uint32_t _flags_save_string = ndr->flags;
8902 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8903 if (r->driver_name) {
8904 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
8905 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
8907 ndr->flags = _flags_save_string;
8910 uint32_t _flags_save_string = ndr->flags;
8911 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8912 if (r->architecture) {
8913 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
8914 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
8916 ndr->flags = _flags_save_string;
8919 uint32_t _flags_save_string = ndr->flags;
8920 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8921 if (r->driver_path) {
8922 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
8923 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
8925 ndr->flags = _flags_save_string;
8928 uint32_t _flags_save_string = ndr->flags;
8929 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8931 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
8932 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
8934 ndr->flags = _flags_save_string;
8937 uint32_t _flags_save_string = ndr->flags;
8938 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8939 if (r->config_file) {
8940 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
8941 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
8943 ndr->flags = _flags_save_string;
8946 uint32_t _flags_save_string = ndr->flags;
8947 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8949 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
8950 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
8952 ndr->flags = _flags_save_string;
8955 uint32_t _flags_save_string_array = ndr->flags;
8956 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8957 if (r->dependent_files) {
8958 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
8959 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
8961 ndr->flags = _flags_save_string_array;
8964 uint32_t _flags_save_string = ndr->flags;
8965 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8966 if (r->monitor_name) {
8967 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
8968 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
8970 ndr->flags = _flags_save_string;
8973 uint32_t _flags_save_string = ndr->flags;
8974 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8975 if (r->default_datatype) {
8976 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
8977 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
8979 ndr->flags = _flags_save_string;
8982 uint32_t _flags_save_string_array = ndr->flags;
8983 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8984 if (r->previous_names) {
8985 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
8986 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
8988 ndr->flags = _flags_save_string_array;
8991 uint32_t _flags_save_string = ndr->flags;
8992 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8993 if (r->manufacturer_name) {
8994 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
8995 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
8997 ndr->flags = _flags_save_string;
9000 uint32_t _flags_save_string = ndr->flags;
9001 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9002 if (r->manufacturer_url) {
9003 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
9004 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
9006 ndr->flags = _flags_save_string;
9009 uint32_t _flags_save_string = ndr->flags;
9010 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9011 if (r->hardware_id) {
9012 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
9013 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
9015 ndr->flags = _flags_save_string;
9018 uint32_t _flags_save_string = ndr->flags;
9019 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9021 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
9022 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
9024 ndr->flags = _flags_save_string;
9027 return NDR_ERR_SUCCESS;
9030 static enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo6 *r)
9032 uint32_t _ptr_driver_name;
9033 TALLOC_CTX *_mem_save_driver_name_0;
9034 uint32_t _ptr_architecture;
9035 TALLOC_CTX *_mem_save_architecture_0;
9036 uint32_t _ptr_driver_path;
9037 TALLOC_CTX *_mem_save_driver_path_0;
9038 uint32_t _ptr_data_file;
9039 TALLOC_CTX *_mem_save_data_file_0;
9040 uint32_t _ptr_config_file;
9041 TALLOC_CTX *_mem_save_config_file_0;
9042 uint32_t _ptr_help_file;
9043 TALLOC_CTX *_mem_save_help_file_0;
9044 uint32_t _ptr_dependent_files;
9045 TALLOC_CTX *_mem_save_dependent_files_0;
9046 uint32_t _ptr_monitor_name;
9047 TALLOC_CTX *_mem_save_monitor_name_0;
9048 uint32_t _ptr_default_datatype;
9049 TALLOC_CTX *_mem_save_default_datatype_0;
9050 uint32_t _ptr_previous_names;
9051 TALLOC_CTX *_mem_save_previous_names_0;
9052 uint32_t _ptr_manufacturer_name;
9053 TALLOC_CTX *_mem_save_manufacturer_name_0;
9054 uint32_t _ptr_manufacturer_url;
9055 TALLOC_CTX *_mem_save_manufacturer_url_0;
9056 uint32_t _ptr_hardware_id;
9057 TALLOC_CTX *_mem_save_hardware_id_0;
9058 uint32_t _ptr_provider;
9059 TALLOC_CTX *_mem_save_provider_0;
9060 if (ndr_flags & NDR_SCALARS) {
9061 NDR_CHECK(ndr_pull_align(ndr, 8));
9062 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9064 uint32_t _flags_save_string = ndr->flags;
9065 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9066 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9067 if (_ptr_driver_name) {
9068 NDR_PULL_ALLOC(ndr, r->driver_name);
9069 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
9071 r->driver_name = NULL;
9073 ndr->flags = _flags_save_string;
9076 uint32_t _flags_save_string = ndr->flags;
9077 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9078 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9079 if (_ptr_architecture) {
9080 NDR_PULL_ALLOC(ndr, r->architecture);
9081 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
9083 r->architecture = NULL;
9085 ndr->flags = _flags_save_string;
9088 uint32_t _flags_save_string = ndr->flags;
9089 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9090 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9091 if (_ptr_driver_path) {
9092 NDR_PULL_ALLOC(ndr, r->driver_path);
9093 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
9095 r->driver_path = NULL;
9097 ndr->flags = _flags_save_string;
9100 uint32_t _flags_save_string = ndr->flags;
9101 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9102 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9103 if (_ptr_data_file) {
9104 NDR_PULL_ALLOC(ndr, r->data_file);
9105 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
9107 r->data_file = NULL;
9109 ndr->flags = _flags_save_string;
9112 uint32_t _flags_save_string = ndr->flags;
9113 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9114 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9115 if (_ptr_config_file) {
9116 NDR_PULL_ALLOC(ndr, r->config_file);
9117 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
9119 r->config_file = NULL;
9121 ndr->flags = _flags_save_string;
9124 uint32_t _flags_save_string = ndr->flags;
9125 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9126 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9127 if (_ptr_help_file) {
9128 NDR_PULL_ALLOC(ndr, r->help_file);
9129 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
9131 r->help_file = NULL;
9133 ndr->flags = _flags_save_string;
9136 uint32_t _flags_save_string_array = ndr->flags;
9137 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9138 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9139 if (_ptr_dependent_files) {
9140 NDR_PULL_ALLOC(ndr, r->dependent_files);
9141 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
9143 r->dependent_files = NULL;
9145 ndr->flags = _flags_save_string_array;
9148 uint32_t _flags_save_string = ndr->flags;
9149 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9150 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9151 if (_ptr_monitor_name) {
9152 NDR_PULL_ALLOC(ndr, r->monitor_name);
9153 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
9155 r->monitor_name = NULL;
9157 ndr->flags = _flags_save_string;
9160 uint32_t _flags_save_string = ndr->flags;
9161 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9162 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9163 if (_ptr_default_datatype) {
9164 NDR_PULL_ALLOC(ndr, r->default_datatype);
9165 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
9167 r->default_datatype = NULL;
9169 ndr->flags = _flags_save_string;
9172 uint32_t _flags_save_string_array = ndr->flags;
9173 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9174 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9175 if (_ptr_previous_names) {
9176 NDR_PULL_ALLOC(ndr, r->previous_names);
9177 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
9179 r->previous_names = NULL;
9181 ndr->flags = _flags_save_string_array;
9183 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_data));
9184 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9186 uint32_t _flags_save_string = ndr->flags;
9187 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9188 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9189 if (_ptr_manufacturer_name) {
9190 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9191 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
9193 r->manufacturer_name = NULL;
9195 ndr->flags = _flags_save_string;
9198 uint32_t _flags_save_string = ndr->flags;
9199 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9200 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9201 if (_ptr_manufacturer_url) {
9202 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9203 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
9205 r->manufacturer_url = NULL;
9207 ndr->flags = _flags_save_string;
9210 uint32_t _flags_save_string = ndr->flags;
9211 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9212 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9213 if (_ptr_hardware_id) {
9214 NDR_PULL_ALLOC(ndr, r->hardware_id);
9215 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
9217 r->hardware_id = NULL;
9219 ndr->flags = _flags_save_string;
9222 uint32_t _flags_save_string = ndr->flags;
9223 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9224 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9225 if (_ptr_provider) {
9226 NDR_PULL_ALLOC(ndr, r->provider);
9227 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
9231 ndr->flags = _flags_save_string;
9234 if (ndr_flags & NDR_BUFFERS) {
9236 uint32_t _flags_save_string = ndr->flags;
9237 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9238 if (r->driver_name) {
9239 uint32_t _relative_save_offset;
9240 _relative_save_offset = ndr->offset;
9241 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
9242 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9243 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9244 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
9245 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9246 ndr->offset = _relative_save_offset;
9248 ndr->flags = _flags_save_string;
9251 uint32_t _flags_save_string = ndr->flags;
9252 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9253 if (r->architecture) {
9254 uint32_t _relative_save_offset;
9255 _relative_save_offset = ndr->offset;
9256 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
9257 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9258 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9259 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
9260 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9261 ndr->offset = _relative_save_offset;
9263 ndr->flags = _flags_save_string;
9266 uint32_t _flags_save_string = ndr->flags;
9267 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9268 if (r->driver_path) {
9269 uint32_t _relative_save_offset;
9270 _relative_save_offset = ndr->offset;
9271 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
9272 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9273 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9274 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
9275 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9276 ndr->offset = _relative_save_offset;
9278 ndr->flags = _flags_save_string;
9281 uint32_t _flags_save_string = ndr->flags;
9282 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9284 uint32_t _relative_save_offset;
9285 _relative_save_offset = ndr->offset;
9286 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
9287 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9288 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9289 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
9290 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9291 ndr->offset = _relative_save_offset;
9293 ndr->flags = _flags_save_string;
9296 uint32_t _flags_save_string = ndr->flags;
9297 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9298 if (r->config_file) {
9299 uint32_t _relative_save_offset;
9300 _relative_save_offset = ndr->offset;
9301 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
9302 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9303 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9304 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
9305 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9306 ndr->offset = _relative_save_offset;
9308 ndr->flags = _flags_save_string;
9311 uint32_t _flags_save_string = ndr->flags;
9312 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9314 uint32_t _relative_save_offset;
9315 _relative_save_offset = ndr->offset;
9316 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
9317 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9318 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9319 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
9320 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9321 ndr->offset = _relative_save_offset;
9323 ndr->flags = _flags_save_string;
9326 uint32_t _flags_save_string_array = ndr->flags;
9327 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9328 if (r->dependent_files) {
9329 uint32_t _relative_save_offset;
9330 _relative_save_offset = ndr->offset;
9331 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
9332 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9333 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9334 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
9335 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9336 ndr->offset = _relative_save_offset;
9338 ndr->flags = _flags_save_string_array;
9341 uint32_t _flags_save_string = ndr->flags;
9342 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9343 if (r->monitor_name) {
9344 uint32_t _relative_save_offset;
9345 _relative_save_offset = ndr->offset;
9346 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
9347 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9348 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9349 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
9350 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9351 ndr->offset = _relative_save_offset;
9353 ndr->flags = _flags_save_string;
9356 uint32_t _flags_save_string = ndr->flags;
9357 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9358 if (r->default_datatype) {
9359 uint32_t _relative_save_offset;
9360 _relative_save_offset = ndr->offset;
9361 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
9362 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9363 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9364 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
9365 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9366 ndr->offset = _relative_save_offset;
9368 ndr->flags = _flags_save_string;
9371 uint32_t _flags_save_string_array = ndr->flags;
9372 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9373 if (r->previous_names) {
9374 uint32_t _relative_save_offset;
9375 _relative_save_offset = ndr->offset;
9376 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
9377 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9378 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9379 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
9380 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9381 ndr->offset = _relative_save_offset;
9383 ndr->flags = _flags_save_string_array;
9386 uint32_t _flags_save_string = ndr->flags;
9387 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9388 if (r->manufacturer_name) {
9389 uint32_t _relative_save_offset;
9390 _relative_save_offset = ndr->offset;
9391 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
9392 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9393 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
9394 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
9395 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
9396 ndr->offset = _relative_save_offset;
9398 ndr->flags = _flags_save_string;
9401 uint32_t _flags_save_string = ndr->flags;
9402 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9403 if (r->manufacturer_url) {
9404 uint32_t _relative_save_offset;
9405 _relative_save_offset = ndr->offset;
9406 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
9407 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
9408 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
9409 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
9410 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
9411 ndr->offset = _relative_save_offset;
9413 ndr->flags = _flags_save_string;
9416 uint32_t _flags_save_string = ndr->flags;
9417 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9418 if (r->hardware_id) {
9419 uint32_t _relative_save_offset;
9420 _relative_save_offset = ndr->offset;
9421 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
9422 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9423 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
9424 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
9425 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
9426 ndr->offset = _relative_save_offset;
9428 ndr->flags = _flags_save_string;
9431 uint32_t _flags_save_string = ndr->flags;
9432 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9434 uint32_t _relative_save_offset;
9435 _relative_save_offset = ndr->offset;
9436 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
9437 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
9438 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
9439 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
9440 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
9441 ndr->offset = _relative_save_offset;
9443 ndr->flags = _flags_save_string;
9446 return NDR_ERR_SUCCESS;
9449 _PUBLIC_ void ndr_print_spoolss_DriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo6 *r)
9451 ndr_print_struct(ndr, name, "spoolss_DriverInfo6");
9453 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9454 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9456 if (r->driver_name) {
9457 ndr_print_string(ndr, "driver_name", r->driver_name);
9460 ndr_print_ptr(ndr, "architecture", r->architecture);
9462 if (r->architecture) {
9463 ndr_print_string(ndr, "architecture", r->architecture);
9466 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9468 if (r->driver_path) {
9469 ndr_print_string(ndr, "driver_path", r->driver_path);
9472 ndr_print_ptr(ndr, "data_file", r->data_file);
9475 ndr_print_string(ndr, "data_file", r->data_file);
9478 ndr_print_ptr(ndr, "config_file", r->config_file);
9480 if (r->config_file) {
9481 ndr_print_string(ndr, "config_file", r->config_file);
9484 ndr_print_ptr(ndr, "help_file", r->help_file);
9487 ndr_print_string(ndr, "help_file", r->help_file);
9490 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9492 if (r->dependent_files) {
9493 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
9496 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9498 if (r->monitor_name) {
9499 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9502 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9504 if (r->default_datatype) {
9505 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9508 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9510 if (r->previous_names) {
9511 ndr_print_string_array(ndr, "previous_names", r->previous_names);
9514 ndr_print_NTTIME(ndr, "driver_data", r->driver_data);
9515 ndr_print_hyper(ndr, "driver_version", r->driver_version);
9516 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
9518 if (r->manufacturer_name) {
9519 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
9522 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
9524 if (r->manufacturer_url) {
9525 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
9528 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
9530 if (r->hardware_id) {
9531 ndr_print_string(ndr, "hardware_id", r->hardware_id);
9534 ndr_print_ptr(ndr, "provider", r->provider);
9537 ndr_print_string(ndr, "provider", r->provider);
9543 static enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo8 *r)
9545 if (ndr_flags & NDR_SCALARS) {
9546 NDR_CHECK(ndr_push_align(ndr, 8));
9547 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9549 uint32_t _flags_save_string = ndr->flags;
9550 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9551 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
9552 ndr->flags = _flags_save_string;
9555 uint32_t _flags_save_string = ndr->flags;
9556 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9557 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
9558 ndr->flags = _flags_save_string;
9561 uint32_t _flags_save_string = ndr->flags;
9562 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9563 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
9564 ndr->flags = _flags_save_string;
9567 uint32_t _flags_save_string = ndr->flags;
9568 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9569 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
9570 ndr->flags = _flags_save_string;
9573 uint32_t _flags_save_string = ndr->flags;
9574 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9575 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
9576 ndr->flags = _flags_save_string;
9579 uint32_t _flags_save_string = ndr->flags;
9580 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9581 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
9582 ndr->flags = _flags_save_string;
9585 uint32_t _flags_save_string = ndr->flags;
9586 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9587 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
9588 ndr->flags = _flags_save_string;
9591 uint32_t _flags_save_string = ndr->flags;
9592 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9593 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
9594 ndr->flags = _flags_save_string;
9597 uint32_t _flags_save_string_array = ndr->flags;
9598 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9599 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
9600 ndr->flags = _flags_save_string_array;
9603 uint32_t _flags_save_string_array = ndr->flags;
9604 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9605 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
9606 ndr->flags = _flags_save_string_array;
9608 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_data));
9609 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
9611 uint32_t _flags_save_string = ndr->flags;
9612 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9613 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
9614 ndr->flags = _flags_save_string;
9617 uint32_t _flags_save_string = ndr->flags;
9618 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9619 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
9620 ndr->flags = _flags_save_string;
9623 uint32_t _flags_save_string = ndr->flags;
9624 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9625 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
9626 ndr->flags = _flags_save_string;
9629 uint32_t _flags_save_string = ndr->flags;
9630 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9631 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
9632 ndr->flags = _flags_save_string;
9635 uint32_t _flags_save_string = ndr->flags;
9636 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9637 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
9638 ndr->flags = _flags_save_string;
9641 uint32_t _flags_save_string = ndr->flags;
9642 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9643 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->vendor_setup));
9644 ndr->flags = _flags_save_string;
9647 uint32_t _flags_save_string_array = ndr->flags;
9648 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9649 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->color_profiles));
9650 ndr->flags = _flags_save_string_array;
9653 uint32_t _flags_save_string = ndr->flags;
9654 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9655 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_path));
9656 ndr->flags = _flags_save_string;
9658 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
9660 uint32_t _flags_save_string_array = ndr->flags;
9661 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9662 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->core_driver_dependencies));
9663 ndr->flags = _flags_save_string_array;
9665 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
9666 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
9668 if (ndr_flags & NDR_BUFFERS) {
9670 uint32_t _flags_save_string = ndr->flags;
9671 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9672 if (r->driver_name) {
9673 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
9674 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
9676 ndr->flags = _flags_save_string;
9679 uint32_t _flags_save_string = ndr->flags;
9680 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9681 if (r->architecture) {
9682 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
9683 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
9685 ndr->flags = _flags_save_string;
9688 uint32_t _flags_save_string = ndr->flags;
9689 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9690 if (r->driver_path) {
9691 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
9692 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
9694 ndr->flags = _flags_save_string;
9697 uint32_t _flags_save_string = ndr->flags;
9698 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9700 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
9701 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
9703 ndr->flags = _flags_save_string;
9706 uint32_t _flags_save_string = ndr->flags;
9707 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9708 if (r->config_file) {
9709 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
9710 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
9712 ndr->flags = _flags_save_string;
9715 uint32_t _flags_save_string = ndr->flags;
9716 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9718 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
9719 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
9721 ndr->flags = _flags_save_string;
9724 uint32_t _flags_save_string = ndr->flags;
9725 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9726 if (r->monitor_name) {
9727 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
9728 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
9730 ndr->flags = _flags_save_string;
9733 uint32_t _flags_save_string = ndr->flags;
9734 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9735 if (r->default_datatype) {
9736 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
9737 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
9739 ndr->flags = _flags_save_string;
9742 uint32_t _flags_save_string_array = ndr->flags;
9743 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9744 if (r->dependent_files) {
9745 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
9746 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
9748 ndr->flags = _flags_save_string_array;
9751 uint32_t _flags_save_string_array = ndr->flags;
9752 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9753 if (r->previous_names) {
9754 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
9755 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
9757 ndr->flags = _flags_save_string_array;
9760 uint32_t _flags_save_string = ndr->flags;
9761 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9762 if (r->manufacturer_name) {
9763 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
9764 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
9766 ndr->flags = _flags_save_string;
9769 uint32_t _flags_save_string = ndr->flags;
9770 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9771 if (r->manufacturer_url) {
9772 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
9773 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
9775 ndr->flags = _flags_save_string;
9778 uint32_t _flags_save_string = ndr->flags;
9779 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9780 if (r->hardware_id) {
9781 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
9782 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
9784 ndr->flags = _flags_save_string;
9787 uint32_t _flags_save_string = ndr->flags;
9788 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9790 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
9791 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
9793 ndr->flags = _flags_save_string;
9796 uint32_t _flags_save_string = ndr->flags;
9797 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9798 if (r->print_processor) {
9799 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
9800 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
9802 ndr->flags = _flags_save_string;
9805 uint32_t _flags_save_string = ndr->flags;
9806 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9807 if (r->vendor_setup) {
9808 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->vendor_setup));
9809 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->vendor_setup));
9811 ndr->flags = _flags_save_string;
9814 uint32_t _flags_save_string_array = ndr->flags;
9815 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9816 if (r->color_profiles) {
9817 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->color_profiles));
9818 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->color_profiles));
9820 ndr->flags = _flags_save_string_array;
9823 uint32_t _flags_save_string = ndr->flags;
9824 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9826 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->inf_path));
9827 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_path));
9829 ndr->flags = _flags_save_string;
9832 uint32_t _flags_save_string_array = ndr->flags;
9833 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9834 if (r->core_driver_dependencies) {
9835 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->core_driver_dependencies));
9836 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->core_driver_dependencies));
9838 ndr->flags = _flags_save_string_array;
9841 return NDR_ERR_SUCCESS;
9844 static enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo8 *r)
9846 uint32_t _ptr_driver_name;
9847 TALLOC_CTX *_mem_save_driver_name_0;
9848 uint32_t _ptr_architecture;
9849 TALLOC_CTX *_mem_save_architecture_0;
9850 uint32_t _ptr_driver_path;
9851 TALLOC_CTX *_mem_save_driver_path_0;
9852 uint32_t _ptr_data_file;
9853 TALLOC_CTX *_mem_save_data_file_0;
9854 uint32_t _ptr_config_file;
9855 TALLOC_CTX *_mem_save_config_file_0;
9856 uint32_t _ptr_help_file;
9857 TALLOC_CTX *_mem_save_help_file_0;
9858 uint32_t _ptr_monitor_name;
9859 TALLOC_CTX *_mem_save_monitor_name_0;
9860 uint32_t _ptr_default_datatype;
9861 TALLOC_CTX *_mem_save_default_datatype_0;
9862 uint32_t _ptr_dependent_files;
9863 TALLOC_CTX *_mem_save_dependent_files_0;
9864 uint32_t _ptr_previous_names;
9865 TALLOC_CTX *_mem_save_previous_names_0;
9866 uint32_t _ptr_manufacturer_name;
9867 TALLOC_CTX *_mem_save_manufacturer_name_0;
9868 uint32_t _ptr_manufacturer_url;
9869 TALLOC_CTX *_mem_save_manufacturer_url_0;
9870 uint32_t _ptr_hardware_id;
9871 TALLOC_CTX *_mem_save_hardware_id_0;
9872 uint32_t _ptr_provider;
9873 TALLOC_CTX *_mem_save_provider_0;
9874 uint32_t _ptr_print_processor;
9875 TALLOC_CTX *_mem_save_print_processor_0;
9876 uint32_t _ptr_vendor_setup;
9877 TALLOC_CTX *_mem_save_vendor_setup_0;
9878 uint32_t _ptr_color_profiles;
9879 TALLOC_CTX *_mem_save_color_profiles_0;
9880 uint32_t _ptr_inf_path;
9881 TALLOC_CTX *_mem_save_inf_path_0;
9882 uint32_t _ptr_core_driver_dependencies;
9883 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
9884 if (ndr_flags & NDR_SCALARS) {
9885 NDR_CHECK(ndr_pull_align(ndr, 8));
9886 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9888 uint32_t _flags_save_string = ndr->flags;
9889 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9890 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9891 if (_ptr_driver_name) {
9892 NDR_PULL_ALLOC(ndr, r->driver_name);
9893 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
9895 r->driver_name = NULL;
9897 ndr->flags = _flags_save_string;
9900 uint32_t _flags_save_string = ndr->flags;
9901 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9902 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9903 if (_ptr_architecture) {
9904 NDR_PULL_ALLOC(ndr, r->architecture);
9905 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
9907 r->architecture = NULL;
9909 ndr->flags = _flags_save_string;
9912 uint32_t _flags_save_string = ndr->flags;
9913 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9914 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9915 if (_ptr_driver_path) {
9916 NDR_PULL_ALLOC(ndr, r->driver_path);
9917 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
9919 r->driver_path = NULL;
9921 ndr->flags = _flags_save_string;
9924 uint32_t _flags_save_string = ndr->flags;
9925 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9926 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9927 if (_ptr_data_file) {
9928 NDR_PULL_ALLOC(ndr, r->data_file);
9929 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
9931 r->data_file = NULL;
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_pull_generic_ptr(ndr, &_ptr_config_file));
9939 if (_ptr_config_file) {
9940 NDR_PULL_ALLOC(ndr, r->config_file);
9941 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
9943 r->config_file = NULL;
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_pull_generic_ptr(ndr, &_ptr_help_file));
9951 if (_ptr_help_file) {
9952 NDR_PULL_ALLOC(ndr, r->help_file);
9953 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
9955 r->help_file = NULL;
9957 ndr->flags = _flags_save_string;
9960 uint32_t _flags_save_string = ndr->flags;
9961 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9962 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9963 if (_ptr_monitor_name) {
9964 NDR_PULL_ALLOC(ndr, r->monitor_name);
9965 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
9967 r->monitor_name = NULL;
9969 ndr->flags = _flags_save_string;
9972 uint32_t _flags_save_string = ndr->flags;
9973 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9974 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9975 if (_ptr_default_datatype) {
9976 NDR_PULL_ALLOC(ndr, r->default_datatype);
9977 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
9979 r->default_datatype = NULL;
9981 ndr->flags = _flags_save_string;
9984 uint32_t _flags_save_string_array = ndr->flags;
9985 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9986 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9987 if (_ptr_dependent_files) {
9988 NDR_PULL_ALLOC(ndr, r->dependent_files);
9989 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
9991 r->dependent_files = NULL;
9993 ndr->flags = _flags_save_string_array;
9996 uint32_t _flags_save_string_array = ndr->flags;
9997 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9998 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9999 if (_ptr_previous_names) {
10000 NDR_PULL_ALLOC(ndr, r->previous_names);
10001 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
10003 r->previous_names = NULL;
10005 ndr->flags = _flags_save_string_array;
10007 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_data));
10008 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
10010 uint32_t _flags_save_string = ndr->flags;
10011 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10012 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
10013 if (_ptr_manufacturer_name) {
10014 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
10015 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
10017 r->manufacturer_name = NULL;
10019 ndr->flags = _flags_save_string;
10022 uint32_t _flags_save_string = ndr->flags;
10023 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10024 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
10025 if (_ptr_manufacturer_url) {
10026 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
10027 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
10029 r->manufacturer_url = NULL;
10031 ndr->flags = _flags_save_string;
10034 uint32_t _flags_save_string = ndr->flags;
10035 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10036 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
10037 if (_ptr_hardware_id) {
10038 NDR_PULL_ALLOC(ndr, r->hardware_id);
10039 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
10041 r->hardware_id = NULL;
10043 ndr->flags = _flags_save_string;
10046 uint32_t _flags_save_string = ndr->flags;
10047 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10048 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
10049 if (_ptr_provider) {
10050 NDR_PULL_ALLOC(ndr, r->provider);
10051 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
10053 r->provider = NULL;
10055 ndr->flags = _flags_save_string;
10058 uint32_t _flags_save_string = ndr->flags;
10059 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10060 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
10061 if (_ptr_print_processor) {
10062 NDR_PULL_ALLOC(ndr, r->print_processor);
10063 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
10065 r->print_processor = NULL;
10067 ndr->flags = _flags_save_string;
10070 uint32_t _flags_save_string = ndr->flags;
10071 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10072 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
10073 if (_ptr_vendor_setup) {
10074 NDR_PULL_ALLOC(ndr, r->vendor_setup);
10075 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->vendor_setup, _ptr_vendor_setup));
10077 r->vendor_setup = NULL;
10079 ndr->flags = _flags_save_string;
10082 uint32_t _flags_save_string_array = ndr->flags;
10083 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10084 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
10085 if (_ptr_color_profiles) {
10086 NDR_PULL_ALLOC(ndr, r->color_profiles);
10087 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->color_profiles, _ptr_color_profiles));
10089 r->color_profiles = NULL;
10091 ndr->flags = _flags_save_string_array;
10094 uint32_t _flags_save_string = ndr->flags;
10095 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10096 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
10097 if (_ptr_inf_path) {
10098 NDR_PULL_ALLOC(ndr, r->inf_path);
10099 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_path, _ptr_inf_path));
10101 r->inf_path = NULL;
10103 ndr->flags = _flags_save_string;
10105 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
10107 uint32_t _flags_save_string_array = ndr->flags;
10108 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10109 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
10110 if (_ptr_core_driver_dependencies) {
10111 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
10112 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->core_driver_dependencies, _ptr_core_driver_dependencies));
10114 r->core_driver_dependencies = NULL;
10116 ndr->flags = _flags_save_string_array;
10118 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
10119 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
10121 if (ndr_flags & NDR_BUFFERS) {
10123 uint32_t _flags_save_string = ndr->flags;
10124 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10125 if (r->driver_name) {
10126 uint32_t _relative_save_offset;
10127 _relative_save_offset = ndr->offset;
10128 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10129 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10130 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10131 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10132 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10133 ndr->offset = _relative_save_offset;
10135 ndr->flags = _flags_save_string;
10138 uint32_t _flags_save_string = ndr->flags;
10139 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10140 if (r->architecture) {
10141 uint32_t _relative_save_offset;
10142 _relative_save_offset = ndr->offset;
10143 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10144 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10145 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10146 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10147 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10148 ndr->offset = _relative_save_offset;
10150 ndr->flags = _flags_save_string;
10153 uint32_t _flags_save_string = ndr->flags;
10154 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10155 if (r->driver_path) {
10156 uint32_t _relative_save_offset;
10157 _relative_save_offset = ndr->offset;
10158 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
10159 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10160 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10161 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
10162 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10163 ndr->offset = _relative_save_offset;
10165 ndr->flags = _flags_save_string;
10168 uint32_t _flags_save_string = ndr->flags;
10169 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10170 if (r->data_file) {
10171 uint32_t _relative_save_offset;
10172 _relative_save_offset = ndr->offset;
10173 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
10174 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10175 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10176 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
10177 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10178 ndr->offset = _relative_save_offset;
10180 ndr->flags = _flags_save_string;
10183 uint32_t _flags_save_string = ndr->flags;
10184 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10185 if (r->config_file) {
10186 uint32_t _relative_save_offset;
10187 _relative_save_offset = ndr->offset;
10188 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
10189 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10190 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10191 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
10192 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10193 ndr->offset = _relative_save_offset;
10195 ndr->flags = _flags_save_string;
10198 uint32_t _flags_save_string = ndr->flags;
10199 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10200 if (r->help_file) {
10201 uint32_t _relative_save_offset;
10202 _relative_save_offset = ndr->offset;
10203 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
10204 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10205 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
10206 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
10207 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
10208 ndr->offset = _relative_save_offset;
10210 ndr->flags = _flags_save_string;
10213 uint32_t _flags_save_string = ndr->flags;
10214 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10215 if (r->monitor_name) {
10216 uint32_t _relative_save_offset;
10217 _relative_save_offset = ndr->offset;
10218 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
10219 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10220 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
10221 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
10222 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
10223 ndr->offset = _relative_save_offset;
10225 ndr->flags = _flags_save_string;
10228 uint32_t _flags_save_string = ndr->flags;
10229 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10230 if (r->default_datatype) {
10231 uint32_t _relative_save_offset;
10232 _relative_save_offset = ndr->offset;
10233 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
10234 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
10235 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
10236 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
10237 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
10238 ndr->offset = _relative_save_offset;
10240 ndr->flags = _flags_save_string;
10243 uint32_t _flags_save_string_array = ndr->flags;
10244 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10245 if (r->dependent_files) {
10246 uint32_t _relative_save_offset;
10247 _relative_save_offset = ndr->offset;
10248 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
10249 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
10250 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
10251 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
10252 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
10253 ndr->offset = _relative_save_offset;
10255 ndr->flags = _flags_save_string_array;
10258 uint32_t _flags_save_string_array = ndr->flags;
10259 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10260 if (r->previous_names) {
10261 uint32_t _relative_save_offset;
10262 _relative_save_offset = ndr->offset;
10263 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
10264 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
10265 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
10266 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
10267 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
10268 ndr->offset = _relative_save_offset;
10270 ndr->flags = _flags_save_string_array;
10273 uint32_t _flags_save_string = ndr->flags;
10274 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10275 if (r->manufacturer_name) {
10276 uint32_t _relative_save_offset;
10277 _relative_save_offset = ndr->offset;
10278 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
10279 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10280 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
10281 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
10282 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
10283 ndr->offset = _relative_save_offset;
10285 ndr->flags = _flags_save_string;
10288 uint32_t _flags_save_string = ndr->flags;
10289 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10290 if (r->manufacturer_url) {
10291 uint32_t _relative_save_offset;
10292 _relative_save_offset = ndr->offset;
10293 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
10294 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
10295 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
10296 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
10297 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
10298 ndr->offset = _relative_save_offset;
10300 ndr->flags = _flags_save_string;
10303 uint32_t _flags_save_string = ndr->flags;
10304 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10305 if (r->hardware_id) {
10306 uint32_t _relative_save_offset;
10307 _relative_save_offset = ndr->offset;
10308 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
10309 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
10310 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
10311 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
10312 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
10313 ndr->offset = _relative_save_offset;
10315 ndr->flags = _flags_save_string;
10318 uint32_t _flags_save_string = ndr->flags;
10319 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10321 uint32_t _relative_save_offset;
10322 _relative_save_offset = ndr->offset;
10323 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
10324 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
10325 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
10326 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
10327 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
10328 ndr->offset = _relative_save_offset;
10330 ndr->flags = _flags_save_string;
10333 uint32_t _flags_save_string = ndr->flags;
10334 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10335 if (r->print_processor) {
10336 uint32_t _relative_save_offset;
10337 _relative_save_offset = ndr->offset;
10338 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
10339 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
10340 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
10341 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
10342 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
10343 ndr->offset = _relative_save_offset;
10345 ndr->flags = _flags_save_string;
10348 uint32_t _flags_save_string = ndr->flags;
10349 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10350 if (r->vendor_setup) {
10351 uint32_t _relative_save_offset;
10352 _relative_save_offset = ndr->offset;
10353 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->vendor_setup));
10354 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
10355 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
10356 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->vendor_setup));
10357 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
10358 ndr->offset = _relative_save_offset;
10360 ndr->flags = _flags_save_string;
10363 uint32_t _flags_save_string_array = ndr->flags;
10364 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10365 if (r->color_profiles) {
10366 uint32_t _relative_save_offset;
10367 _relative_save_offset = ndr->offset;
10368 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->color_profiles));
10369 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
10370 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
10371 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->color_profiles));
10372 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
10373 ndr->offset = _relative_save_offset;
10375 ndr->flags = _flags_save_string_array;
10378 uint32_t _flags_save_string = ndr->flags;
10379 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10381 uint32_t _relative_save_offset;
10382 _relative_save_offset = ndr->offset;
10383 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_path));
10384 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10385 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
10386 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_path));
10387 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
10388 ndr->offset = _relative_save_offset;
10390 ndr->flags = _flags_save_string;
10393 uint32_t _flags_save_string_array = ndr->flags;
10394 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10395 if (r->core_driver_dependencies) {
10396 uint32_t _relative_save_offset;
10397 _relative_save_offset = ndr->offset;
10398 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->core_driver_dependencies));
10399 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
10400 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
10401 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->core_driver_dependencies));
10402 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
10403 ndr->offset = _relative_save_offset;
10405 ndr->flags = _flags_save_string_array;
10408 return NDR_ERR_SUCCESS;
10411 _PUBLIC_ void ndr_print_spoolss_DriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo8 *r)
10413 ndr_print_struct(ndr, name, "spoolss_DriverInfo8");
10415 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10416 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10418 if (r->driver_name) {
10419 ndr_print_string(ndr, "driver_name", r->driver_name);
10422 ndr_print_ptr(ndr, "architecture", r->architecture);
10424 if (r->architecture) {
10425 ndr_print_string(ndr, "architecture", r->architecture);
10428 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10430 if (r->driver_path) {
10431 ndr_print_string(ndr, "driver_path", r->driver_path);
10434 ndr_print_ptr(ndr, "data_file", r->data_file);
10436 if (r->data_file) {
10437 ndr_print_string(ndr, "data_file", r->data_file);
10440 ndr_print_ptr(ndr, "config_file", r->config_file);
10442 if (r->config_file) {
10443 ndr_print_string(ndr, "config_file", r->config_file);
10446 ndr_print_ptr(ndr, "help_file", r->help_file);
10448 if (r->help_file) {
10449 ndr_print_string(ndr, "help_file", r->help_file);
10452 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
10454 if (r->monitor_name) {
10455 ndr_print_string(ndr, "monitor_name", r->monitor_name);
10458 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
10460 if (r->default_datatype) {
10461 ndr_print_string(ndr, "default_datatype", r->default_datatype);
10464 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
10466 if (r->dependent_files) {
10467 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
10470 ndr_print_ptr(ndr, "previous_names", r->previous_names);
10472 if (r->previous_names) {
10473 ndr_print_string_array(ndr, "previous_names", r->previous_names);
10476 ndr_print_NTTIME(ndr, "driver_data", r->driver_data);
10477 ndr_print_hyper(ndr, "driver_version", r->driver_version);
10478 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
10480 if (r->manufacturer_name) {
10481 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
10484 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
10486 if (r->manufacturer_url) {
10487 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
10490 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
10492 if (r->hardware_id) {
10493 ndr_print_string(ndr, "hardware_id", r->hardware_id);
10496 ndr_print_ptr(ndr, "provider", r->provider);
10499 ndr_print_string(ndr, "provider", r->provider);
10502 ndr_print_ptr(ndr, "print_processor", r->print_processor);
10504 if (r->print_processor) {
10505 ndr_print_string(ndr, "print_processor", r->print_processor);
10508 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
10510 if (r->vendor_setup) {
10511 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
10514 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
10516 if (r->color_profiles) {
10517 ndr_print_string_array(ndr, "color_profiles", r->color_profiles);
10520 ndr_print_ptr(ndr, "inf_path", r->inf_path);
10523 ndr_print_string(ndr, "inf_path", r->inf_path);
10526 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
10527 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10529 if (r->core_driver_dependencies) {
10530 ndr_print_string_array(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10533 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
10534 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
10538 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverInfo *r)
10540 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
10541 if (ndr_flags & NDR_SCALARS) {
10542 int level = ndr_push_get_switch_value(ndr, r);
10545 NDR_CHECK(ndr_push_align(ndr, 4));
10546 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10547 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
10551 NDR_CHECK(ndr_push_align(ndr, 4));
10552 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10553 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
10557 NDR_CHECK(ndr_push_align(ndr, 4));
10558 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10559 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
10563 NDR_CHECK(ndr_push_align(ndr, 4));
10564 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10565 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
10569 NDR_CHECK(ndr_push_align(ndr, 4));
10570 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10571 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
10575 NDR_CHECK(ndr_push_align(ndr, 8));
10576 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10577 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
10581 NDR_CHECK(ndr_push_align(ndr, 8));
10582 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10583 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
10591 if (ndr_flags & NDR_BUFFERS) {
10592 int level = ndr_push_get_switch_value(ndr, r);
10593 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
10596 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
10600 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
10604 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
10608 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
10612 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
10616 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
10620 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
10628 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
10629 return NDR_ERR_SUCCESS;
10632 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverInfo *r)
10634 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
10636 level = ndr_pull_get_switch_value(ndr, r);
10637 if (ndr_flags & NDR_SCALARS) {
10640 NDR_CHECK(ndr_pull_align(ndr, 4));
10641 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10642 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
10646 NDR_CHECK(ndr_pull_align(ndr, 4));
10647 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10648 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
10652 NDR_CHECK(ndr_pull_align(ndr, 4));
10653 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10654 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
10658 NDR_CHECK(ndr_pull_align(ndr, 4));
10659 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10660 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
10664 NDR_CHECK(ndr_pull_align(ndr, 4));
10665 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10666 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
10670 NDR_CHECK(ndr_pull_align(ndr, 8));
10671 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10672 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
10676 NDR_CHECK(ndr_pull_align(ndr, 8));
10677 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10678 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
10686 if (ndr_flags & NDR_BUFFERS) {
10687 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
10690 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
10694 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
10698 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
10702 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
10706 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
10710 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
10714 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
10722 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
10723 return NDR_ERR_SUCCESS;
10726 _PUBLIC_ void ndr_print_spoolss_DriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverInfo *r)
10729 level = ndr_print_get_switch_value(ndr, r);
10730 ndr_print_union(ndr, name, level, "spoolss_DriverInfo");
10733 ndr_print_spoolss_DriverInfo1(ndr, "info1", &r->info1);
10737 ndr_print_spoolss_DriverInfo2(ndr, "info2", &r->info2);
10741 ndr_print_spoolss_DriverInfo3(ndr, "info3", &r->info3);
10745 ndr_print_spoolss_DriverInfo4(ndr, "info4", &r->info4);
10749 ndr_print_spoolss_DriverInfo5(ndr, "info5", &r->info5);
10753 ndr_print_spoolss_DriverInfo6(ndr, "info6", &r->info6);
10757 ndr_print_spoolss_DriverInfo8(ndr, "info8", &r->info8);
10766 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverDirectoryInfo1 *r)
10768 if (ndr_flags & NDR_SCALARS) {
10769 NDR_CHECK(ndr_push_align(ndr, 4));
10771 uint32_t _flags_save_string = ndr->flags;
10772 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10773 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
10774 ndr->flags = _flags_save_string;
10777 if (ndr_flags & NDR_BUFFERS) {
10779 return NDR_ERR_SUCCESS;
10782 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverDirectoryInfo1 *r)
10784 if (ndr_flags & NDR_SCALARS) {
10785 NDR_CHECK(ndr_pull_align(ndr, 4));
10787 uint32_t _flags_save_string = ndr->flags;
10788 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10789 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
10790 ndr->flags = _flags_save_string;
10793 if (ndr_flags & NDR_BUFFERS) {
10795 return NDR_ERR_SUCCESS;
10798 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverDirectoryInfo1 *r)
10800 ndr_print_struct(ndr, name, "spoolss_DriverDirectoryInfo1");
10802 ndr_print_string(ndr, "directory_name", r->directory_name);
10806 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
10808 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo1, ic);
10811 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverDirectoryInfo *r)
10813 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
10814 if (ndr_flags & NDR_SCALARS) {
10815 int level = ndr_push_get_switch_value(ndr, r);
10818 NDR_CHECK(ndr_push_align(ndr, 4));
10819 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10820 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
10824 NDR_CHECK(ndr_push_align(ndr, 4));
10825 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10826 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
10831 if (ndr_flags & NDR_BUFFERS) {
10832 int level = ndr_push_get_switch_value(ndr, r);
10833 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
10843 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
10844 return NDR_ERR_SUCCESS;
10847 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverDirectoryInfo *r)
10849 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
10851 level = ndr_pull_get_switch_value(ndr, r);
10852 if (ndr_flags & NDR_SCALARS) {
10855 NDR_CHECK(ndr_pull_align(ndr, 4));
10856 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10857 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
10861 NDR_CHECK(ndr_pull_align(ndr, 4));
10862 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10863 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
10868 if (ndr_flags & NDR_BUFFERS) {
10869 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
10879 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
10880 return NDR_ERR_SUCCESS;
10883 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverDirectoryInfo *r)
10886 level = ndr_print_get_switch_value(ndr, r);
10887 ndr_print_union(ndr, name, level, "spoolss_DriverDirectoryInfo");
10890 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
10894 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
10900 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
10902 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo, ic);
10905 static enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorInfo1 *r)
10907 if (ndr_flags & NDR_SCALARS) {
10908 NDR_CHECK(ndr_push_align(ndr, 4));
10910 uint32_t _flags_save_string = ndr->flags;
10911 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10912 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor_name));
10913 ndr->flags = _flags_save_string;
10916 if (ndr_flags & NDR_BUFFERS) {
10918 uint32_t _flags_save_string = ndr->flags;
10919 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10920 if (r->print_processor_name) {
10921 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor_name));
10922 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor_name));
10924 ndr->flags = _flags_save_string;
10927 return NDR_ERR_SUCCESS;
10930 static enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorInfo1 *r)
10932 uint32_t _ptr_print_processor_name;
10933 TALLOC_CTX *_mem_save_print_processor_name_0;
10934 if (ndr_flags & NDR_SCALARS) {
10935 NDR_CHECK(ndr_pull_align(ndr, 4));
10937 uint32_t _flags_save_string = ndr->flags;
10938 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10939 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
10940 if (_ptr_print_processor_name) {
10941 NDR_PULL_ALLOC(ndr, r->print_processor_name);
10942 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor_name, _ptr_print_processor_name));
10944 r->print_processor_name = NULL;
10946 ndr->flags = _flags_save_string;
10949 if (ndr_flags & NDR_BUFFERS) {
10951 uint32_t _flags_save_string = ndr->flags;
10952 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10953 if (r->print_processor_name) {
10954 uint32_t _relative_save_offset;
10955 _relative_save_offset = ndr->offset;
10956 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor_name));
10957 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10958 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor_name, 0);
10959 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor_name));
10960 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
10961 ndr->offset = _relative_save_offset;
10963 ndr->flags = _flags_save_string;
10966 return NDR_ERR_SUCCESS;
10969 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorInfo1 *r)
10971 ndr_print_struct(ndr, name, "spoolss_PrintProcessorInfo1");
10973 ndr_print_ptr(ndr, "print_processor_name", r->print_processor_name);
10975 if (r->print_processor_name) {
10976 ndr_print_string(ndr, "print_processor_name", r->print_processor_name);
10982 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorInfo *r)
10984 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
10985 if (ndr_flags & NDR_SCALARS) {
10986 int level = ndr_push_get_switch_value(ndr, r);
10989 NDR_CHECK(ndr_push_align(ndr, 4));
10990 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10991 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
10999 if (ndr_flags & NDR_BUFFERS) {
11000 int level = ndr_push_get_switch_value(ndr, r);
11001 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
11004 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
11012 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
11013 return NDR_ERR_SUCCESS;
11016 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorInfo *r)
11018 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
11020 level = ndr_pull_get_switch_value(ndr, r);
11021 if (ndr_flags & NDR_SCALARS) {
11024 NDR_CHECK(ndr_pull_align(ndr, 4));
11025 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
11026 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
11034 if (ndr_flags & NDR_BUFFERS) {
11035 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
11038 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
11046 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
11047 return NDR_ERR_SUCCESS;
11050 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorInfo *r)
11053 level = ndr_print_get_switch_value(ndr, r);
11054 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorInfo");
11057 ndr_print_spoolss_PrintProcessorInfo1(ndr, "info1", &r->info1);
11066 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
11068 if (ndr_flags & NDR_SCALARS) {
11069 NDR_CHECK(ndr_push_align(ndr, 4));
11071 uint32_t _flags_save_string = ndr->flags;
11072 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11073 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
11074 ndr->flags = _flags_save_string;
11077 if (ndr_flags & NDR_BUFFERS) {
11079 return NDR_ERR_SUCCESS;
11082 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorDirectoryInfo1 *r)
11084 if (ndr_flags & NDR_SCALARS) {
11085 NDR_CHECK(ndr_pull_align(ndr, 4));
11087 uint32_t _flags_save_string = ndr->flags;
11088 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11089 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
11090 ndr->flags = _flags_save_string;
11093 if (ndr_flags & NDR_BUFFERS) {
11095 return NDR_ERR_SUCCESS;
11098 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
11100 ndr_print_struct(ndr, name, "spoolss_PrintProcessorDirectoryInfo1");
11102 ndr_print_string(ndr, "directory_name", r->directory_name);
11106 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
11108 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo1, ic);
11111 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorDirectoryInfo *r)
11113 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
11114 if (ndr_flags & NDR_SCALARS) {
11115 int level = ndr_push_get_switch_value(ndr, r);
11118 NDR_CHECK(ndr_push_align(ndr, 4));
11119 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
11120 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
11128 if (ndr_flags & NDR_BUFFERS) {
11129 int level = ndr_push_get_switch_value(ndr, r);
11130 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
11140 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
11141 return NDR_ERR_SUCCESS;
11144 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorDirectoryInfo *r)
11146 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
11148 level = ndr_pull_get_switch_value(ndr, r);
11149 if (ndr_flags & NDR_SCALARS) {
11152 NDR_CHECK(ndr_pull_align(ndr, 4));
11153 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
11154 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
11162 if (ndr_flags & NDR_BUFFERS) {
11163 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
11173 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
11174 return NDR_ERR_SUCCESS;
11177 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorDirectoryInfo *r)
11180 level = ndr_print_get_switch_value(ndr, r);
11181 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorDirectoryInfo");
11184 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
11193 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
11195 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo, ic);
11198 static enum ndr_err_code ndr_push_spoolss_DocumentInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DocumentInfo1 *r)
11200 if (ndr_flags & NDR_SCALARS) {
11201 NDR_CHECK(ndr_push_align(ndr, 4));
11202 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
11203 NDR_CHECK(ndr_push_unique_ptr(ndr, r->output_file));
11204 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
11206 if (ndr_flags & NDR_BUFFERS) {
11207 if (r->document_name) {
11208 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
11209 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11210 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
11211 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11213 if (r->output_file) {
11214 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
11215 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11216 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
11217 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->output_file, ndr_charset_length(r->output_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11220 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
11221 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11222 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
11223 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11226 return NDR_ERR_SUCCESS;
11229 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DocumentInfo1 *r)
11231 uint32_t _ptr_document_name;
11232 TALLOC_CTX *_mem_save_document_name_0;
11233 uint32_t _ptr_output_file;
11234 TALLOC_CTX *_mem_save_output_file_0;
11235 uint32_t _ptr_datatype;
11236 TALLOC_CTX *_mem_save_datatype_0;
11237 if (ndr_flags & NDR_SCALARS) {
11238 NDR_CHECK(ndr_pull_align(ndr, 4));
11239 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
11240 if (_ptr_document_name) {
11241 NDR_PULL_ALLOC(ndr, r->document_name);
11243 r->document_name = NULL;
11245 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_output_file));
11246 if (_ptr_output_file) {
11247 NDR_PULL_ALLOC(ndr, r->output_file);
11249 r->output_file = NULL;
11251 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
11252 if (_ptr_datatype) {
11253 NDR_PULL_ALLOC(ndr, r->datatype);
11255 r->datatype = NULL;
11258 if (ndr_flags & NDR_BUFFERS) {
11259 if (r->document_name) {
11260 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11261 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
11262 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
11263 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
11264 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
11265 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));
11267 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
11268 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
11269 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
11271 if (r->output_file) {
11272 _mem_save_output_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11273 NDR_PULL_SET_MEM_CTX(ndr, r->output_file, 0);
11274 NDR_CHECK(ndr_pull_array_size(ndr, &r->output_file));
11275 NDR_CHECK(ndr_pull_array_length(ndr, &r->output_file));
11276 if (ndr_get_array_length(ndr, &r->output_file) > ndr_get_array_size(ndr, &r->output_file)) {
11277 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));
11279 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t)));
11280 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->output_file, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t), CH_UTF16));
11281 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_output_file_0, 0);
11284 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11285 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
11286 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
11287 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
11288 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
11289 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));
11291 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
11292 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
11293 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
11296 return NDR_ERR_SUCCESS;
11299 _PUBLIC_ void ndr_print_spoolss_DocumentInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DocumentInfo1 *r)
11301 ndr_print_struct(ndr, name, "spoolss_DocumentInfo1");
11303 ndr_print_ptr(ndr, "document_name", r->document_name);
11305 if (r->document_name) {
11306 ndr_print_string(ndr, "document_name", r->document_name);
11309 ndr_print_ptr(ndr, "output_file", r->output_file);
11311 if (r->output_file) {
11312 ndr_print_string(ndr, "output_file", r->output_file);
11315 ndr_print_ptr(ndr, "datatype", r->datatype);
11318 ndr_print_string(ndr, "datatype", r->datatype);
11324 static enum ndr_err_code ndr_push_spoolss_DocumentInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DocumentInfo *r)
11326 if (ndr_flags & NDR_SCALARS) {
11327 int level = ndr_push_get_switch_value(ndr, r);
11328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
11331 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
11345 if (ndr_flags & NDR_BUFFERS) {
11346 int level = ndr_push_get_switch_value(ndr, r);
11350 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
11365 return NDR_ERR_SUCCESS;
11368 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DocumentInfo *r)
11372 TALLOC_CTX *_mem_save_info1_0;
11373 level = ndr_pull_get_switch_value(ndr, r);
11374 if (ndr_flags & NDR_SCALARS) {
11375 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
11376 if (_level != level) {
11377 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
11381 uint32_t _ptr_info1;
11382 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
11384 NDR_PULL_ALLOC(ndr, r->info1);
11401 if (ndr_flags & NDR_BUFFERS) {
11405 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
11406 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
11407 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
11408 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
11423 return NDR_ERR_SUCCESS;
11426 _PUBLIC_ void ndr_print_spoolss_DocumentInfo(struct ndr_print *ndr, const char *name, const union spoolss_DocumentInfo *r)
11429 level = ndr_print_get_switch_value(ndr, r);
11430 ndr_print_union(ndr, name, level, "spoolss_DocumentInfo");
11433 ndr_print_ptr(ndr, "info1", r->info1);
11436 ndr_print_spoolss_DocumentInfo1(ndr, "info1", r->info1);
11453 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersion(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersion *r)
11455 if (ndr_flags & NDR_SCALARS) {
11456 NDR_CHECK(ndr_push_align(ndr, 4));
11457 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersion(r, ndr->iconv_convenience, ndr->flags)));
11458 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
11459 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
11460 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
11461 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
11463 uint32_t _flags_save_string = ndr->flags;
11464 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11466 struct ndr_push *_ndr_extra_string;
11467 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
11468 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
11469 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
11471 ndr->flags = _flags_save_string;
11474 if (ndr_flags & NDR_BUFFERS) {
11476 return NDR_ERR_SUCCESS;
11479 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersion(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersion *r)
11481 if (ndr_flags & NDR_SCALARS) {
11482 NDR_CHECK(ndr_pull_align(ndr, 4));
11483 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
11484 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
11485 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
11486 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
11487 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
11489 uint32_t _flags_save_string = ndr->flags;
11490 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11492 struct ndr_pull *_ndr_extra_string;
11493 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
11494 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
11495 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
11497 ndr->flags = _flags_save_string;
11500 if (ndr_flags & NDR_BUFFERS) {
11502 return NDR_ERR_SUCCESS;
11505 _PUBLIC_ void ndr_print_spoolss_OSVersion(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersion *r)
11507 ndr_print_struct(ndr, name, "spoolss_OSVersion");
11509 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);
11510 ndr_print_uint32(ndr, "major", r->major);
11511 ndr_print_uint32(ndr, "minor", r->minor);
11512 ndr_print_uint32(ndr, "build", r->build);
11513 ndr_print_uint32(ndr, "unknown", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown);
11514 ndr_print_string(ndr, "extra_string", r->extra_string);
11518 _PUBLIC_ size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion *r, struct smb_iconv_convenience *ic, int flags)
11520 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion, ic);
11523 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersionEx(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersionEx *r)
11525 if (ndr_flags & NDR_SCALARS) {
11526 NDR_CHECK(ndr_push_align(ndr, 4));
11527 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersionEx(r, ndr->iconv_convenience, ndr->flags)));
11528 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
11529 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
11530 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
11531 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
11533 uint32_t _flags_save_string = ndr->flags;
11534 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11536 struct ndr_push *_ndr_extra_string;
11537 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
11538 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
11539 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
11541 ndr->flags = _flags_save_string;
11543 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
11544 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
11546 if (ndr_flags & NDR_BUFFERS) {
11548 return NDR_ERR_SUCCESS;
11551 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersionEx(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersionEx *r)
11553 if (ndr_flags & NDR_SCALARS) {
11554 NDR_CHECK(ndr_pull_align(ndr, 4));
11555 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
11556 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
11557 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
11558 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
11559 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
11561 uint32_t _flags_save_string = ndr->flags;
11562 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11564 struct ndr_pull *_ndr_extra_string;
11565 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
11566 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
11567 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
11569 ndr->flags = _flags_save_string;
11571 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
11572 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
11574 if (ndr_flags & NDR_BUFFERS) {
11576 return NDR_ERR_SUCCESS;
11579 _PUBLIC_ void ndr_print_spoolss_OSVersionEx(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersionEx *r)
11581 ndr_print_struct(ndr, name, "spoolss_OSVersionEx");
11583 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);
11584 ndr_print_uint32(ndr, "major", r->major);
11585 ndr_print_uint32(ndr, "minor", r->minor);
11586 ndr_print_uint32(ndr, "build", r->build);
11587 ndr_print_uint32(ndr, "unknown1", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown1);
11588 ndr_print_string(ndr, "extra_string", r->extra_string);
11589 ndr_print_uint32(ndr, "unknown2", r->unknown2);
11590 ndr_print_uint32(ndr, "unknown3", r->unknown3);
11594 _PUBLIC_ size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx *r, struct smb_iconv_convenience *ic, int flags)
11596 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx, ic);
11599 static enum ndr_err_code ndr_push_spoolss_PrinterDataType(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterDataType r)
11601 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
11602 return NDR_ERR_SUCCESS;
11605 static enum ndr_err_code ndr_pull_spoolss_PrinterDataType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterDataType *r)
11608 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
11610 return NDR_ERR_SUCCESS;
11613 _PUBLIC_ void ndr_print_spoolss_PrinterDataType(struct ndr_print *ndr, const char *name, enum spoolss_PrinterDataType r)
11615 const char *val = NULL;
11618 case SPOOLSS_PRINTER_DATA_TYPE_NULL: val = "SPOOLSS_PRINTER_DATA_TYPE_NULL"; break;
11619 case SPOOLSS_PRINTER_DATA_TYPE_STRING: val = "SPOOLSS_PRINTER_DATA_TYPE_STRING"; break;
11620 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: val = "SPOOLSS_PRINTER_DATA_TYPE_BINARY"; break;
11621 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: val = "SPOOLSS_PRINTER_DATA_TYPE_UINT32"; break;
11622 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: val = "SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY"; break;
11624 ndr_print_enum(ndr, name, "ENUM", val, r);
11627 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterData *r)
11629 if (ndr_flags & NDR_SCALARS) {
11630 int level = ndr_push_get_switch_value(ndr, r);
11632 case SPOOLSS_PRINTER_DATA_TYPE_NULL: {
11635 case SPOOLSS_PRINTER_DATA_TYPE_STRING: {
11637 uint32_t _flags_save_string = ndr->flags;
11638 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11639 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
11640 ndr->flags = _flags_save_string;
11644 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: {
11646 uint32_t _flags_save_DATA_BLOB = ndr->flags;
11647 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
11648 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
11649 ndr->flags = _flags_save_DATA_BLOB;
11653 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: {
11654 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
11657 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: {
11659 uint32_t _flags_save_string_array = ndr->flags;
11660 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11661 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
11662 ndr->flags = _flags_save_string_array;
11668 uint32_t _flags_save_DATA_BLOB = ndr->flags;
11669 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
11670 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
11671 ndr->flags = _flags_save_DATA_BLOB;
11677 if (ndr_flags & NDR_BUFFERS) {
11678 int level = ndr_push_get_switch_value(ndr, r);
11680 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
11683 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
11686 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
11689 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
11692 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
11700 return NDR_ERR_SUCCESS;
11703 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterData *r)
11706 level = ndr_pull_get_switch_value(ndr, r);
11707 if (ndr_flags & NDR_SCALARS) {
11709 case SPOOLSS_PRINTER_DATA_TYPE_NULL: {
11712 case SPOOLSS_PRINTER_DATA_TYPE_STRING: {
11714 uint32_t _flags_save_string = ndr->flags;
11715 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11716 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
11717 ndr->flags = _flags_save_string;
11721 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: {
11723 uint32_t _flags_save_DATA_BLOB = ndr->flags;
11724 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
11725 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
11726 ndr->flags = _flags_save_DATA_BLOB;
11730 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: {
11731 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
11734 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: {
11736 uint32_t _flags_save_string_array = ndr->flags;
11737 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11738 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
11739 ndr->flags = _flags_save_string_array;
11745 uint32_t _flags_save_DATA_BLOB = ndr->flags;
11746 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
11747 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
11748 ndr->flags = _flags_save_DATA_BLOB;
11754 if (ndr_flags & NDR_BUFFERS) {
11756 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
11759 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
11762 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
11765 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
11768 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
11776 return NDR_ERR_SUCCESS;
11779 _PUBLIC_ void ndr_print_spoolss_PrinterData(struct ndr_print *ndr, const char *name, const union spoolss_PrinterData *r)
11782 level = ndr_print_get_switch_value(ndr, r);
11783 ndr_print_union(ndr, name, level, "spoolss_PrinterData");
11785 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
11788 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
11789 ndr_print_string(ndr, "string", r->string);
11792 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
11793 ndr_print_DATA_BLOB(ndr, "binary", r->binary);
11796 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
11797 ndr_print_uint32(ndr, "value", r->value);
11800 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
11801 ndr_print_string_array(ndr, "string_array", r->string_array);
11805 ndr_print_DATA_BLOB(ndr, "data", r->data);
11811 _PUBLIC_ size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
11813 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterData, ic);
11816 static enum ndr_err_code ndr_push_spoolss_FormFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_FormFlags r)
11818 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
11819 return NDR_ERR_SUCCESS;
11822 static enum ndr_err_code ndr_pull_spoolss_FormFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_FormFlags *r)
11825 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
11827 return NDR_ERR_SUCCESS;
11830 _PUBLIC_ void ndr_print_spoolss_FormFlags(struct ndr_print *ndr, const char *name, enum spoolss_FormFlags r)
11832 const char *val = NULL;
11835 case SPOOLSS_FORM_USER: val = "SPOOLSS_FORM_USER"; break;
11836 case SPOOLSS_FORM_BUILTIN: val = "SPOOLSS_FORM_BUILTIN"; break;
11837 case SPOOLSS_FORM_PRINTER: val = "SPOOLSS_FORM_PRINTER"; break;
11839 ndr_print_enum(ndr, name, "ENUM", val, r);
11842 static enum ndr_err_code ndr_push_spoolss_FormSize(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormSize *r)
11844 if (ndr_flags & NDR_SCALARS) {
11845 NDR_CHECK(ndr_push_align(ndr, 4));
11846 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->width));
11847 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->height));
11849 if (ndr_flags & NDR_BUFFERS) {
11851 return NDR_ERR_SUCCESS;
11854 static enum ndr_err_code ndr_pull_spoolss_FormSize(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormSize *r)
11856 if (ndr_flags & NDR_SCALARS) {
11857 NDR_CHECK(ndr_pull_align(ndr, 4));
11858 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->width));
11859 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->height));
11861 if (ndr_flags & NDR_BUFFERS) {
11863 return NDR_ERR_SUCCESS;
11866 _PUBLIC_ void ndr_print_spoolss_FormSize(struct ndr_print *ndr, const char *name, const struct spoolss_FormSize *r)
11868 ndr_print_struct(ndr, name, "spoolss_FormSize");
11870 ndr_print_uint32(ndr, "width", r->width);
11871 ndr_print_uint32(ndr, "height", r->height);
11875 static enum ndr_err_code ndr_push_spoolss_FormArea(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormArea *r)
11877 if (ndr_flags & NDR_SCALARS) {
11878 NDR_CHECK(ndr_push_align(ndr, 4));
11879 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->left));
11880 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->top));
11881 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->right));
11882 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bottom));
11884 if (ndr_flags & NDR_BUFFERS) {
11886 return NDR_ERR_SUCCESS;
11889 static enum ndr_err_code ndr_pull_spoolss_FormArea(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormArea *r)
11891 if (ndr_flags & NDR_SCALARS) {
11892 NDR_CHECK(ndr_pull_align(ndr, 4));
11893 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->left));
11894 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->top));
11895 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->right));
11896 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bottom));
11898 if (ndr_flags & NDR_BUFFERS) {
11900 return NDR_ERR_SUCCESS;
11903 _PUBLIC_ void ndr_print_spoolss_FormArea(struct ndr_print *ndr, const char *name, const struct spoolss_FormArea *r)
11905 ndr_print_struct(ndr, name, "spoolss_FormArea");
11907 ndr_print_uint32(ndr, "left", r->left);
11908 ndr_print_uint32(ndr, "top", r->top);
11909 ndr_print_uint32(ndr, "right", r->right);
11910 ndr_print_uint32(ndr, "bottom", r->bottom);
11914 static enum ndr_err_code ndr_push_spoolss_FormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo1 *r)
11916 if (ndr_flags & NDR_SCALARS) {
11917 NDR_CHECK(ndr_push_align(ndr, 4));
11918 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
11920 uint32_t _flags_save_string = ndr->flags;
11921 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11922 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
11923 ndr->flags = _flags_save_string;
11925 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
11926 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
11928 if (ndr_flags & NDR_BUFFERS) {
11930 uint32_t _flags_save_string = ndr->flags;
11931 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11932 if (r->form_name) {
11933 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
11934 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
11936 ndr->flags = _flags_save_string;
11939 return NDR_ERR_SUCCESS;
11942 static enum ndr_err_code ndr_pull_spoolss_FormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo1 *r)
11944 uint32_t _ptr_form_name;
11945 TALLOC_CTX *_mem_save_form_name_0;
11946 if (ndr_flags & NDR_SCALARS) {
11947 NDR_CHECK(ndr_pull_align(ndr, 4));
11948 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
11950 uint32_t _flags_save_string = ndr->flags;
11951 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11952 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
11953 if (_ptr_form_name) {
11954 NDR_PULL_ALLOC(ndr, r->form_name);
11955 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
11957 r->form_name = NULL;
11959 ndr->flags = _flags_save_string;
11961 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
11962 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
11964 if (ndr_flags & NDR_BUFFERS) {
11966 uint32_t _flags_save_string = ndr->flags;
11967 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11968 if (r->form_name) {
11969 uint32_t _relative_save_offset;
11970 _relative_save_offset = ndr->offset;
11971 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
11972 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11973 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
11974 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
11975 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
11976 ndr->offset = _relative_save_offset;
11978 ndr->flags = _flags_save_string;
11981 return NDR_ERR_SUCCESS;
11984 _PUBLIC_ void ndr_print_spoolss_FormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo1 *r)
11986 ndr_print_struct(ndr, name, "spoolss_FormInfo1");
11988 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
11989 ndr_print_ptr(ndr, "form_name", r->form_name);
11991 if (r->form_name) {
11992 ndr_print_string(ndr, "form_name", r->form_name);
11995 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
11996 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
12000 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_FormInfo *r)
12002 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
12003 if (ndr_flags & NDR_SCALARS) {
12004 int level = ndr_push_get_switch_value(ndr, r);
12007 NDR_CHECK(ndr_push_align(ndr, 4));
12008 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
12009 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
12017 if (ndr_flags & NDR_BUFFERS) {
12018 int level = ndr_push_get_switch_value(ndr, r);
12019 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
12022 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
12030 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
12031 return NDR_ERR_SUCCESS;
12034 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_FormInfo *r)
12036 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
12038 level = ndr_pull_get_switch_value(ndr, r);
12039 if (ndr_flags & NDR_SCALARS) {
12042 NDR_CHECK(ndr_pull_align(ndr, 4));
12043 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
12044 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
12052 if (ndr_flags & NDR_BUFFERS) {
12053 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
12056 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
12064 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
12065 return NDR_ERR_SUCCESS;
12068 _PUBLIC_ void ndr_print_spoolss_FormInfo(struct ndr_print *ndr, const char *name, const union spoolss_FormInfo *r)
12071 level = ndr_print_get_switch_value(ndr, r);
12072 ndr_print_union(ndr, name, level, "spoolss_FormInfo");
12075 ndr_print_spoolss_FormInfo1(ndr, "info1", &r->info1);
12084 _PUBLIC_ size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
12086 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo, ic);
12089 static enum ndr_err_code ndr_push_spoolss_AddFormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo1 *r)
12091 if (ndr_flags & NDR_SCALARS) {
12092 NDR_CHECK(ndr_push_align(ndr, 4));
12093 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
12094 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
12095 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
12096 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
12098 if (ndr_flags & NDR_BUFFERS) {
12099 if (r->form_name) {
12100 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
12101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12102 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
12103 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12106 return NDR_ERR_SUCCESS;
12109 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo1 *r)
12111 uint32_t _ptr_form_name;
12112 TALLOC_CTX *_mem_save_form_name_0;
12113 if (ndr_flags & NDR_SCALARS) {
12114 NDR_CHECK(ndr_pull_align(ndr, 4));
12115 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
12116 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
12117 if (_ptr_form_name) {
12118 NDR_PULL_ALLOC(ndr, r->form_name);
12120 r->form_name = NULL;
12122 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
12123 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
12125 if (ndr_flags & NDR_BUFFERS) {
12126 if (r->form_name) {
12127 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12128 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
12129 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
12130 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
12131 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
12132 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));
12134 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
12135 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
12136 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
12139 return NDR_ERR_SUCCESS;
12142 _PUBLIC_ void ndr_print_spoolss_AddFormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo1 *r)
12144 ndr_print_struct(ndr, name, "spoolss_AddFormInfo1");
12146 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
12147 ndr_print_ptr(ndr, "form_name", r->form_name);
12149 if (r->form_name) {
12150 ndr_print_string(ndr, "form_name", r->form_name);
12153 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
12154 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
12158 static enum ndr_err_code ndr_push_spoolss_AddFormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddFormInfo *r)
12160 if (ndr_flags & NDR_SCALARS) {
12161 int level = ndr_push_get_switch_value(ndr, r);
12162 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
12165 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
12169 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
12172 if (ndr_flags & NDR_BUFFERS) {
12173 int level = ndr_push_get_switch_value(ndr, r);
12177 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
12182 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
12185 return NDR_ERR_SUCCESS;
12188 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddFormInfo *r)
12192 TALLOC_CTX *_mem_save_info1_0;
12193 level = ndr_pull_get_switch_value(ndr, r);
12194 if (ndr_flags & NDR_SCALARS) {
12195 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
12196 if (_level != level) {
12197 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
12201 uint32_t _ptr_info1;
12202 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
12204 NDR_PULL_ALLOC(ndr, r->info1);
12211 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
12214 if (ndr_flags & NDR_BUFFERS) {
12218 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
12219 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
12220 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
12221 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
12226 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
12229 return NDR_ERR_SUCCESS;
12232 _PUBLIC_ void ndr_print_spoolss_AddFormInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddFormInfo *r)
12235 level = ndr_print_get_switch_value(ndr, r);
12236 ndr_print_union(ndr, name, level, "spoolss_AddFormInfo");
12239 ndr_print_ptr(ndr, "info1", r->info1);
12242 ndr_print_spoolss_AddFormInfo1(ndr, "info1", r->info1);
12248 ndr_print_bad_level(ndr, name, level);
12252 static enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo1 *r)
12254 if (ndr_flags & NDR_SCALARS) {
12255 NDR_CHECK(ndr_push_align(ndr, 4));
12257 uint32_t _flags_save_string = ndr->flags;
12258 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12259 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
12260 ndr->flags = _flags_save_string;
12263 if (ndr_flags & NDR_BUFFERS) {
12265 uint32_t _flags_save_string = ndr->flags;
12266 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12267 if (r->port_name) {
12268 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
12269 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
12271 ndr->flags = _flags_save_string;
12274 return NDR_ERR_SUCCESS;
12277 static enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo1 *r)
12279 uint32_t _ptr_port_name;
12280 TALLOC_CTX *_mem_save_port_name_0;
12281 if (ndr_flags & NDR_SCALARS) {
12282 NDR_CHECK(ndr_pull_align(ndr, 4));
12284 uint32_t _flags_save_string = ndr->flags;
12285 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12286 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
12287 if (_ptr_port_name) {
12288 NDR_PULL_ALLOC(ndr, r->port_name);
12289 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
12291 r->port_name = NULL;
12293 ndr->flags = _flags_save_string;
12296 if (ndr_flags & NDR_BUFFERS) {
12298 uint32_t _flags_save_string = ndr->flags;
12299 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12300 if (r->port_name) {
12301 uint32_t _relative_save_offset;
12302 _relative_save_offset = ndr->offset;
12303 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
12304 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12305 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
12306 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
12307 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
12308 ndr->offset = _relative_save_offset;
12310 ndr->flags = _flags_save_string;
12313 return NDR_ERR_SUCCESS;
12316 _PUBLIC_ void ndr_print_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo1 *r)
12318 ndr_print_struct(ndr, name, "spoolss_PortInfo1");
12320 ndr_print_ptr(ndr, "port_name", r->port_name);
12322 if (r->port_name) {
12323 ndr_print_string(ndr, "port_name", r->port_name);
12329 static enum ndr_err_code ndr_push_spoolss_PortType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
12331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
12332 return NDR_ERR_SUCCESS;
12335 static enum ndr_err_code ndr_pull_spoolss_PortType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
12338 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
12340 return NDR_ERR_SUCCESS;
12343 _PUBLIC_ void ndr_print_spoolss_PortType(struct ndr_print *ndr, const char *name, uint32_t r)
12345 ndr_print_uint32(ndr, name, r);
12347 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE, r);
12348 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ, r);
12349 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED, r);
12350 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED, r);
12354 static enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo2 *r)
12356 if (ndr_flags & NDR_SCALARS) {
12357 NDR_CHECK(ndr_push_align(ndr, 4));
12359 uint32_t _flags_save_string = ndr->flags;
12360 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12361 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
12362 ndr->flags = _flags_save_string;
12365 uint32_t _flags_save_string = ndr->flags;
12366 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12367 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12368 ndr->flags = _flags_save_string;
12371 uint32_t _flags_save_string = ndr->flags;
12372 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12373 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
12374 ndr->flags = _flags_save_string;
12376 NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
12377 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
12379 if (ndr_flags & NDR_BUFFERS) {
12381 uint32_t _flags_save_string = ndr->flags;
12382 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12383 if (r->port_name) {
12384 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
12385 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
12387 ndr->flags = _flags_save_string;
12390 uint32_t _flags_save_string = ndr->flags;
12391 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12392 if (r->monitor_name) {
12393 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
12394 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12396 ndr->flags = _flags_save_string;
12399 uint32_t _flags_save_string = ndr->flags;
12400 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12401 if (r->description) {
12402 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
12403 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
12405 ndr->flags = _flags_save_string;
12408 return NDR_ERR_SUCCESS;
12411 static enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo2 *r)
12413 uint32_t _ptr_port_name;
12414 TALLOC_CTX *_mem_save_port_name_0;
12415 uint32_t _ptr_monitor_name;
12416 TALLOC_CTX *_mem_save_monitor_name_0;
12417 uint32_t _ptr_description;
12418 TALLOC_CTX *_mem_save_description_0;
12419 if (ndr_flags & NDR_SCALARS) {
12420 NDR_CHECK(ndr_pull_align(ndr, 4));
12422 uint32_t _flags_save_string = ndr->flags;
12423 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12424 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
12425 if (_ptr_port_name) {
12426 NDR_PULL_ALLOC(ndr, r->port_name);
12427 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
12429 r->port_name = NULL;
12431 ndr->flags = _flags_save_string;
12434 uint32_t _flags_save_string = ndr->flags;
12435 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12436 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12437 if (_ptr_monitor_name) {
12438 NDR_PULL_ALLOC(ndr, r->monitor_name);
12439 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12441 r->monitor_name = NULL;
12443 ndr->flags = _flags_save_string;
12446 uint32_t _flags_save_string = ndr->flags;
12447 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12448 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
12449 if (_ptr_description) {
12450 NDR_PULL_ALLOC(ndr, r->description);
12451 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
12453 r->description = NULL;
12455 ndr->flags = _flags_save_string;
12457 NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
12458 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
12460 if (ndr_flags & NDR_BUFFERS) {
12462 uint32_t _flags_save_string = ndr->flags;
12463 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12464 if (r->port_name) {
12465 uint32_t _relative_save_offset;
12466 _relative_save_offset = ndr->offset;
12467 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
12468 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12469 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
12470 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
12471 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
12472 ndr->offset = _relative_save_offset;
12474 ndr->flags = _flags_save_string;
12477 uint32_t _flags_save_string = ndr->flags;
12478 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12479 if (r->monitor_name) {
12480 uint32_t _relative_save_offset;
12481 _relative_save_offset = ndr->offset;
12482 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12483 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12484 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12485 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12486 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12487 ndr->offset = _relative_save_offset;
12489 ndr->flags = _flags_save_string;
12492 uint32_t _flags_save_string = ndr->flags;
12493 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12494 if (r->description) {
12495 uint32_t _relative_save_offset;
12496 _relative_save_offset = ndr->offset;
12497 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
12498 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
12499 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
12500 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
12501 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
12502 ndr->offset = _relative_save_offset;
12504 ndr->flags = _flags_save_string;
12507 return NDR_ERR_SUCCESS;
12510 _PUBLIC_ void ndr_print_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo2 *r)
12512 ndr_print_struct(ndr, name, "spoolss_PortInfo2");
12514 ndr_print_ptr(ndr, "port_name", r->port_name);
12516 if (r->port_name) {
12517 ndr_print_string(ndr, "port_name", r->port_name);
12520 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12522 if (r->monitor_name) {
12523 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12526 ndr_print_ptr(ndr, "description", r->description);
12528 if (r->description) {
12529 ndr_print_string(ndr, "description", r->description);
12532 ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
12533 ndr_print_uint32(ndr, "reserved", r->reserved);
12537 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PortInfo *r)
12539 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
12540 if (ndr_flags & NDR_SCALARS) {
12541 int level = ndr_push_get_switch_value(ndr, r);
12544 NDR_CHECK(ndr_push_align(ndr, 4));
12545 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
12546 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
12550 NDR_CHECK(ndr_push_align(ndr, 4));
12551 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
12552 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
12563 if (ndr_flags & NDR_BUFFERS) {
12564 int level = ndr_push_get_switch_value(ndr, r);
12565 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
12568 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
12572 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
12583 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
12584 return NDR_ERR_SUCCESS;
12587 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PortInfo *r)
12589 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
12591 level = ndr_pull_get_switch_value(ndr, r);
12592 if (ndr_flags & NDR_SCALARS) {
12595 NDR_CHECK(ndr_pull_align(ndr, 4));
12596 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
12597 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
12601 NDR_CHECK(ndr_pull_align(ndr, 4));
12602 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
12603 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
12614 if (ndr_flags & NDR_BUFFERS) {
12615 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
12618 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
12622 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
12633 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
12634 return NDR_ERR_SUCCESS;
12637 _PUBLIC_ void ndr_print_spoolss_PortInfo(struct ndr_print *ndr, const char *name, const union spoolss_PortInfo *r)
12640 level = ndr_print_get_switch_value(ndr, r);
12641 ndr_print_union(ndr, name, level, "spoolss_PortInfo");
12644 ndr_print_spoolss_PortInfo1(ndr, "info1", &r->info1);
12648 ndr_print_spoolss_PortInfo2(ndr, "info2", &r->info2);
12660 static enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo1 *r)
12662 if (ndr_flags & NDR_SCALARS) {
12663 NDR_CHECK(ndr_push_align(ndr, 4));
12665 uint32_t _flags_save_string = ndr->flags;
12666 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12667 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12668 ndr->flags = _flags_save_string;
12671 if (ndr_flags & NDR_BUFFERS) {
12673 uint32_t _flags_save_string = ndr->flags;
12674 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12675 if (r->monitor_name) {
12676 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
12677 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12679 ndr->flags = _flags_save_string;
12682 return NDR_ERR_SUCCESS;
12685 static enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo1 *r)
12687 uint32_t _ptr_monitor_name;
12688 TALLOC_CTX *_mem_save_monitor_name_0;
12689 if (ndr_flags & NDR_SCALARS) {
12690 NDR_CHECK(ndr_pull_align(ndr, 4));
12692 uint32_t _flags_save_string = ndr->flags;
12693 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12694 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12695 if (_ptr_monitor_name) {
12696 NDR_PULL_ALLOC(ndr, r->monitor_name);
12697 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12699 r->monitor_name = NULL;
12701 ndr->flags = _flags_save_string;
12704 if (ndr_flags & NDR_BUFFERS) {
12706 uint32_t _flags_save_string = ndr->flags;
12707 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12708 if (r->monitor_name) {
12709 uint32_t _relative_save_offset;
12710 _relative_save_offset = ndr->offset;
12711 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12712 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12713 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12714 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12715 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12716 ndr->offset = _relative_save_offset;
12718 ndr->flags = _flags_save_string;
12721 return NDR_ERR_SUCCESS;
12724 _PUBLIC_ void ndr_print_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo1 *r)
12726 ndr_print_struct(ndr, name, "spoolss_MonitorInfo1");
12728 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12730 if (r->monitor_name) {
12731 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12737 static enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo2 *r)
12739 if (ndr_flags & NDR_SCALARS) {
12740 NDR_CHECK(ndr_push_align(ndr, 4));
12742 uint32_t _flags_save_string = ndr->flags;
12743 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12744 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12745 ndr->flags = _flags_save_string;
12748 uint32_t _flags_save_string = ndr->flags;
12749 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12750 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->environment));
12751 ndr->flags = _flags_save_string;
12754 uint32_t _flags_save_string = ndr->flags;
12755 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12756 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name));
12757 ndr->flags = _flags_save_string;
12760 if (ndr_flags & NDR_BUFFERS) {
12762 uint32_t _flags_save_string = ndr->flags;
12763 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12764 if (r->monitor_name) {
12765 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
12766 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12768 ndr->flags = _flags_save_string;
12771 uint32_t _flags_save_string = ndr->flags;
12772 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12773 if (r->environment) {
12774 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->environment));
12775 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
12777 ndr->flags = _flags_save_string;
12780 uint32_t _flags_save_string = ndr->flags;
12781 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12783 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dll_name));
12784 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
12786 ndr->flags = _flags_save_string;
12789 return NDR_ERR_SUCCESS;
12792 static enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo2 *r)
12794 uint32_t _ptr_monitor_name;
12795 TALLOC_CTX *_mem_save_monitor_name_0;
12796 uint32_t _ptr_environment;
12797 TALLOC_CTX *_mem_save_environment_0;
12798 uint32_t _ptr_dll_name;
12799 TALLOC_CTX *_mem_save_dll_name_0;
12800 if (ndr_flags & NDR_SCALARS) {
12801 NDR_CHECK(ndr_pull_align(ndr, 4));
12803 uint32_t _flags_save_string = ndr->flags;
12804 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12805 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12806 if (_ptr_monitor_name) {
12807 NDR_PULL_ALLOC(ndr, r->monitor_name);
12808 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12810 r->monitor_name = NULL;
12812 ndr->flags = _flags_save_string;
12815 uint32_t _flags_save_string = ndr->flags;
12816 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12817 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
12818 if (_ptr_environment) {
12819 NDR_PULL_ALLOC(ndr, r->environment);
12820 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->environment, _ptr_environment));
12822 r->environment = NULL;
12824 ndr->flags = _flags_save_string;
12827 uint32_t _flags_save_string = ndr->flags;
12828 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12829 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name));
12830 if (_ptr_dll_name) {
12831 NDR_PULL_ALLOC(ndr, r->dll_name);
12832 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dll_name, _ptr_dll_name));
12834 r->dll_name = NULL;
12836 ndr->flags = _flags_save_string;
12839 if (ndr_flags & NDR_BUFFERS) {
12841 uint32_t _flags_save_string = ndr->flags;
12842 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12843 if (r->monitor_name) {
12844 uint32_t _relative_save_offset;
12845 _relative_save_offset = ndr->offset;
12846 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12847 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12848 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12849 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12850 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12851 ndr->offset = _relative_save_offset;
12853 ndr->flags = _flags_save_string;
12856 uint32_t _flags_save_string = ndr->flags;
12857 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12858 if (r->environment) {
12859 uint32_t _relative_save_offset;
12860 _relative_save_offset = ndr->offset;
12861 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->environment));
12862 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
12863 NDR_PULL_SET_MEM_CTX(ndr, r->environment, 0);
12864 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
12865 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
12866 ndr->offset = _relative_save_offset;
12868 ndr->flags = _flags_save_string;
12871 uint32_t _flags_save_string = ndr->flags;
12872 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12874 uint32_t _relative_save_offset;
12875 _relative_save_offset = ndr->offset;
12876 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dll_name));
12877 _mem_save_dll_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12878 NDR_PULL_SET_MEM_CTX(ndr, r->dll_name, 0);
12879 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
12880 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dll_name_0, 0);
12881 ndr->offset = _relative_save_offset;
12883 ndr->flags = _flags_save_string;
12886 return NDR_ERR_SUCCESS;
12889 _PUBLIC_ void ndr_print_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo2 *r)
12891 ndr_print_struct(ndr, name, "spoolss_MonitorInfo2");
12893 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12895 if (r->monitor_name) {
12896 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12899 ndr_print_ptr(ndr, "environment", r->environment);
12901 if (r->environment) {
12902 ndr_print_string(ndr, "environment", r->environment);
12905 ndr_print_ptr(ndr, "dll_name", r->dll_name);
12908 ndr_print_string(ndr, "dll_name", r->dll_name);
12914 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_MonitorInfo *r)
12916 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
12917 if (ndr_flags & NDR_SCALARS) {
12918 int level = ndr_push_get_switch_value(ndr, r);
12921 NDR_CHECK(ndr_push_align(ndr, 4));
12922 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
12923 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
12927 NDR_CHECK(ndr_push_align(ndr, 4));
12928 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
12929 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
12937 if (ndr_flags & NDR_BUFFERS) {
12938 int level = ndr_push_get_switch_value(ndr, r);
12939 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
12942 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
12946 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
12954 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
12955 return NDR_ERR_SUCCESS;
12958 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_MonitorInfo *r)
12960 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
12962 level = ndr_pull_get_switch_value(ndr, r);
12963 if (ndr_flags & NDR_SCALARS) {
12966 NDR_CHECK(ndr_pull_align(ndr, 4));
12967 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
12968 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
12972 NDR_CHECK(ndr_pull_align(ndr, 4));
12973 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
12974 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
12982 if (ndr_flags & NDR_BUFFERS) {
12983 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
12986 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
12990 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
12998 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
12999 return NDR_ERR_SUCCESS;
13002 _PUBLIC_ void ndr_print_spoolss_MonitorInfo(struct ndr_print *ndr, const char *name, const union spoolss_MonitorInfo *r)
13005 level = ndr_print_get_switch_value(ndr, r);
13006 ndr_print_union(ndr, name, level, "spoolss_MonitorInfo");
13009 ndr_print_spoolss_MonitorInfo1(ndr, "info1", &r->info1);
13013 ndr_print_spoolss_MonitorInfo2(ndr, "info2", &r->info2);
13022 static enum ndr_err_code ndr_push_spoolss_PrinterChangeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
13024 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
13025 return NDR_ERR_SUCCESS;
13028 static enum ndr_err_code ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
13031 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
13033 return NDR_ERR_SUCCESS;
13036 _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
13038 ndr_print_uint32(ndr, name, r);
13040 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER, r);
13041 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER, r);
13042 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER, r);
13043 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, r);
13044 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB, r);
13045 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB, r);
13046 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB, r);
13047 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB, r);
13048 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM, r);
13049 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM, r);
13050 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM, r);
13051 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT, r);
13052 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT, r);
13053 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
13054 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
13055 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
13056 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
13057 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
13058 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
13059 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT, r);
13063 static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, int ndr_flags, enum spoolss_Field r)
13065 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
13066 return NDR_ERR_SUCCESS;
13069 static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, int ndr_flags, enum spoolss_Field *r)
13072 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
13074 return NDR_ERR_SUCCESS;
13077 _PUBLIC_ void ndr_print_spoolss_Field(struct ndr_print *ndr, const char *name, enum spoolss_Field r)
13079 const char *val = NULL;
13082 case SPOOLSS_FIELD_SERVER_NAME: val = "SPOOLSS_FIELD_SERVER_NAME"; break;
13083 case SPOOLSS_FIELD_PRINTER_NAME: val = "SPOOLSS_FIELD_PRINTER_NAME"; break;
13084 case SPOOLSS_FIELD_SHARE_NAME: val = "SPOOLSS_FIELD_SHARE_NAME"; break;
13085 case SPOOLSS_FIELD_PORT_NAME: val = "SPOOLSS_FIELD_PORT_NAME"; break;
13086 case SPOOLSS_FIELD_DRIVER_NAME: val = "SPOOLSS_FIELD_DRIVER_NAME"; break;
13087 case SPOOLSS_FIELD_COMMENT: val = "SPOOLSS_FIELD_COMMENT"; break;
13088 case SPOOLSS_FIELD_LOCATION: val = "SPOOLSS_FIELD_LOCATION"; break;
13089 case SPOOLSS_FIELD_DEVMODE: val = "SPOOLSS_FIELD_DEVMODE"; break;
13090 case SPOOLSS_FIELD_SEPFILE: val = "SPOOLSS_FIELD_SEPFILE"; break;
13091 case SPOOLSS_FIELD_PRINT_PROCESSOR: val = "SPOOLSS_FIELD_PRINT_PROCESSOR"; break;
13092 case SPOOLSS_FIELD_PARAMETERS: val = "SPOOLSS_FIELD_PARAMETERS"; break;
13093 case SPOOLSS_FIELD_DATATYPE: val = "SPOOLSS_FIELD_DATATYPE"; break;
13094 case SPOOLSS_FIELD_SECURITY_DESCRIPTOR: val = "SPOOLSS_FIELD_SECURITY_DESCRIPTOR"; break;
13095 case SPOOLSS_FIELD_ATTRIBUTES: val = "SPOOLSS_FIELD_ATTRIBUTES"; break;
13096 case SPOOLSS_FIELD_PRIORITY: val = "SPOOLSS_FIELD_PRIORITY"; break;
13097 case SPOOLSS_FIELD_DEFAULT_PRIORITY: val = "SPOOLSS_FIELD_DEFAULT_PRIORITY"; break;
13098 case SPOOLSS_FIELD_START_TIME: val = "SPOOLSS_FIELD_START_TIME"; break;
13099 case SPOOLSS_FIELD_UNTIL_TIME: val = "SPOOLSS_FIELD_UNTIL_TIME"; break;
13100 case SPOOLSS_FIELD_STATUS: val = "SPOOLSS_FIELD_STATUS"; break;
13101 case SPOOLSS_FIELD_STATUS_STRING: val = "SPOOLSS_FIELD_STATUS_STRING"; break;
13102 case SPOOLSS_FIELD_CJOBS: val = "SPOOLSS_FIELD_CJOBS"; break;
13103 case SPOOLSS_FIELD_AVERAGE_PPM: val = "SPOOLSS_FIELD_AVERAGE_PPM"; break;
13104 case SPOOLSS_FIELD_TOTAL_PAGES: val = "SPOOLSS_FIELD_TOTAL_PAGES"; break;
13105 case SPOOLSS_FIELD_PAGES_PRINTED: val = "SPOOLSS_FIELD_PAGES_PRINTED"; break;
13106 case SPOOLSS_FIELD_TOTAL_BYTES: val = "SPOOLSS_FIELD_TOTAL_BYTES"; break;
13107 case SPOOLSS_FIELD_BYTES_PRINTED: val = "SPOOLSS_FIELD_BYTES_PRINTED"; break;
13109 ndr_print_enum(ndr, name, "ENUM", val, r);
13112 static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyType r)
13114 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
13115 return NDR_ERR_SUCCESS;
13118 static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyType *r)
13121 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
13123 return NDR_ERR_SUCCESS;
13126 _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
13128 const char *val = NULL;
13131 case SPOOLSS_NOTIFY_PRINTER: val = "SPOOLSS_NOTIFY_PRINTER"; break;
13132 case SPOOLSS_NOTIFY_JOB: val = "SPOOLSS_NOTIFY_JOB"; break;
13134 ndr_print_enum(ndr, name, "ENUM", val, r);
13137 static enum ndr_err_code ndr_push_spoolss_NotifyOptionType(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOptionType *r)
13139 uint32_t cntr_fields_1;
13140 if (ndr_flags & NDR_SCALARS) {
13141 NDR_CHECK(ndr_push_align(ndr, 4));
13142 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
13143 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
13144 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
13145 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
13146 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13147 NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
13149 if (ndr_flags & NDR_BUFFERS) {
13151 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13152 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
13153 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, r->fields[cntr_fields_1]));
13157 return NDR_ERR_SUCCESS;
13160 static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionType *r)
13162 uint32_t _ptr_fields;
13163 uint32_t cntr_fields_1;
13164 TALLOC_CTX *_mem_save_fields_0;
13165 TALLOC_CTX *_mem_save_fields_1;
13166 if (ndr_flags & NDR_SCALARS) {
13167 NDR_CHECK(ndr_pull_align(ndr, 4));
13168 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
13169 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
13170 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
13171 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
13172 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
13173 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
13175 NDR_PULL_ALLOC(ndr, r->fields);
13180 if (ndr_flags & NDR_BUFFERS) {
13182 _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
13183 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
13184 NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
13185 NDR_PULL_ALLOC_N(ndr, r->fields, ndr_get_array_size(ndr, &r->fields));
13186 _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
13187 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
13188 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
13189 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
13191 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
13192 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
13195 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->fields, r->count));
13198 return NDR_ERR_SUCCESS;
13201 _PUBLIC_ void ndr_print_spoolss_NotifyOptionType(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionType *r)
13203 uint32_t cntr_fields_1;
13204 ndr_print_struct(ndr, name, "spoolss_NotifyOptionType");
13206 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
13207 ndr_print_uint16(ndr, "u1", r->u1);
13208 ndr_print_uint32(ndr, "u2", r->u2);
13209 ndr_print_uint32(ndr, "u3", r->u3);
13210 ndr_print_uint32(ndr, "count", r->count);
13211 ndr_print_ptr(ndr, "fields", r->fields);
13214 ndr->print(ndr, "%s: ARRAY(%d)", "fields", (int)r->count);
13216 for (cntr_fields_1=0;cntr_fields_1<r->count;cntr_fields_1++) {
13218 if (asprintf(&idx_1, "[%d]", cntr_fields_1) != -1) {
13219 ndr_print_spoolss_Field(ndr, "fields", r->fields[cntr_fields_1]);
13229 static enum ndr_err_code ndr_push_spoolss_NotifyOption(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOption *r)
13231 uint32_t cntr_types_1;
13232 if (ndr_flags & NDR_SCALARS) {
13233 NDR_CHECK(ndr_push_align(ndr, 4));
13234 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
13235 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
13236 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13237 NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
13239 if (ndr_flags & NDR_BUFFERS) {
13241 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13242 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
13243 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
13245 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
13246 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
13250 return NDR_ERR_SUCCESS;
13253 static enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOption *r)
13255 uint32_t _ptr_types;
13256 uint32_t cntr_types_1;
13257 TALLOC_CTX *_mem_save_types_0;
13258 TALLOC_CTX *_mem_save_types_1;
13259 if (ndr_flags & NDR_SCALARS) {
13260 NDR_CHECK(ndr_pull_align(ndr, 4));
13261 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
13262 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
13263 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
13264 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
13266 NDR_PULL_ALLOC(ndr, r->types);
13271 if (ndr_flags & NDR_BUFFERS) {
13273 _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
13274 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
13275 NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
13276 NDR_PULL_ALLOC_N(ndr, r->types, ndr_get_array_size(ndr, &r->types));
13277 _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
13278 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
13279 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
13280 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
13282 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
13283 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
13285 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
13286 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
13289 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
13292 return NDR_ERR_SUCCESS;
13295 _PUBLIC_ void ndr_print_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOption *r)
13297 uint32_t cntr_types_1;
13298 ndr_print_struct(ndr, name, "spoolss_NotifyOption");
13300 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
13301 ndr_print_uint32(ndr, "flags", r->flags);
13302 ndr_print_uint32(ndr, "count", r->count);
13303 ndr_print_ptr(ndr, "types", r->types);
13306 ndr->print(ndr, "%s: ARRAY(%d)", "types", (int)r->count);
13308 for (cntr_types_1=0;cntr_types_1<r->count;cntr_types_1++) {
13310 if (asprintf(&idx_1, "[%d]", cntr_types_1) != -1) {
13311 ndr_print_spoolss_NotifyOptionType(ndr, "types", &r->types[cntr_types_1]);
13321 static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyString *r)
13323 if (ndr_flags & NDR_SCALARS) {
13324 NDR_CHECK(ndr_push_align(ndr, 4));
13325 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
13326 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
13328 if (ndr_flags & NDR_BUFFERS) {
13330 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
13331 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
13334 return NDR_ERR_SUCCESS;
13337 static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyString *r)
13339 uint32_t _ptr_string;
13340 TALLOC_CTX *_mem_save_string_0;
13341 if (ndr_flags & NDR_SCALARS) {
13342 NDR_CHECK(ndr_pull_align(ndr, 4));
13343 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
13344 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
13346 NDR_PULL_ALLOC(ndr, r->string);
13351 if (ndr_flags & NDR_BUFFERS) {
13353 _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
13354 NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
13355 NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
13356 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_size(ndr, &r->string), sizeof(uint16_t), CH_UTF16));
13357 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
13360 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size / 2));
13363 return NDR_ERR_SUCCESS;
13366 _PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
13368 ndr_print_struct(ndr, name, "spoolss_NotifyString");
13370 ndr_print_uint32(ndr, "size", r->size);
13371 ndr_print_ptr(ndr, "string", r->string);
13374 ndr_print_string(ndr, "string", r->string);
13380 static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyTable r)
13382 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
13383 return NDR_ERR_SUCCESS;
13386 static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyTable *r)
13389 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
13391 return NDR_ERR_SUCCESS;
13394 _PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
13396 const char *val = NULL;
13399 case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
13400 case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
13401 case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
13402 case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
13403 case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
13405 ndr_print_enum(ndr, name, "ENUM", val, r);
13408 static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int ndr_flags, const union spoolss_NotifyData *r)
13410 if (ndr_flags & NDR_SCALARS) {
13411 int level = ndr_push_get_switch_value(ndr, r);
13412 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
13415 uint32_t cntr_integer_0;
13416 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
13417 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
13422 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
13426 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
13430 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
13434 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
13438 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13441 if (ndr_flags & NDR_BUFFERS) {
13442 int level = ndr_push_get_switch_value(ndr, r);
13448 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
13453 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
13458 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
13462 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
13466 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13469 return NDR_ERR_SUCCESS;
13472 static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int ndr_flags, union spoolss_NotifyData *r)
13476 TALLOC_CTX *_mem_save_devmode_0;
13477 level = ndr_pull_get_switch_value(ndr, r);
13478 if (ndr_flags & NDR_SCALARS) {
13479 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
13480 if (_level != level) {
13481 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
13485 uint32_t cntr_integer_0;
13486 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
13487 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
13492 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
13496 uint32_t _ptr_devmode;
13497 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
13498 if (_ptr_devmode) {
13499 NDR_PULL_ALLOC(ndr, r->devmode);
13506 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
13510 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
13514 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13517 if (ndr_flags & NDR_BUFFERS) {
13523 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
13528 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
13529 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
13530 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
13531 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
13536 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
13540 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
13544 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13547 return NDR_ERR_SUCCESS;
13550 _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
13553 uint32_t cntr_integer_0;
13554 level = ndr_print_get_switch_value(ndr, r);
13555 ndr_print_union(ndr, name, level, "spoolss_NotifyData");
13558 ndr->print(ndr, "%s: ARRAY(%d)", "integer", (int)2);
13560 for (cntr_integer_0=0;cntr_integer_0<2;cntr_integer_0++) {
13562 if (asprintf(&idx_0, "[%d]", cntr_integer_0) != -1) {
13563 ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
13571 ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
13575 ndr_print_ptr(ndr, "devmode", r->devmode);
13578 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
13584 ndr_print_spoolss_TimeCtr(ndr, "time", &r->time);
13588 ndr_print_sec_desc_buf(ndr, "sd", &r->sd);
13592 ndr_print_bad_level(ndr, name, level);
13596 static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Notify *r)
13598 if (ndr_flags & NDR_SCALARS) {
13599 NDR_CHECK(ndr_push_align(ndr, 4));
13600 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
13601 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, r->field));
13602 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr, NDR_SCALARS, r->variable_type));
13603 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
13604 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
13605 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
13607 if (ndr_flags & NDR_BUFFERS) {
13608 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
13610 return NDR_ERR_SUCCESS;
13613 static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Notify *r)
13615 if (ndr_flags & NDR_SCALARS) {
13616 NDR_CHECK(ndr_pull_align(ndr, 4));
13617 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
13618 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
13619 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr, NDR_SCALARS, &r->variable_type));
13620 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
13621 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
13622 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
13624 if (ndr_flags & NDR_BUFFERS) {
13625 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
13627 return NDR_ERR_SUCCESS;
13630 _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
13632 ndr_print_struct(ndr, name, "spoolss_Notify");
13634 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
13635 ndr_print_spoolss_Field(ndr, "field", r->field);
13636 ndr_print_spoolss_NotifyTable(ndr, "variable_type", r->variable_type);
13637 ndr_print_uint32(ndr, "job_id", r->job_id);
13638 ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
13639 ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
13643 static enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyInfo *r)
13645 uint32_t cntr_notifies_0;
13646 if (ndr_flags & NDR_SCALARS) {
13647 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13648 NDR_CHECK(ndr_push_align(ndr, 4));
13649 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
13650 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
13651 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13652 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
13653 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
13656 if (ndr_flags & NDR_BUFFERS) {
13657 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
13658 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
13661 return NDR_ERR_SUCCESS;
13664 static enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyInfo *r)
13666 uint32_t cntr_notifies_0;
13667 TALLOC_CTX *_mem_save_notifies_0;
13668 if (ndr_flags & NDR_SCALARS) {
13669 NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
13670 NDR_CHECK(ndr_pull_align(ndr, 4));
13671 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
13672 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
13673 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
13674 NDR_PULL_ALLOC_N(ndr, r->notifies, ndr_get_array_size(ndr, &r->notifies));
13675 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
13676 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
13677 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
13678 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
13680 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
13682 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
13685 if (ndr_flags & NDR_BUFFERS) {
13686 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
13687 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
13688 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
13689 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
13691 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
13693 return NDR_ERR_SUCCESS;
13696 _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
13698 uint32_t cntr_notifies_0;
13699 ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
13701 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
13702 ndr_print_uint32(ndr, "flags", r->flags);
13703 ndr_print_uint32(ndr, "count", r->count);
13704 ndr->print(ndr, "%s: ARRAY(%d)", "notifies", (int)r->count);
13706 for (cntr_notifies_0=0;cntr_notifies_0<r->count;cntr_notifies_0++) {
13708 if (asprintf(&idx_0, "[%d]", cntr_notifies_0) != -1) {
13709 ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
13717 static enum ndr_err_code ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_ReplyPrinterInfo *r)
13719 if (ndr_flags & NDR_SCALARS) {
13720 int level = ndr_push_get_switch_value(ndr, r);
13721 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
13724 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
13728 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13731 if (ndr_flags & NDR_BUFFERS) {
13732 int level = ndr_push_get_switch_value(ndr, r);
13736 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
13741 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13744 return NDR_ERR_SUCCESS;
13747 static enum ndr_err_code ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_ReplyPrinterInfo *r)
13751 TALLOC_CTX *_mem_save_info0_0;
13752 level = ndr_pull_get_switch_value(ndr, r);
13753 if (ndr_flags & NDR_SCALARS) {
13754 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
13755 if (_level != level) {
13756 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
13760 uint32_t _ptr_info0;
13761 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
13763 NDR_PULL_ALLOC(ndr, r->info0);
13770 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13773 if (ndr_flags & NDR_BUFFERS) {
13777 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
13778 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
13779 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
13780 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
13785 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13788 return NDR_ERR_SUCCESS;
13791 _PUBLIC_ void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_ReplyPrinterInfo *r)
13794 level = ndr_print_get_switch_value(ndr, r);
13795 ndr_print_union(ndr, name, level, "spoolss_ReplyPrinterInfo");
13798 ndr_print_ptr(ndr, "info0", r->info0);
13801 ndr_print_spoolss_NotifyInfo(ndr, "info0", r->info0);
13807 ndr_print_bad_level(ndr, name, level);
13811 static enum ndr_err_code ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
13813 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
13814 return NDR_ERR_SUCCESS;
13817 static enum ndr_err_code ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
13820 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
13822 return NDR_ERR_SUCCESS;
13825 _PUBLIC_ void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print *ndr, const char *name, uint32_t r)
13827 ndr_print_uint32(ndr, name, r);
13829 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED, r);
13830 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED, r);
13831 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH, r);
13835 static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel1 *r)
13837 if (ndr_flags & NDR_SCALARS) {
13838 NDR_CHECK(ndr_push_align(ndr, 4));
13839 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
13840 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
13841 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
13842 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
13843 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
13844 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
13845 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
13847 if (ndr_flags & NDR_BUFFERS) {
13849 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
13850 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13851 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
13852 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13855 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
13856 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13857 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
13858 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13861 return NDR_ERR_SUCCESS;
13864 static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel1 *r)
13866 uint32_t _ptr_client;
13867 TALLOC_CTX *_mem_save_client_0;
13868 uint32_t _ptr_user;
13869 TALLOC_CTX *_mem_save_user_0;
13870 if (ndr_flags & NDR_SCALARS) {
13871 NDR_CHECK(ndr_pull_align(ndr, 4));
13872 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
13873 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
13875 NDR_PULL_ALLOC(ndr, r->client);
13879 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
13881 NDR_PULL_ALLOC(ndr, r->user);
13885 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
13886 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
13887 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
13888 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
13890 if (ndr_flags & NDR_BUFFERS) {
13892 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
13893 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
13894 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
13895 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
13896 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
13897 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));
13899 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
13900 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
13901 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
13904 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
13905 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
13906 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
13907 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
13908 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
13909 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));
13911 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
13912 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
13913 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
13916 return NDR_ERR_SUCCESS;
13919 _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
13921 ndr_print_struct(ndr, name, "spoolss_UserLevel1");
13923 ndr_print_uint32(ndr, "size", r->size);
13924 ndr_print_ptr(ndr, "client", r->client);
13927 ndr_print_string(ndr, "client", r->client);
13930 ndr_print_ptr(ndr, "user", r->user);
13933 ndr_print_string(ndr, "user", r->user);
13936 ndr_print_uint32(ndr, "build", r->build);
13937 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
13938 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
13939 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
13943 static enum ndr_err_code ndr_push_spoolss_UserLevel2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel2 *r)
13945 if (ndr_flags & NDR_SCALARS) {
13946 NDR_CHECK(ndr_push_align(ndr, 4));
13947 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->not_used));
13949 if (ndr_flags & NDR_BUFFERS) {
13951 return NDR_ERR_SUCCESS;
13954 static enum ndr_err_code ndr_pull_spoolss_UserLevel2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel2 *r)
13956 if (ndr_flags & NDR_SCALARS) {
13957 NDR_CHECK(ndr_pull_align(ndr, 4));
13958 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->not_used));
13960 if (ndr_flags & NDR_BUFFERS) {
13962 return NDR_ERR_SUCCESS;
13965 _PUBLIC_ void ndr_print_spoolss_UserLevel2(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel2 *r)
13967 ndr_print_struct(ndr, name, "spoolss_UserLevel2");
13969 ndr_print_uint32(ndr, "not_used", r->not_used);
13973 static enum ndr_err_code ndr_push_spoolss_UserLevel3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel3 *r)
13975 if (ndr_flags & NDR_SCALARS) {
13976 NDR_CHECK(ndr_push_align(ndr, 4));
13977 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
13978 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
13979 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size2));
13980 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
13981 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
13982 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
13983 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
13984 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
13985 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
13986 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reserved));
13988 if (ndr_flags & NDR_BUFFERS) {
13990 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
13991 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13992 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
13993 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13996 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
13997 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13998 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
13999 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14002 return NDR_ERR_SUCCESS;
14005 static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel3 *r)
14007 uint32_t _ptr_client;
14008 TALLOC_CTX *_mem_save_client_0;
14009 uint32_t _ptr_user;
14010 TALLOC_CTX *_mem_save_user_0;
14011 if (ndr_flags & NDR_SCALARS) {
14012 NDR_CHECK(ndr_pull_align(ndr, 4));
14013 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
14014 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
14015 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size2));
14016 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
14018 NDR_PULL_ALLOC(ndr, r->client);
14022 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
14024 NDR_PULL_ALLOC(ndr, r->user);
14028 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
14029 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
14030 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
14031 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
14032 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reserved));
14034 if (ndr_flags & NDR_BUFFERS) {
14036 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
14037 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
14038 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
14039 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
14040 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
14041 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));
14043 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
14044 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
14045 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
14048 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
14049 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
14050 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
14051 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
14052 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
14053 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));
14055 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
14056 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
14057 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
14060 return NDR_ERR_SUCCESS;
14063 _PUBLIC_ void ndr_print_spoolss_UserLevel3(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel3 *r)
14065 ndr_print_struct(ndr, name, "spoolss_UserLevel3");
14067 ndr_print_uint32(ndr, "size", r->size);
14068 ndr_print_uint32(ndr, "flags", r->flags);
14069 ndr_print_uint32(ndr, "size2", r->size2);
14070 ndr_print_ptr(ndr, "client", r->client);
14073 ndr_print_string(ndr, "client", r->client);
14076 ndr_print_ptr(ndr, "user", r->user);
14079 ndr_print_string(ndr, "user", r->user);
14082 ndr_print_uint32(ndr, "build", r->build);
14083 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
14084 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
14085 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
14086 ndr_print_udlong(ndr, "reserved", r->reserved);
14090 static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, int ndr_flags, const union spoolss_UserLevel *r)
14092 if (ndr_flags & NDR_SCALARS) {
14093 int level = ndr_push_get_switch_value(ndr, r);
14094 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
14097 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
14101 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level2));
14105 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level3));
14109 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
14112 if (ndr_flags & NDR_BUFFERS) {
14113 int level = ndr_push_get_switch_value(ndr, r);
14117 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
14123 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
14129 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
14134 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
14137 return NDR_ERR_SUCCESS;
14140 static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, int ndr_flags, union spoolss_UserLevel *r)
14144 TALLOC_CTX *_mem_save_level1_0;
14145 TALLOC_CTX *_mem_save_level2_0;
14146 TALLOC_CTX *_mem_save_level3_0;
14147 level = ndr_pull_get_switch_value(ndr, r);
14148 if (ndr_flags & NDR_SCALARS) {
14149 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
14150 if (_level != level) {
14151 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
14155 uint32_t _ptr_level1;
14156 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
14158 NDR_PULL_ALLOC(ndr, r->level1);
14165 uint32_t _ptr_level2;
14166 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
14168 NDR_PULL_ALLOC(ndr, r->level2);
14175 uint32_t _ptr_level3;
14176 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
14178 NDR_PULL_ALLOC(ndr, r->level3);
14185 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
14188 if (ndr_flags & NDR_BUFFERS) {
14192 _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
14193 NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
14194 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
14195 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
14201 _mem_save_level2_0 = NDR_PULL_GET_MEM_CTX(ndr);
14202 NDR_PULL_SET_MEM_CTX(ndr, r->level2, 0);
14203 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
14204 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level2_0, 0);
14210 _mem_save_level3_0 = NDR_PULL_GET_MEM_CTX(ndr);
14211 NDR_PULL_SET_MEM_CTX(ndr, r->level3, 0);
14212 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
14213 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level3_0, 0);
14218 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
14221 return NDR_ERR_SUCCESS;
14224 _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
14227 level = ndr_print_get_switch_value(ndr, r);
14228 ndr_print_union(ndr, name, level, "spoolss_UserLevel");
14231 ndr_print_ptr(ndr, "level1", r->level1);
14234 ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
14240 ndr_print_ptr(ndr, "level2", r->level2);
14243 ndr_print_spoolss_UserLevel2(ndr, "level2", r->level2);
14249 ndr_print_ptr(ndr, "level3", r->level3);
14252 ndr_print_spoolss_UserLevel3(ndr, "level3", r->level3);
14258 ndr_print_bad_level(ndr, name, level);
14262 static enum ndr_err_code ndr_push_spoolss_UserLevelCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevelCtr *r)
14264 if (ndr_flags & NDR_SCALARS) {
14265 NDR_CHECK(ndr_push_align(ndr, 4));
14266 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
14267 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
14268 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
14270 if (ndr_flags & NDR_BUFFERS) {
14271 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
14273 return NDR_ERR_SUCCESS;
14276 static enum ndr_err_code ndr_pull_spoolss_UserLevelCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevelCtr *r)
14278 if (ndr_flags & NDR_SCALARS) {
14279 NDR_CHECK(ndr_pull_align(ndr, 4));
14280 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
14281 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
14282 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
14284 if (ndr_flags & NDR_BUFFERS) {
14285 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
14287 return NDR_ERR_SUCCESS;
14290 _PUBLIC_ void ndr_print_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevelCtr *r)
14292 ndr_print_struct(ndr, name, "spoolss_UserLevelCtr");
14294 ndr_print_uint32(ndr, "level", r->level);
14295 ndr_print_set_switch_value(ndr, &r->user_info, r->level);
14296 ndr_print_spoolss_UserLevel(ndr, "user_info", &r->user_info);
14300 static enum ndr_err_code ndr_push_spoolss_AccessRights(struct ndr_push *ndr, int ndr_flags, uint32_t r)
14302 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14303 return NDR_ERR_SUCCESS;
14306 static enum ndr_err_code ndr_pull_spoolss_AccessRights(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
14309 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14311 return NDR_ERR_SUCCESS;
14314 _PUBLIC_ void ndr_print_spoolss_AccessRights(struct ndr_print *ndr, const char *name, uint32_t r)
14316 ndr_print_uint32(ndr, name, r);
14318 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER, r);
14319 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE, r);
14320 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER, r);
14321 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE, r);
14322 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER, r);
14326 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
14328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14329 return NDR_ERR_SUCCESS;
14332 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
14335 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14337 return NDR_ERR_SUCCESS;
14340 _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
14342 ndr_print_uint32(ndr, name, r);
14344 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
14345 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
14346 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
14350 static enum ndr_err_code ndr_push_spoolss_PortProtocol(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortProtocol r)
14352 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14353 return NDR_ERR_SUCCESS;
14356 static enum ndr_err_code ndr_pull_spoolss_PortProtocol(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortProtocol *r)
14359 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14361 return NDR_ERR_SUCCESS;
14364 _PUBLIC_ void ndr_print_spoolss_PortProtocol(struct ndr_print *ndr, const char *name, enum spoolss_PortProtocol r)
14366 const char *val = NULL;
14369 case PROTOCOL_RAWTCP_TYPE: val = "PROTOCOL_RAWTCP_TYPE"; break;
14370 case PROTOCOL_LPR_TYPE: val = "PROTOCOL_LPR_TYPE"; break;
14372 ndr_print_enum(ndr, name, "ENUM", val, r);
14375 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData1 *r)
14377 if (ndr_flags & NDR_SCALARS) {
14378 NDR_CHECK(ndr_push_align(ndr, 4));
14379 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
14380 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
14381 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
14382 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
14383 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
14384 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
14385 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
14386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
14387 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
14388 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
14389 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
14390 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
14391 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
14392 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
14393 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
14395 if (ndr_flags & NDR_BUFFERS) {
14397 return NDR_ERR_SUCCESS;
14400 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData1 *r)
14402 if (ndr_flags & NDR_SCALARS) {
14403 NDR_CHECK(ndr_pull_align(ndr, 4));
14404 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
14405 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
14406 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
14407 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
14408 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
14409 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
14410 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
14411 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
14412 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
14413 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
14414 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
14415 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
14416 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
14417 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
14418 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
14420 if (ndr_flags & NDR_BUFFERS) {
14422 return NDR_ERR_SUCCESS;
14425 _PUBLIC_ void ndr_print_spoolss_PortData1(struct ndr_print *ndr, const char *name, const struct spoolss_PortData1 *r)
14427 ndr_print_struct(ndr, name, "spoolss_PortData1");
14429 ndr_print_string(ndr, "portname", r->portname);
14430 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000001:r->version);
14431 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
14432 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
14433 ndr_print_uint32(ndr, "reserved", r->reserved);
14434 ndr_print_string(ndr, "hostaddress", r->hostaddress);
14435 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
14436 ndr_print_uint32(ndr, "dblspool", r->dblspool);
14437 ndr_print_string(ndr, "queue", r->queue);
14438 ndr_print_string(ndr, "ip_address", r->ip_address);
14439 ndr_print_string(ndr, "hardware_address", r->hardware_address);
14440 ndr_print_string(ndr, "device_type", r->device_type);
14441 ndr_print_uint32(ndr, "port_number", r->port_number);
14442 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
14443 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
14447 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData2 *r)
14449 if (ndr_flags & NDR_SCALARS) {
14450 NDR_CHECK(ndr_push_align(ndr, 4));
14451 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
14452 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000002));
14453 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
14454 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
14455 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
14456 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
14457 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
14458 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
14459 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
14460 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
14461 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
14462 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
14463 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
14464 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_monitor_mib_index));
14466 if (ndr_flags & NDR_BUFFERS) {
14468 return NDR_ERR_SUCCESS;
14471 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData2 *r)
14473 if (ndr_flags & NDR_SCALARS) {
14474 NDR_CHECK(ndr_pull_align(ndr, 4));
14475 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
14476 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
14477 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
14478 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
14479 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
14480 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
14481 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
14482 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
14483 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
14484 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
14485 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
14486 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
14487 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
14488 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_monitor_mib_index));
14490 if (ndr_flags & NDR_BUFFERS) {
14492 return NDR_ERR_SUCCESS;
14495 _PUBLIC_ void ndr_print_spoolss_PortData2(struct ndr_print *ndr, const char *name, const struct spoolss_PortData2 *r)
14497 ndr_print_struct(ndr, name, "spoolss_PortData2");
14499 ndr_print_string(ndr, "portname", r->portname);
14500 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000002:r->version);
14501 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
14502 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
14503 ndr_print_uint32(ndr, "reserved", r->reserved);
14504 ndr_print_string(ndr, "hostaddress", r->hostaddress);
14505 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
14506 ndr_print_uint32(ndr, "dblspool", r->dblspool);
14507 ndr_print_string(ndr, "queue", r->queue);
14508 ndr_print_string(ndr, "device_type", r->device_type);
14509 ndr_print_uint32(ndr, "port_number", r->port_number);
14510 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
14511 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
14512 ndr_print_uint32(ndr, "port_monitor_mib_index", r->port_monitor_mib_index);
14516 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorUi(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorUi *r)
14518 if (ndr_flags & NDR_SCALARS) {
14519 NDR_CHECK(ndr_push_align(ndr, 4));
14521 uint32_t _flags_save_string = ndr->flags;
14522 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14523 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
14524 ndr->flags = _flags_save_string;
14527 if (ndr_flags & NDR_BUFFERS) {
14529 return NDR_ERR_SUCCESS;
14532 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorUi(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorUi *r)
14534 if (ndr_flags & NDR_SCALARS) {
14535 NDR_CHECK(ndr_pull_align(ndr, 4));
14537 uint32_t _flags_save_string = ndr->flags;
14538 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14539 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
14540 ndr->flags = _flags_save_string;
14543 if (ndr_flags & NDR_BUFFERS) {
14545 return NDR_ERR_SUCCESS;
14548 _PUBLIC_ void ndr_print_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorUi *r)
14550 ndr_print_struct(ndr, name, "spoolss_MonitorUi");
14552 ndr_print_string(ndr, "dll_name", r->dll_name);
14556 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
14558 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14559 return NDR_ERR_SUCCESS;
14562 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
14565 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14567 return NDR_ERR_SUCCESS;
14570 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r)
14572 ndr_print_uint32(ndr, name, r);
14574 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
14575 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
14576 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
14577 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
14578 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
14579 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
14580 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
14581 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
14585 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r)
14587 if (flags & NDR_IN) {
14588 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
14589 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
14590 if (r->in.server) {
14591 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
14592 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14593 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
14594 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14596 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
14597 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
14598 if (r->in.buffer) {
14599 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
14601 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
14603 if (flags & NDR_OUT) {
14604 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
14606 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
14608 if (r->out.needed == NULL) {
14609 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14611 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
14612 if (r->out.count == NULL) {
14613 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14615 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
14616 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14618 return NDR_ERR_SUCCESS;
14621 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinters *r)
14623 uint32_t _ptr_server;
14624 uint32_t _ptr_buffer;
14625 uint32_t _ptr_info;
14626 TALLOC_CTX *_mem_save_server_0;
14627 TALLOC_CTX *_mem_save_buffer_0;
14628 TALLOC_CTX *_mem_save_info_0;
14629 TALLOC_CTX *_mem_save_needed_0;
14630 TALLOC_CTX *_mem_save_count_0;
14631 if (flags & NDR_IN) {
14632 ZERO_STRUCT(r->out);
14634 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
14635 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
14637 NDR_PULL_ALLOC(ndr, r->in.server);
14639 r->in.server = NULL;
14641 if (r->in.server) {
14642 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
14643 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
14644 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
14645 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
14646 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
14647 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));
14649 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
14650 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
14651 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
14653 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
14654 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
14656 NDR_PULL_ALLOC(ndr, r->in.buffer);
14658 r->in.buffer = NULL;
14660 if (r->in.buffer) {
14661 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
14662 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
14663 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
14664 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
14666 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
14667 NDR_PULL_ALLOC(ndr, r->out.needed);
14668 ZERO_STRUCTP(r->out.needed);
14669 NDR_PULL_ALLOC(ndr, r->out.count);
14670 ZERO_STRUCTP(r->out.count);
14672 if (flags & NDR_OUT) {
14673 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
14675 NDR_PULL_ALLOC(ndr, r->out.info);
14677 r->out.info = NULL;
14680 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14681 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
14682 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
14683 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
14685 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14686 NDR_PULL_ALLOC(ndr, r->out.needed);
14688 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
14689 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
14690 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
14691 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
14692 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14693 NDR_PULL_ALLOC(ndr, r->out.count);
14695 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
14696 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
14697 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
14698 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
14699 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14701 return NDR_ERR_SUCCESS;
14704 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinters *r)
14706 uint32_t cntr_info_0;
14707 if (flags & NDR_IN) {
14708 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
14709 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
14711 if (flags & NDR_OUT) {
14712 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
14713 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
14714 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
14716 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
14717 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
14720 return NDR_ERR_SUCCESS;
14723 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinters *r)
14725 uint32_t cntr_info_0;
14726 TALLOC_CTX *_mem_save_info_0;
14727 if (flags & NDR_IN) {
14728 ZERO_STRUCT(r->out);
14730 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
14731 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
14733 if (flags & NDR_OUT) {
14734 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
14735 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14736 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
14737 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
14738 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
14739 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
14741 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
14742 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
14744 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
14746 return NDR_ERR_SUCCESS;
14749 _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinters *r)
14751 uint32_t cntr_info_1;
14752 ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
14754 if (flags & NDR_SET_VALUES) {
14755 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14757 if (flags & NDR_IN) {
14758 ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
14760 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
14761 ndr_print_ptr(ndr, "server", r->in.server);
14763 if (r->in.server) {
14764 ndr_print_string(ndr, "server", r->in.server);
14767 ndr_print_uint32(ndr, "level", r->in.level);
14768 ndr_print_ptr(ndr, "buffer", r->in.buffer);
14770 if (r->in.buffer) {
14771 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
14774 ndr_print_uint32(ndr, "offered", r->in.offered);
14777 if (flags & NDR_OUT) {
14778 ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
14780 ndr_print_ptr(ndr, "count", r->out.count);
14782 ndr_print_uint32(ndr, "count", *r->out.count);
14784 ndr_print_ptr(ndr, "info", r->out.info);
14787 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
14789 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
14791 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
14792 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
14793 ndr_print_spoolss_PrinterInfo(ndr, "info", &r->out.info[cntr_info_1]);
14800 ndr_print_ptr(ndr, "needed", r->out.needed);
14802 ndr_print_uint32(ndr, "needed", *r->out.needed);
14804 ndr_print_WERROR(ndr, "result", r->out.result);
14810 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinter *r)
14812 if (flags & NDR_IN) {
14813 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
14814 if (r->in.printername) {
14815 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
14816 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14817 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
14818 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14820 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
14821 if (r->in.datatype) {
14822 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
14823 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14824 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
14825 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14827 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
14828 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
14830 if (flags & NDR_OUT) {
14831 if (r->out.handle == NULL) {
14832 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14834 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
14835 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14837 return NDR_ERR_SUCCESS;
14840 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinter *r)
14842 uint32_t _ptr_printername;
14843 uint32_t _ptr_datatype;
14844 TALLOC_CTX *_mem_save_printername_0;
14845 TALLOC_CTX *_mem_save_datatype_0;
14846 TALLOC_CTX *_mem_save_handle_0;
14847 if (flags & NDR_IN) {
14848 ZERO_STRUCT(r->out);
14850 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
14851 if (_ptr_printername) {
14852 NDR_PULL_ALLOC(ndr, r->in.printername);
14854 r->in.printername = NULL;
14856 if (r->in.printername) {
14857 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
14858 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
14859 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
14860 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
14861 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
14862 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));
14864 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
14865 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
14866 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
14868 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
14869 if (_ptr_datatype) {
14870 NDR_PULL_ALLOC(ndr, r->in.datatype);
14872 r->in.datatype = NULL;
14874 if (r->in.datatype) {
14875 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
14876 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
14877 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
14878 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
14879 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
14880 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));
14882 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
14883 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
14884 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
14886 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
14887 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
14888 NDR_PULL_ALLOC(ndr, r->out.handle);
14889 ZERO_STRUCTP(r->out.handle);
14891 if (flags & NDR_OUT) {
14892 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14893 NDR_PULL_ALLOC(ndr, r->out.handle);
14895 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14896 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
14897 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
14898 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
14899 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14901 return NDR_ERR_SUCCESS;
14904 _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinter *r)
14906 ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
14908 if (flags & NDR_SET_VALUES) {
14909 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14911 if (flags & NDR_IN) {
14912 ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
14914 ndr_print_ptr(ndr, "printername", r->in.printername);
14916 if (r->in.printername) {
14917 ndr_print_string(ndr, "printername", r->in.printername);
14920 ndr_print_ptr(ndr, "datatype", r->in.datatype);
14922 if (r->in.datatype) {
14923 ndr_print_string(ndr, "datatype", r->in.datatype);
14926 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
14927 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
14930 if (flags & NDR_OUT) {
14931 ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
14933 ndr_print_ptr(ndr, "handle", r->out.handle);
14935 ndr_print_policy_handle(ndr, "handle", r->out.handle);
14937 ndr_print_WERROR(ndr, "result", r->out.result);
14943 static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, int flags, const struct spoolss_SetJob *r)
14945 if (flags & NDR_IN) {
14946 if (r->in.handle == NULL) {
14947 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14949 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
14950 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
14951 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
14953 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
14955 NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
14957 if (flags & NDR_OUT) {
14958 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14960 return NDR_ERR_SUCCESS;
14963 static enum ndr_err_code ndr_pull_spoolss_SetJob(struct ndr_pull *ndr, int flags, struct spoolss_SetJob *r)
14966 TALLOC_CTX *_mem_save_handle_0;
14967 TALLOC_CTX *_mem_save_ctr_0;
14968 if (flags & NDR_IN) {
14969 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14970 NDR_PULL_ALLOC(ndr, r->in.handle);
14972 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14973 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
14974 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
14975 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
14976 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
14977 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
14979 NDR_PULL_ALLOC(ndr, r->in.ctr);
14984 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
14985 NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
14986 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
14987 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
14989 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
14991 if (flags & NDR_OUT) {
14992 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14994 return NDR_ERR_SUCCESS;
14997 _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetJob *r)
14999 ndr_print_struct(ndr, name, "spoolss_SetJob");
15001 if (flags & NDR_SET_VALUES) {
15002 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15004 if (flags & NDR_IN) {
15005 ndr_print_struct(ndr, "in", "spoolss_SetJob");
15007 ndr_print_ptr(ndr, "handle", r->in.handle);
15009 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15011 ndr_print_uint32(ndr, "job_id", r->in.job_id);
15012 ndr_print_ptr(ndr, "ctr", r->in.ctr);
15015 ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
15018 ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
15021 if (flags & NDR_OUT) {
15022 ndr_print_struct(ndr, "out", "spoolss_SetJob");
15024 ndr_print_WERROR(ndr, "result", r->out.result);
15030 static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, int flags, const struct spoolss_GetJob *r)
15032 if (flags & NDR_IN) {
15033 if (r->in.handle == NULL) {
15034 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15036 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15037 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
15038 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15039 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
15040 if (r->in.buffer) {
15041 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
15043 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
15045 if (flags & NDR_OUT) {
15046 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
15049 struct ndr_push *_ndr_info;
15050 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
15051 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
15052 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
15053 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
15056 if (r->out.needed == NULL) {
15057 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15059 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
15060 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15062 return NDR_ERR_SUCCESS;
15065 static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags, struct spoolss_GetJob *r)
15067 uint32_t _ptr_buffer;
15068 uint32_t _ptr_info;
15069 TALLOC_CTX *_mem_save_handle_0;
15070 TALLOC_CTX *_mem_save_buffer_0;
15071 TALLOC_CTX *_mem_save_info_0;
15072 TALLOC_CTX *_mem_save_needed_0;
15073 if (flags & NDR_IN) {
15074 ZERO_STRUCT(r->out);
15076 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15077 NDR_PULL_ALLOC(ndr, r->in.handle);
15079 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15080 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15081 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15082 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15083 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
15084 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15085 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
15087 NDR_PULL_ALLOC(ndr, r->in.buffer);
15089 r->in.buffer = NULL;
15091 if (r->in.buffer) {
15092 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
15093 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
15094 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
15095 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
15097 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
15098 NDR_PULL_ALLOC(ndr, r->out.needed);
15099 ZERO_STRUCTP(r->out.needed);
15101 if (flags & NDR_OUT) {
15102 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
15104 NDR_PULL_ALLOC(ndr, r->out.info);
15106 r->out.info = NULL;
15109 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15110 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
15112 struct ndr_pull *_ndr_info;
15113 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
15114 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
15115 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
15116 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
15118 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
15120 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15121 NDR_PULL_ALLOC(ndr, r->out.needed);
15123 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
15124 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
15125 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
15126 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
15127 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15129 return NDR_ERR_SUCCESS;
15132 _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetJob *r)
15134 ndr_print_struct(ndr, name, "spoolss_GetJob");
15136 if (flags & NDR_SET_VALUES) {
15137 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15139 if (flags & NDR_IN) {
15140 ndr_print_struct(ndr, "in", "spoolss_GetJob");
15142 ndr_print_ptr(ndr, "handle", r->in.handle);
15144 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15146 ndr_print_uint32(ndr, "job_id", r->in.job_id);
15147 ndr_print_uint32(ndr, "level", r->in.level);
15148 ndr_print_ptr(ndr, "buffer", r->in.buffer);
15150 if (r->in.buffer) {
15151 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
15154 ndr_print_uint32(ndr, "offered", r->in.offered);
15157 if (flags & NDR_OUT) {
15158 ndr_print_struct(ndr, "out", "spoolss_GetJob");
15160 ndr_print_ptr(ndr, "info", r->out.info);
15163 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
15164 ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
15167 ndr_print_ptr(ndr, "needed", r->out.needed);
15169 ndr_print_uint32(ndr, "needed", *r->out.needed);
15171 ndr_print_WERROR(ndr, "result", r->out.result);
15177 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct _spoolss_EnumJobs *r)
15179 if (flags & NDR_IN) {
15180 if (r->in.handle == NULL) {
15181 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15183 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15184 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
15185 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
15186 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15187 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
15188 if (r->in.buffer) {
15189 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
15191 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
15193 if (flags & NDR_OUT) {
15194 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
15196 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
15198 if (r->out.needed == NULL) {
15199 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15201 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
15202 if (r->out.count == NULL) {
15203 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15205 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
15206 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15208 return NDR_ERR_SUCCESS;
15211 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct _spoolss_EnumJobs *r)
15213 uint32_t _ptr_buffer;
15214 uint32_t _ptr_info;
15215 TALLOC_CTX *_mem_save_handle_0;
15216 TALLOC_CTX *_mem_save_buffer_0;
15217 TALLOC_CTX *_mem_save_info_0;
15218 TALLOC_CTX *_mem_save_needed_0;
15219 TALLOC_CTX *_mem_save_count_0;
15220 if (flags & NDR_IN) {
15221 ZERO_STRUCT(r->out);
15223 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15224 NDR_PULL_ALLOC(ndr, r->in.handle);
15226 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15227 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15228 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15229 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15230 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
15231 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
15232 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15233 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
15235 NDR_PULL_ALLOC(ndr, r->in.buffer);
15237 r->in.buffer = NULL;
15239 if (r->in.buffer) {
15240 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
15241 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
15242 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
15243 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
15245 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
15246 NDR_PULL_ALLOC(ndr, r->out.needed);
15247 ZERO_STRUCTP(r->out.needed);
15248 NDR_PULL_ALLOC(ndr, r->out.count);
15249 ZERO_STRUCTP(r->out.count);
15251 if (flags & NDR_OUT) {
15252 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
15254 NDR_PULL_ALLOC(ndr, r->out.info);
15256 r->out.info = NULL;
15259 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15260 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
15261 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
15262 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
15264 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15265 NDR_PULL_ALLOC(ndr, r->out.needed);
15267 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
15268 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
15269 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
15270 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
15271 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15272 NDR_PULL_ALLOC(ndr, r->out.count);
15274 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
15275 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
15276 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
15277 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
15278 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15280 return NDR_ERR_SUCCESS;
15283 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct __spoolss_EnumJobs *r)
15285 uint32_t cntr_info_0;
15286 if (flags & NDR_IN) {
15287 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15288 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
15290 if (flags & NDR_OUT) {
15291 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15292 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
15293 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
15295 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15296 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
15299 return NDR_ERR_SUCCESS;
15302 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct __spoolss_EnumJobs *r)
15304 uint32_t cntr_info_0;
15305 TALLOC_CTX *_mem_save_info_0;
15306 if (flags & NDR_IN) {
15307 ZERO_STRUCT(r->out);
15309 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15310 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
15312 if (flags & NDR_OUT) {
15313 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
15314 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15315 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
15316 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15317 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
15318 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
15320 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15321 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
15323 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
15325 return NDR_ERR_SUCCESS;
15328 _PUBLIC_ void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumJobs *r)
15330 uint32_t cntr_info_1;
15331 ndr_print_struct(ndr, name, "spoolss_EnumJobs");
15333 if (flags & NDR_SET_VALUES) {
15334 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15336 if (flags & NDR_IN) {
15337 ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
15339 ndr_print_ptr(ndr, "handle", r->in.handle);
15341 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15343 ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
15344 ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
15345 ndr_print_uint32(ndr, "level", r->in.level);
15346 ndr_print_ptr(ndr, "buffer", r->in.buffer);
15348 if (r->in.buffer) {
15349 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
15352 ndr_print_uint32(ndr, "offered", r->in.offered);
15355 if (flags & NDR_OUT) {
15356 ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
15358 ndr_print_ptr(ndr, "count", r->out.count);
15360 ndr_print_uint32(ndr, "count", *r->out.count);
15362 ndr_print_ptr(ndr, "info", r->out.info);
15365 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
15367 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
15369 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
15370 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
15371 ndr_print_spoolss_JobInfo(ndr, "info", &r->out.info[cntr_info_1]);
15378 ndr_print_ptr(ndr, "needed", r->out.needed);
15380 ndr_print_uint32(ndr, "needed", *r->out.needed);
15382 ndr_print_WERROR(ndr, "result", r->out.result);
15388 static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinter *r)
15390 if (flags & NDR_IN) {
15392 if (flags & NDR_OUT) {
15393 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15395 return NDR_ERR_SUCCESS;
15398 static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinter *r)
15400 if (flags & NDR_IN) {
15402 if (flags & NDR_OUT) {
15403 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15405 return NDR_ERR_SUCCESS;
15408 _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinter *r)
15410 ndr_print_struct(ndr, name, "spoolss_AddPrinter");
15412 if (flags & NDR_SET_VALUES) {
15413 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15415 if (flags & NDR_IN) {
15416 ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
15420 if (flags & NDR_OUT) {
15421 ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
15423 ndr_print_WERROR(ndr, "result", r->out.result);
15429 static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinter *r)
15431 if (flags & NDR_IN) {
15432 if (r->in.handle == NULL) {
15433 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15435 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15437 if (flags & NDR_OUT) {
15438 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15440 return NDR_ERR_SUCCESS;
15443 static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinter *r)
15445 TALLOC_CTX *_mem_save_handle_0;
15446 if (flags & NDR_IN) {
15447 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15448 NDR_PULL_ALLOC(ndr, r->in.handle);
15450 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15451 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15452 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15453 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15455 if (flags & NDR_OUT) {
15456 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15458 return NDR_ERR_SUCCESS;
15461 _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinter *r)
15463 ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
15465 if (flags & NDR_SET_VALUES) {
15466 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15468 if (flags & NDR_IN) {
15469 ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
15471 ndr_print_ptr(ndr, "handle", r->in.handle);
15473 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15477 if (flags & NDR_OUT) {
15478 ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
15480 ndr_print_WERROR(ndr, "result", r->out.result);
15486 static enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinter *r)
15488 if (flags & NDR_IN) {
15489 if (r->in.handle == NULL) {
15490 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15492 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15493 if (r->in.info_ctr == NULL) {
15494 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15496 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
15497 if (r->in.devmode_ctr == NULL) {
15498 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15500 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
15501 if (r->in.secdesc_ctr == NULL) {
15502 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15504 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
15505 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
15507 if (flags & NDR_OUT) {
15508 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15510 return NDR_ERR_SUCCESS;
15513 static enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinter *r)
15515 TALLOC_CTX *_mem_save_handle_0;
15516 TALLOC_CTX *_mem_save_info_ctr_0;
15517 TALLOC_CTX *_mem_save_devmode_ctr_0;
15518 TALLOC_CTX *_mem_save_secdesc_ctr_0;
15519 if (flags & NDR_IN) {
15520 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15521 NDR_PULL_ALLOC(ndr, r->in.handle);
15523 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15524 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15525 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15526 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15527 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15528 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
15530 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
15531 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
15532 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
15533 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
15534 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15535 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
15537 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
15538 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
15539 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
15540 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
15541 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15542 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
15544 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
15545 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
15546 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
15547 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
15548 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
15550 if (flags & NDR_OUT) {
15551 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15553 return NDR_ERR_SUCCESS;
15556 _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinter *r)
15558 ndr_print_struct(ndr, name, "spoolss_SetPrinter");
15560 if (flags & NDR_SET_VALUES) {
15561 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15563 if (flags & NDR_IN) {
15564 ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
15566 ndr_print_ptr(ndr, "handle", r->in.handle);
15568 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15570 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
15572 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
15574 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
15576 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
15578 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
15580 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
15582 ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
15585 if (flags & NDR_OUT) {
15586 ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
15588 ndr_print_WERROR(ndr, "result", r->out.result);
15594 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinter *r)
15596 if (flags & NDR_IN) {
15597 if (r->in.handle == NULL) {
15598 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15600 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15601 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15602 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
15603 if (r->in.buffer) {
15604 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
15606 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
15608 if (flags & NDR_OUT) {
15609 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
15612 struct ndr_push *_ndr_info;
15613 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
15614 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
15615 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
15616 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
15619 if (r->out.needed == NULL) {
15620 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15622 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
15623 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15625 return NDR_ERR_SUCCESS;
15628 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinter *r)
15630 uint32_t _ptr_buffer;
15631 uint32_t _ptr_info;
15632 TALLOC_CTX *_mem_save_handle_0;
15633 TALLOC_CTX *_mem_save_buffer_0;
15634 TALLOC_CTX *_mem_save_info_0;
15635 TALLOC_CTX *_mem_save_needed_0;
15636 if (flags & NDR_IN) {
15637 ZERO_STRUCT(r->out);
15639 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15640 NDR_PULL_ALLOC(ndr, r->in.handle);
15642 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15643 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15644 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15645 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15646 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15647 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
15649 NDR_PULL_ALLOC(ndr, r->in.buffer);
15651 r->in.buffer = NULL;
15653 if (r->in.buffer) {
15654 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
15655 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
15656 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
15657 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
15659 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
15660 NDR_PULL_ALLOC(ndr, r->out.needed);
15661 ZERO_STRUCTP(r->out.needed);
15663 if (flags & NDR_OUT) {
15664 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
15666 NDR_PULL_ALLOC(ndr, r->out.info);
15668 r->out.info = NULL;
15671 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15672 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
15674 struct ndr_pull *_ndr_info;
15675 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
15676 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
15677 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
15678 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
15680 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
15682 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15683 NDR_PULL_ALLOC(ndr, r->out.needed);
15685 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
15686 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
15687 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
15688 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
15689 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15691 return NDR_ERR_SUCCESS;
15694 _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinter *r)
15696 ndr_print_struct(ndr, name, "spoolss_GetPrinter");
15698 if (flags & NDR_SET_VALUES) {
15699 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15701 if (flags & NDR_IN) {
15702 ndr_print_struct(ndr, "in", "spoolss_GetPrinter");
15704 ndr_print_ptr(ndr, "handle", r->in.handle);
15706 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15708 ndr_print_uint32(ndr, "level", r->in.level);
15709 ndr_print_ptr(ndr, "buffer", r->in.buffer);
15711 if (r->in.buffer) {
15712 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
15715 ndr_print_uint32(ndr, "offered", r->in.offered);
15718 if (flags & NDR_OUT) {
15719 ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
15721 ndr_print_ptr(ndr, "info", r->out.info);
15724 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
15725 ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
15728 ndr_print_ptr(ndr, "needed", r->out.needed);
15730 ndr_print_uint32(ndr, "needed", *r->out.needed);
15732 ndr_print_WERROR(ndr, "result", r->out.result);
15738 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriver *r)
15740 if (flags & NDR_IN) {
15741 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
15742 if (r->in.servername) {
15743 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
15744 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15745 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
15746 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15748 if (r->in.info_ctr == NULL) {
15749 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15751 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
15753 if (flags & NDR_OUT) {
15754 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15756 return NDR_ERR_SUCCESS;
15759 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriver *r)
15761 uint32_t _ptr_servername;
15762 TALLOC_CTX *_mem_save_servername_0;
15763 TALLOC_CTX *_mem_save_info_ctr_0;
15764 if (flags & NDR_IN) {
15765 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
15766 if (_ptr_servername) {
15767 NDR_PULL_ALLOC(ndr, r->in.servername);
15769 r->in.servername = NULL;
15771 if (r->in.servername) {
15772 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
15773 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
15774 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
15775 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
15776 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
15777 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));
15779 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
15780 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
15781 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
15783 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15784 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
15786 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
15787 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
15788 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
15789 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
15791 if (flags & NDR_OUT) {
15792 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15794 return NDR_ERR_SUCCESS;
15797 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriver *r)
15799 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
15801 if (flags & NDR_SET_VALUES) {
15802 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15804 if (flags & NDR_IN) {
15805 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
15807 ndr_print_ptr(ndr, "servername", r->in.servername);
15809 if (r->in.servername) {
15810 ndr_print_string(ndr, "servername", r->in.servername);
15813 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
15815 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
15819 if (flags & NDR_OUT) {
15820 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
15822 ndr_print_WERROR(ndr, "result", r->out.result);
15828 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDrivers *r)
15830 if (flags & NDR_IN) {
15831 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
15832 if (r->in.server) {
15833 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
15834 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15835 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
15836 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15838 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
15839 if (r->in.environment) {
15840 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
15841 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15842 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
15843 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15845 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15846 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
15847 if (r->in.buffer) {
15848 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
15850 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
15852 if (flags & NDR_OUT) {
15853 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
15855 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
15857 if (r->out.needed == NULL) {
15858 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15860 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
15861 if (r->out.count == NULL) {
15862 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15864 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
15865 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15867 return NDR_ERR_SUCCESS;
15870 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDrivers *r)
15872 uint32_t _ptr_server;
15873 uint32_t _ptr_environment;
15874 uint32_t _ptr_buffer;
15875 uint32_t _ptr_info;
15876 TALLOC_CTX *_mem_save_server_0;
15877 TALLOC_CTX *_mem_save_environment_0;
15878 TALLOC_CTX *_mem_save_buffer_0;
15879 TALLOC_CTX *_mem_save_info_0;
15880 TALLOC_CTX *_mem_save_needed_0;
15881 TALLOC_CTX *_mem_save_count_0;
15882 if (flags & NDR_IN) {
15883 ZERO_STRUCT(r->out);
15885 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
15887 NDR_PULL_ALLOC(ndr, r->in.server);
15889 r->in.server = NULL;
15891 if (r->in.server) {
15892 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
15893 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
15894 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
15895 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
15896 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
15897 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));
15899 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
15900 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
15901 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
15903 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
15904 if (_ptr_environment) {
15905 NDR_PULL_ALLOC(ndr, r->in.environment);
15907 r->in.environment = NULL;
15909 if (r->in.environment) {
15910 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
15911 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
15912 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
15913 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
15914 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
15915 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));
15917 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
15918 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
15919 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
15921 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15922 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
15924 NDR_PULL_ALLOC(ndr, r->in.buffer);
15926 r->in.buffer = NULL;
15928 if (r->in.buffer) {
15929 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
15930 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
15931 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
15932 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
15934 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
15935 NDR_PULL_ALLOC(ndr, r->out.needed);
15936 ZERO_STRUCTP(r->out.needed);
15937 NDR_PULL_ALLOC(ndr, r->out.count);
15938 ZERO_STRUCTP(r->out.count);
15940 if (flags & NDR_OUT) {
15941 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
15943 NDR_PULL_ALLOC(ndr, r->out.info);
15945 r->out.info = NULL;
15948 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15949 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
15950 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
15951 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
15953 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15954 NDR_PULL_ALLOC(ndr, r->out.needed);
15956 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
15957 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
15958 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
15959 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
15960 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15961 NDR_PULL_ALLOC(ndr, r->out.count);
15963 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
15964 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
15965 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
15966 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
15967 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15969 return NDR_ERR_SUCCESS;
15972 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDrivers *r)
15974 uint32_t cntr_info_0;
15975 if (flags & NDR_IN) {
15976 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15977 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
15979 if (flags & NDR_OUT) {
15980 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15981 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
15982 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
15984 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15985 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
15988 return NDR_ERR_SUCCESS;
15991 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDrivers *r)
15993 uint32_t cntr_info_0;
15994 TALLOC_CTX *_mem_save_info_0;
15995 if (flags & NDR_IN) {
15996 ZERO_STRUCT(r->out);
15998 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15999 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
16001 if (flags & NDR_OUT) {
16002 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
16003 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16004 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
16005 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16006 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
16007 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
16009 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16010 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
16012 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
16014 return NDR_ERR_SUCCESS;
16017 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDrivers *r)
16019 uint32_t cntr_info_1;
16020 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
16022 if (flags & NDR_SET_VALUES) {
16023 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16025 if (flags & NDR_IN) {
16026 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
16028 ndr_print_ptr(ndr, "server", r->in.server);
16030 if (r->in.server) {
16031 ndr_print_string(ndr, "server", r->in.server);
16034 ndr_print_ptr(ndr, "environment", r->in.environment);
16036 if (r->in.environment) {
16037 ndr_print_string(ndr, "environment", r->in.environment);
16040 ndr_print_uint32(ndr, "level", r->in.level);
16041 ndr_print_ptr(ndr, "buffer", r->in.buffer);
16043 if (r->in.buffer) {
16044 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
16047 ndr_print_uint32(ndr, "offered", r->in.offered);
16050 if (flags & NDR_OUT) {
16051 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
16053 ndr_print_ptr(ndr, "count", r->out.count);
16055 ndr_print_uint32(ndr, "count", *r->out.count);
16057 ndr_print_ptr(ndr, "info", r->out.info);
16060 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
16062 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
16064 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
16065 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
16066 ndr_print_spoolss_DriverInfo(ndr, "info", &r->out.info[cntr_info_1]);
16073 ndr_print_ptr(ndr, "needed", r->out.needed);
16075 ndr_print_uint32(ndr, "needed", *r->out.needed);
16077 ndr_print_WERROR(ndr, "result", r->out.result);
16083 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver *r)
16085 if (flags & NDR_IN) {
16087 if (flags & NDR_OUT) {
16088 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16090 return NDR_ERR_SUCCESS;
16093 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver *r)
16095 if (flags & NDR_IN) {
16097 if (flags & NDR_OUT) {
16098 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16100 return NDR_ERR_SUCCESS;
16103 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver *r)
16105 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
16107 if (flags & NDR_SET_VALUES) {
16108 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16110 if (flags & NDR_IN) {
16111 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
16115 if (flags & NDR_OUT) {
16116 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
16118 ndr_print_WERROR(ndr, "result", r->out.result);
16124 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
16126 if (flags & NDR_IN) {
16127 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
16128 if (r->in.server) {
16129 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16130 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16131 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16132 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16134 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
16135 if (r->in.environment) {
16136 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
16137 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16138 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
16139 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16141 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16142 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
16143 if (r->in.buffer) {
16144 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
16146 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
16148 if (flags & NDR_OUT) {
16149 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
16152 struct ndr_push *_ndr_info;
16153 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
16154 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
16155 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
16156 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
16159 if (r->out.needed == NULL) {
16160 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16162 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
16163 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16165 return NDR_ERR_SUCCESS;
16168 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverDirectory *r)
16170 uint32_t _ptr_server;
16171 uint32_t _ptr_environment;
16172 uint32_t _ptr_buffer;
16173 uint32_t _ptr_info;
16174 TALLOC_CTX *_mem_save_server_0;
16175 TALLOC_CTX *_mem_save_environment_0;
16176 TALLOC_CTX *_mem_save_buffer_0;
16177 TALLOC_CTX *_mem_save_info_0;
16178 TALLOC_CTX *_mem_save_needed_0;
16179 if (flags & NDR_IN) {
16180 ZERO_STRUCT(r->out);
16182 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
16184 NDR_PULL_ALLOC(ndr, r->in.server);
16186 r->in.server = NULL;
16188 if (r->in.server) {
16189 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
16190 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
16191 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
16192 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
16193 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
16194 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));
16196 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
16197 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
16198 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
16200 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
16201 if (_ptr_environment) {
16202 NDR_PULL_ALLOC(ndr, r->in.environment);
16204 r->in.environment = NULL;
16206 if (r->in.environment) {
16207 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
16208 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
16209 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
16210 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
16211 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
16212 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));
16214 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
16215 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
16216 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
16218 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16219 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
16221 NDR_PULL_ALLOC(ndr, r->in.buffer);
16223 r->in.buffer = NULL;
16225 if (r->in.buffer) {
16226 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
16227 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
16228 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
16229 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
16231 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
16232 NDR_PULL_ALLOC(ndr, r->out.needed);
16233 ZERO_STRUCTP(r->out.needed);
16235 if (flags & NDR_OUT) {
16236 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
16238 NDR_PULL_ALLOC(ndr, r->out.info);
16240 r->out.info = NULL;
16243 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16244 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
16246 struct ndr_pull *_ndr_info;
16247 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
16248 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
16249 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
16250 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
16252 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
16254 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16255 NDR_PULL_ALLOC(ndr, r->out.needed);
16257 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
16258 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
16259 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
16260 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
16261 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16263 return NDR_ERR_SUCCESS;
16266 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
16268 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
16270 if (flags & NDR_SET_VALUES) {
16271 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16273 if (flags & NDR_IN) {
16274 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
16276 ndr_print_ptr(ndr, "server", r->in.server);
16278 if (r->in.server) {
16279 ndr_print_string(ndr, "server", r->in.server);
16282 ndr_print_ptr(ndr, "environment", r->in.environment);
16284 if (r->in.environment) {
16285 ndr_print_string(ndr, "environment", r->in.environment);
16288 ndr_print_uint32(ndr, "level", r->in.level);
16289 ndr_print_ptr(ndr, "buffer", r->in.buffer);
16291 if (r->in.buffer) {
16292 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
16295 ndr_print_uint32(ndr, "offered", r->in.offered);
16298 if (flags & NDR_OUT) {
16299 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
16301 ndr_print_ptr(ndr, "info", r->out.info);
16304 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
16305 ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
16308 ndr_print_ptr(ndr, "needed", r->out.needed);
16310 ndr_print_uint32(ndr, "needed", *r->out.needed);
16312 ndr_print_WERROR(ndr, "result", r->out.result);
16318 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriver *r)
16320 if (flags & NDR_IN) {
16321 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
16322 if (r->in.server) {
16323 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16324 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16325 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16326 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
16329 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16330 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
16331 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16332 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
16333 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16334 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
16335 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16337 if (flags & NDR_OUT) {
16338 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16340 return NDR_ERR_SUCCESS;
16343 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriver *r)
16345 uint32_t _ptr_server;
16346 TALLOC_CTX *_mem_save_server_0;
16347 if (flags & NDR_IN) {
16348 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
16350 NDR_PULL_ALLOC(ndr, r->in.server);
16352 r->in.server = NULL;
16354 if (r->in.server) {
16355 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
16356 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
16357 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
16358 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
16359 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
16360 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));
16362 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
16363 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
16364 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
16366 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
16367 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
16368 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
16369 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));
16371 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
16372 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
16373 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
16374 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
16375 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
16376 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));
16378 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
16379 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
16381 if (flags & NDR_OUT) {
16382 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16384 return NDR_ERR_SUCCESS;
16387 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriver *r)
16389 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
16391 if (flags & NDR_SET_VALUES) {
16392 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16394 if (flags & NDR_IN) {
16395 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
16397 ndr_print_ptr(ndr, "server", r->in.server);
16399 if (r->in.server) {
16400 ndr_print_string(ndr, "server", r->in.server);
16403 ndr_print_string(ndr, "architecture", r->in.architecture);
16404 ndr_print_string(ndr, "driver", r->in.driver);
16407 if (flags & NDR_OUT) {
16408 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
16410 ndr_print_WERROR(ndr, "result", r->out.result);
16416 static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProcessor *r)
16418 if (flags & NDR_IN) {
16419 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
16420 if (r->in.server) {
16421 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16422 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16423 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16424 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16426 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
16427 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16428 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
16429 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16430 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
16431 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16432 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
16433 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));
16434 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
16435 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16436 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
16437 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));
16439 if (flags & NDR_OUT) {
16440 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16442 return NDR_ERR_SUCCESS;
16445 static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProcessor *r)
16447 uint32_t _ptr_server;
16448 TALLOC_CTX *_mem_save_server_0;
16449 if (flags & NDR_IN) {
16450 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
16452 NDR_PULL_ALLOC(ndr, r->in.server);
16454 r->in.server = NULL;
16456 if (r->in.server) {
16457 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
16458 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
16459 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
16460 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
16461 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
16462 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));
16464 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
16465 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
16466 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
16468 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
16469 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
16470 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
16471 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));
16473 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
16474 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
16475 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
16476 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
16477 if (ndr_get_array_length(ndr, &r->in.path_name) > ndr_get_array_size(ndr, &r->in.path_name)) {
16478 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));
16480 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t)));
16481 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));
16482 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
16483 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
16484 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
16485 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));
16487 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
16488 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));
16490 if (flags & NDR_OUT) {
16491 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16493 return NDR_ERR_SUCCESS;
16496 _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProcessor *r)
16498 ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
16500 if (flags & NDR_SET_VALUES) {
16501 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16503 if (flags & NDR_IN) {
16504 ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
16506 ndr_print_ptr(ndr, "server", r->in.server);
16508 if (r->in.server) {
16509 ndr_print_string(ndr, "server", r->in.server);
16512 ndr_print_string(ndr, "architecture", r->in.architecture);
16513 ndr_print_string(ndr, "path_name", r->in.path_name);
16514 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
16517 if (flags & NDR_OUT) {
16518 ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
16520 ndr_print_WERROR(ndr, "result", r->out.result);
16526 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcessors *r)
16528 if (flags & NDR_IN) {
16529 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
16530 if (r->in.servername) {
16531 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
16532 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16533 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
16534 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16536 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
16537 if (r->in.environment) {
16538 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
16539 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16540 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
16541 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16543 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16544 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
16545 if (r->in.buffer) {
16546 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
16548 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
16550 if (flags & NDR_OUT) {
16551 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
16553 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
16555 if (r->out.needed == NULL) {
16556 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16558 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
16559 if (r->out.count == NULL) {
16560 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16562 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
16563 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16565 return NDR_ERR_SUCCESS;
16568 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessors *r)
16570 uint32_t _ptr_servername;
16571 uint32_t _ptr_environment;
16572 uint32_t _ptr_buffer;
16573 uint32_t _ptr_info;
16574 TALLOC_CTX *_mem_save_servername_0;
16575 TALLOC_CTX *_mem_save_environment_0;
16576 TALLOC_CTX *_mem_save_buffer_0;
16577 TALLOC_CTX *_mem_save_info_0;
16578 TALLOC_CTX *_mem_save_needed_0;
16579 TALLOC_CTX *_mem_save_count_0;
16580 if (flags & NDR_IN) {
16581 ZERO_STRUCT(r->out);
16583 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
16584 if (_ptr_servername) {
16585 NDR_PULL_ALLOC(ndr, r->in.servername);
16587 r->in.servername = NULL;
16589 if (r->in.servername) {
16590 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
16591 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
16592 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
16593 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
16594 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
16595 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));
16597 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
16598 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
16599 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
16601 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
16602 if (_ptr_environment) {
16603 NDR_PULL_ALLOC(ndr, r->in.environment);
16605 r->in.environment = NULL;
16607 if (r->in.environment) {
16608 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
16609 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
16610 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
16611 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
16612 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
16613 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));
16615 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
16616 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
16617 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
16619 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16620 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
16622 NDR_PULL_ALLOC(ndr, r->in.buffer);
16624 r->in.buffer = NULL;
16626 if (r->in.buffer) {
16627 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
16628 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
16629 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
16630 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
16632 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
16633 NDR_PULL_ALLOC(ndr, r->out.needed);
16634 ZERO_STRUCTP(r->out.needed);
16635 NDR_PULL_ALLOC(ndr, r->out.count);
16636 ZERO_STRUCTP(r->out.count);
16638 if (flags & NDR_OUT) {
16639 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
16641 NDR_PULL_ALLOC(ndr, r->out.info);
16643 r->out.info = NULL;
16646 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16647 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
16648 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
16649 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
16651 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16652 NDR_PULL_ALLOC(ndr, r->out.needed);
16654 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
16655 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
16656 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
16657 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
16658 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16659 NDR_PULL_ALLOC(ndr, r->out.count);
16661 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
16662 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
16663 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
16664 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
16665 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16667 return NDR_ERR_SUCCESS;
16670 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcessors *r)
16672 uint32_t cntr_info_0;
16673 if (flags & NDR_IN) {
16674 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16675 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
16677 if (flags & NDR_OUT) {
16678 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16679 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
16680 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
16682 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16683 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
16686 return NDR_ERR_SUCCESS;
16689 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessors *r)
16691 uint32_t cntr_info_0;
16692 TALLOC_CTX *_mem_save_info_0;
16693 if (flags & NDR_IN) {
16694 ZERO_STRUCT(r->out);
16696 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16697 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
16699 if (flags & NDR_OUT) {
16700 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
16701 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16702 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
16703 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16704 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
16705 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
16707 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16708 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
16710 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
16712 return NDR_ERR_SUCCESS;
16715 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcessors *r)
16717 uint32_t cntr_info_1;
16718 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
16720 if (flags & NDR_SET_VALUES) {
16721 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16723 if (flags & NDR_IN) {
16724 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
16726 ndr_print_ptr(ndr, "servername", r->in.servername);
16728 if (r->in.servername) {
16729 ndr_print_string(ndr, "servername", r->in.servername);
16732 ndr_print_ptr(ndr, "environment", r->in.environment);
16734 if (r->in.environment) {
16735 ndr_print_string(ndr, "environment", r->in.environment);
16738 ndr_print_uint32(ndr, "level", r->in.level);
16739 ndr_print_ptr(ndr, "buffer", r->in.buffer);
16741 if (r->in.buffer) {
16742 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
16745 ndr_print_uint32(ndr, "offered", r->in.offered);
16748 if (flags & NDR_OUT) {
16749 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
16751 ndr_print_ptr(ndr, "count", r->out.count);
16753 ndr_print_uint32(ndr, "count", *r->out.count);
16755 ndr_print_ptr(ndr, "info", r->out.info);
16758 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
16760 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
16762 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
16763 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
16764 ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &r->out.info[cntr_info_1]);
16771 ndr_print_ptr(ndr, "needed", r->out.needed);
16773 ndr_print_uint32(ndr, "needed", *r->out.needed);
16775 ndr_print_WERROR(ndr, "result", r->out.result);
16781 static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
16783 if (flags & NDR_IN) {
16784 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
16785 if (r->in.server) {
16786 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16787 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16788 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16789 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16791 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
16792 if (r->in.environment) {
16793 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
16794 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16795 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
16796 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16798 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16799 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
16800 if (r->in.buffer) {
16801 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
16803 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
16805 if (flags & NDR_OUT) {
16806 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
16809 struct ndr_push *_ndr_info;
16810 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
16811 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
16812 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
16813 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
16816 if (r->out.needed == NULL) {
16817 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16819 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
16820 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16822 return NDR_ERR_SUCCESS;
16825 static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrintProcessorDirectory *r)
16827 uint32_t _ptr_server;
16828 uint32_t _ptr_environment;
16829 uint32_t _ptr_buffer;
16830 uint32_t _ptr_info;
16831 TALLOC_CTX *_mem_save_server_0;
16832 TALLOC_CTX *_mem_save_environment_0;
16833 TALLOC_CTX *_mem_save_buffer_0;
16834 TALLOC_CTX *_mem_save_info_0;
16835 TALLOC_CTX *_mem_save_needed_0;
16836 if (flags & NDR_IN) {
16837 ZERO_STRUCT(r->out);
16839 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
16841 NDR_PULL_ALLOC(ndr, r->in.server);
16843 r->in.server = NULL;
16845 if (r->in.server) {
16846 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
16847 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
16848 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
16849 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
16850 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
16851 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));
16853 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
16854 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
16855 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
16857 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
16858 if (_ptr_environment) {
16859 NDR_PULL_ALLOC(ndr, r->in.environment);
16861 r->in.environment = NULL;
16863 if (r->in.environment) {
16864 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
16865 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
16866 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
16867 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
16868 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
16869 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));
16871 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
16872 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
16873 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
16875 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16876 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
16878 NDR_PULL_ALLOC(ndr, r->in.buffer);
16880 r->in.buffer = NULL;
16882 if (r->in.buffer) {
16883 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
16884 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
16885 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
16886 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
16888 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
16889 NDR_PULL_ALLOC(ndr, r->out.needed);
16890 ZERO_STRUCTP(r->out.needed);
16892 if (flags & NDR_OUT) {
16893 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
16895 NDR_PULL_ALLOC(ndr, r->out.info);
16897 r->out.info = NULL;
16900 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16901 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
16903 struct ndr_pull *_ndr_info;
16904 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
16905 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
16906 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
16907 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
16909 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
16911 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16912 NDR_PULL_ALLOC(ndr, r->out.needed);
16914 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
16915 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
16916 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
16917 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
16918 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16920 return NDR_ERR_SUCCESS;
16923 _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
16925 ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
16927 if (flags & NDR_SET_VALUES) {
16928 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16930 if (flags & NDR_IN) {
16931 ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
16933 ndr_print_ptr(ndr, "server", r->in.server);
16935 if (r->in.server) {
16936 ndr_print_string(ndr, "server", r->in.server);
16939 ndr_print_ptr(ndr, "environment", r->in.environment);
16941 if (r->in.environment) {
16942 ndr_print_string(ndr, "environment", r->in.environment);
16945 ndr_print_uint32(ndr, "level", r->in.level);
16946 ndr_print_ptr(ndr, "buffer", r->in.buffer);
16948 if (r->in.buffer) {
16949 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
16952 ndr_print_uint32(ndr, "offered", r->in.offered);
16955 if (flags & NDR_OUT) {
16956 ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
16958 ndr_print_ptr(ndr, "info", r->out.info);
16961 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
16962 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr, "info", r->out.info);
16965 ndr_print_ptr(ndr, "needed", r->out.needed);
16967 ndr_print_uint32(ndr, "needed", *r->out.needed);
16969 ndr_print_WERROR(ndr, "result", r->out.result);
16975 static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartDocPrinter *r)
16977 if (flags & NDR_IN) {
16978 if (r->in.handle == NULL) {
16979 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16981 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16982 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16983 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
16984 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
16986 if (flags & NDR_OUT) {
16987 if (r->out.job_id == NULL) {
16988 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16990 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
16991 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16993 return NDR_ERR_SUCCESS;
16996 static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartDocPrinter *r)
16998 TALLOC_CTX *_mem_save_handle_0;
16999 TALLOC_CTX *_mem_save_job_id_0;
17000 if (flags & NDR_IN) {
17001 ZERO_STRUCT(r->out);
17003 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17004 NDR_PULL_ALLOC(ndr, r->in.handle);
17006 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17007 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17008 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17009 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17010 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
17011 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
17012 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
17013 NDR_PULL_ALLOC(ndr, r->out.job_id);
17014 ZERO_STRUCTP(r->out.job_id);
17016 if (flags & NDR_OUT) {
17017 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17018 NDR_PULL_ALLOC(ndr, r->out.job_id);
17020 _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
17021 NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
17022 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
17023 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
17024 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17026 return NDR_ERR_SUCCESS;
17029 _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartDocPrinter *r)
17031 ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
17033 if (flags & NDR_SET_VALUES) {
17034 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17036 if (flags & NDR_IN) {
17037 ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
17039 ndr_print_ptr(ndr, "handle", r->in.handle);
17041 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17043 ndr_print_uint32(ndr, "level", r->in.level);
17044 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
17045 ndr_print_spoolss_DocumentInfo(ndr, "info", &r->in.info);
17048 if (flags & NDR_OUT) {
17049 ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
17051 ndr_print_ptr(ndr, "job_id", r->out.job_id);
17053 ndr_print_uint32(ndr, "job_id", *r->out.job_id);
17055 ndr_print_WERROR(ndr, "result", r->out.result);
17061 static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartPagePrinter *r)
17063 if (flags & NDR_IN) {
17064 if (r->in.handle == NULL) {
17065 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17067 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17069 if (flags & NDR_OUT) {
17070 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17072 return NDR_ERR_SUCCESS;
17075 static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartPagePrinter *r)
17077 TALLOC_CTX *_mem_save_handle_0;
17078 if (flags & NDR_IN) {
17079 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17080 NDR_PULL_ALLOC(ndr, r->in.handle);
17082 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17083 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17084 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17085 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17087 if (flags & NDR_OUT) {
17088 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17090 return NDR_ERR_SUCCESS;
17093 _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartPagePrinter *r)
17095 ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
17097 if (flags & NDR_SET_VALUES) {
17098 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17100 if (flags & NDR_IN) {
17101 ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
17103 ndr_print_ptr(ndr, "handle", r->in.handle);
17105 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17109 if (flags & NDR_OUT) {
17110 ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
17112 ndr_print_WERROR(ndr, "result", r->out.result);
17118 static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, int flags, const struct spoolss_WritePrinter *r)
17120 if (flags & NDR_IN) {
17121 if (r->in.handle == NULL) {
17122 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17124 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17125 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
17126 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
17128 if (flags & NDR_OUT) {
17129 if (r->out.num_written == NULL) {
17130 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17132 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_written));
17133 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17135 return NDR_ERR_SUCCESS;
17138 static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, int flags, struct spoolss_WritePrinter *r)
17140 TALLOC_CTX *_mem_save_handle_0;
17141 TALLOC_CTX *_mem_save_num_written_0;
17142 if (flags & NDR_IN) {
17143 ZERO_STRUCT(r->out);
17145 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17146 NDR_PULL_ALLOC(ndr, r->in.handle);
17148 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17149 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17150 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17151 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17152 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
17153 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
17154 NDR_PULL_ALLOC(ndr, r->out.num_written);
17155 ZERO_STRUCTP(r->out.num_written);
17157 if (flags & NDR_OUT) {
17158 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17159 NDR_PULL_ALLOC(ndr, r->out.num_written);
17161 _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
17162 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
17163 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
17164 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
17165 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17167 return NDR_ERR_SUCCESS;
17170 _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WritePrinter *r)
17172 ndr_print_struct(ndr, name, "spoolss_WritePrinter");
17174 if (flags & NDR_SET_VALUES) {
17175 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17177 if (flags & NDR_IN) {
17178 ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
17180 ndr_print_ptr(ndr, "handle", r->in.handle);
17182 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17184 ndr_print_DATA_BLOB(ndr, "data", r->in.data);
17185 ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
17188 if (flags & NDR_OUT) {
17189 ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
17191 ndr_print_ptr(ndr, "num_written", r->out.num_written);
17193 ndr_print_uint32(ndr, "num_written", *r->out.num_written);
17195 ndr_print_WERROR(ndr, "result", r->out.result);
17201 static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndPagePrinter *r)
17203 if (flags & NDR_IN) {
17204 if (r->in.handle == NULL) {
17205 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17207 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17209 if (flags & NDR_OUT) {
17210 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17212 return NDR_ERR_SUCCESS;
17215 static enum ndr_err_code ndr_pull_spoolss_EndPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndPagePrinter *r)
17217 TALLOC_CTX *_mem_save_handle_0;
17218 if (flags & NDR_IN) {
17219 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17220 NDR_PULL_ALLOC(ndr, r->in.handle);
17222 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17223 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17224 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17225 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17227 if (flags & NDR_OUT) {
17228 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17230 return NDR_ERR_SUCCESS;
17233 _PUBLIC_ void ndr_print_spoolss_EndPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndPagePrinter *r)
17235 ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
17237 if (flags & NDR_SET_VALUES) {
17238 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17240 if (flags & NDR_IN) {
17241 ndr_print_struct(ndr, "in", "spoolss_EndPagePrinter");
17243 ndr_print_ptr(ndr, "handle", r->in.handle);
17245 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17249 if (flags & NDR_OUT) {
17250 ndr_print_struct(ndr, "out", "spoolss_EndPagePrinter");
17252 ndr_print_WERROR(ndr, "result", r->out.result);
17258 static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AbortPrinter *r)
17260 if (flags & NDR_IN) {
17261 if (r->in.handle == NULL) {
17262 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17264 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17266 if (flags & NDR_OUT) {
17267 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17269 return NDR_ERR_SUCCESS;
17272 static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AbortPrinter *r)
17274 TALLOC_CTX *_mem_save_handle_0;
17275 if (flags & NDR_IN) {
17276 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17277 NDR_PULL_ALLOC(ndr, r->in.handle);
17279 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17280 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17281 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17282 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17284 if (flags & NDR_OUT) {
17285 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17287 return NDR_ERR_SUCCESS;
17290 _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AbortPrinter *r)
17292 ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
17294 if (flags & NDR_SET_VALUES) {
17295 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17297 if (flags & NDR_IN) {
17298 ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
17300 ndr_print_ptr(ndr, "handle", r->in.handle);
17302 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17306 if (flags & NDR_OUT) {
17307 ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
17309 ndr_print_WERROR(ndr, "result", r->out.result);
17315 static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReadPrinter *r)
17317 if (flags & NDR_IN) {
17318 if (r->in.handle == NULL) {
17319 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17321 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17322 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
17324 if (flags & NDR_OUT) {
17325 if (r->out.data == NULL) {
17326 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
17329 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
17330 if (r->out._data_size == NULL) {
17331 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17333 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
17334 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17336 return NDR_ERR_SUCCESS;
17339 static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReadPrinter *r)
17341 TALLOC_CTX *_mem_save_handle_0;
17342 TALLOC_CTX *_mem_save__data_size_0;
17343 if (flags & NDR_IN) {
17344 ZERO_STRUCT(r->out);
17346 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17347 NDR_PULL_ALLOC(ndr, r->in.handle);
17349 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17350 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17351 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17352 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17353 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
17354 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
17355 memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
17356 NDR_PULL_ALLOC(ndr, r->out._data_size);
17357 ZERO_STRUCTP(r->out._data_size);
17359 if (flags & NDR_OUT) {
17360 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
17361 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17362 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
17364 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
17365 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17366 NDR_PULL_ALLOC(ndr, r->out._data_size);
17368 _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
17369 NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
17370 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
17371 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
17372 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17374 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_size));
17377 return NDR_ERR_SUCCESS;
17380 _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReadPrinter *r)
17382 ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
17384 if (flags & NDR_SET_VALUES) {
17385 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17387 if (flags & NDR_IN) {
17388 ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
17390 ndr_print_ptr(ndr, "handle", r->in.handle);
17392 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17394 ndr_print_uint32(ndr, "data_size", r->in.data_size);
17397 if (flags & NDR_OUT) {
17398 ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
17400 ndr_print_ptr(ndr, "data", r->out.data);
17402 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
17404 ndr_print_ptr(ndr, "_data_size", r->out._data_size);
17406 ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
17408 ndr_print_WERROR(ndr, "result", r->out.result);
17414 static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndDocPrinter *r)
17416 if (flags & NDR_IN) {
17417 if (r->in.handle == NULL) {
17418 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17420 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17422 if (flags & NDR_OUT) {
17423 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17425 return NDR_ERR_SUCCESS;
17428 static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndDocPrinter *r)
17430 TALLOC_CTX *_mem_save_handle_0;
17431 if (flags & NDR_IN) {
17432 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17433 NDR_PULL_ALLOC(ndr, r->in.handle);
17435 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17436 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17437 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17438 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17440 if (flags & NDR_OUT) {
17441 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17443 return NDR_ERR_SUCCESS;
17446 _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndDocPrinter *r)
17448 ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
17450 if (flags & NDR_SET_VALUES) {
17451 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17453 if (flags & NDR_IN) {
17454 ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
17456 ndr_print_ptr(ndr, "handle", r->in.handle);
17458 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17462 if (flags & NDR_OUT) {
17463 ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
17465 ndr_print_WERROR(ndr, "result", r->out.result);
17471 static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, int flags, const struct spoolss_AddJob *r)
17473 if (flags & NDR_IN) {
17474 if (r->in.handle == NULL) {
17475 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17477 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17478 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
17479 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
17480 if (r->in.buffer) {
17481 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
17482 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
17484 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
17486 if (flags & NDR_OUT) {
17487 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
17488 if (r->out.buffer) {
17489 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
17490 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
17492 if (r->out.needed == NULL) {
17493 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17495 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
17496 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17498 return NDR_ERR_SUCCESS;
17501 static enum ndr_err_code ndr_pull_spoolss_AddJob(struct ndr_pull *ndr, int flags, struct spoolss_AddJob *r)
17503 uint32_t _ptr_buffer;
17504 TALLOC_CTX *_mem_save_handle_0;
17505 TALLOC_CTX *_mem_save_buffer_0;
17506 TALLOC_CTX *_mem_save_needed_0;
17507 if (flags & NDR_IN) {
17508 ZERO_STRUCT(r->out);
17510 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17511 NDR_PULL_ALLOC(ndr, r->in.handle);
17513 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17514 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17515 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17516 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17517 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
17518 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
17520 NDR_PULL_ALLOC(ndr, r->in.buffer);
17522 r->in.buffer = NULL;
17524 if (r->in.buffer) {
17525 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
17526 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
17527 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
17528 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
17529 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
17530 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
17532 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
17533 NDR_PULL_ALLOC(ndr, r->out.needed);
17534 ZERO_STRUCTP(r->out.needed);
17535 if (r->in.buffer) {
17536 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
17539 if (flags & NDR_OUT) {
17540 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
17542 NDR_PULL_ALLOC(ndr, r->out.buffer);
17544 r->out.buffer = NULL;
17546 if (r->out.buffer) {
17547 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
17548 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
17549 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
17550 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
17551 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
17552 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
17554 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17555 NDR_PULL_ALLOC(ndr, r->out.needed);
17557 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
17558 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
17559 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
17560 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
17561 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17562 if (r->out.buffer) {
17563 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
17566 return NDR_ERR_SUCCESS;
17569 _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r)
17571 ndr_print_struct(ndr, name, "spoolss_AddJob");
17573 if (flags & NDR_SET_VALUES) {
17574 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17576 if (flags & NDR_IN) {
17577 ndr_print_struct(ndr, "in", "spoolss_AddJob");
17579 ndr_print_ptr(ndr, "handle", r->in.handle);
17581 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17583 ndr_print_uint32(ndr, "level", r->in.level);
17584 ndr_print_ptr(ndr, "buffer", r->in.buffer);
17586 if (r->in.buffer) {
17587 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
17590 ndr_print_uint32(ndr, "offered", r->in.offered);
17593 if (flags & NDR_OUT) {
17594 ndr_print_struct(ndr, "out", "spoolss_AddJob");
17596 ndr_print_ptr(ndr, "buffer", r->out.buffer);
17598 if (r->out.buffer) {
17599 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
17602 ndr_print_ptr(ndr, "needed", r->out.needed);
17604 ndr_print_uint32(ndr, "needed", *r->out.needed);
17606 ndr_print_WERROR(ndr, "result", r->out.result);
17612 static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, int flags, const struct spoolss_ScheduleJob *r)
17614 if (flags & NDR_IN) {
17615 if (r->in.handle == NULL) {
17616 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17618 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17619 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
17621 if (flags & NDR_OUT) {
17622 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17624 return NDR_ERR_SUCCESS;
17627 static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, int flags, struct spoolss_ScheduleJob *r)
17629 TALLOC_CTX *_mem_save_handle_0;
17630 if (flags & NDR_IN) {
17631 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17632 NDR_PULL_ALLOC(ndr, r->in.handle);
17634 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17635 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17636 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17637 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17638 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.jobid));
17640 if (flags & NDR_OUT) {
17641 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17643 return NDR_ERR_SUCCESS;
17646 _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ScheduleJob *r)
17648 ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
17650 if (flags & NDR_SET_VALUES) {
17651 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17653 if (flags & NDR_IN) {
17654 ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
17656 ndr_print_ptr(ndr, "handle", r->in.handle);
17658 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17660 ndr_print_uint32(ndr, "jobid", r->in.jobid);
17663 if (flags & NDR_OUT) {
17664 ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
17666 ndr_print_WERROR(ndr, "result", r->out.result);
17672 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterData *r)
17674 if (flags & NDR_IN) {
17675 if (r->in.handle == NULL) {
17676 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17678 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17679 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
17680 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17681 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
17682 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));
17683 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
17685 if (flags & NDR_OUT) {
17686 if (r->out.type == NULL) {
17687 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17689 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, *r->out.type));
17690 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
17691 if (r->out.needed == NULL) {
17692 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17694 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
17695 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17697 return NDR_ERR_SUCCESS;
17700 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterData *r)
17702 TALLOC_CTX *_mem_save_handle_0;
17703 TALLOC_CTX *_mem_save_type_0;
17704 TALLOC_CTX *_mem_save_needed_0;
17705 if (flags & NDR_IN) {
17706 ZERO_STRUCT(r->out);
17708 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17709 NDR_PULL_ALLOC(ndr, r->in.handle);
17711 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17712 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17713 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17714 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17715 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
17716 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
17717 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
17718 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));
17720 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
17721 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));
17722 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
17723 NDR_PULL_ALLOC(ndr, r->out.type);
17724 ZERO_STRUCTP(r->out.type);
17725 NDR_PULL_ALLOC(ndr, r->out.needed);
17726 ZERO_STRUCTP(r->out.needed);
17728 if (flags & NDR_OUT) {
17729 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17730 NDR_PULL_ALLOC(ndr, r->out.type);
17732 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
17733 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
17734 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->out.type));
17735 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
17736 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->out.data));
17737 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17738 NDR_PULL_ALLOC(ndr, r->out.needed);
17740 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
17741 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
17742 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
17743 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
17744 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17746 return NDR_ERR_SUCCESS;
17749 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterData *r)
17751 if (flags & NDR_IN) {
17752 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
17754 if (flags & NDR_OUT) {
17755 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.data, r->in.type));
17756 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
17758 return NDR_ERR_SUCCESS;
17761 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterData *r)
17763 if (flags & NDR_IN) {
17764 ZERO_STRUCT(r->out);
17766 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, &r->in.type));
17768 if (flags & NDR_OUT) {
17769 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.data, r->in.type));
17770 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
17772 return NDR_ERR_SUCCESS;
17775 _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterData *r)
17777 ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
17779 if (flags & NDR_SET_VALUES) {
17780 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17782 if (flags & NDR_IN) {
17783 ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
17785 ndr_print_ptr(ndr, "handle", r->in.handle);
17787 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17789 ndr_print_string(ndr, "value_name", r->in.value_name);
17790 ndr_print_uint32(ndr, "offered", r->in.offered);
17793 if (flags & NDR_OUT) {
17794 ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
17796 ndr_print_ptr(ndr, "type", r->out.type);
17798 ndr_print_spoolss_PrinterDataType(ndr, "type", *r->out.type);
17800 ndr_print_set_switch_value(ndr, &r->out.data, *r->out.type);
17801 ndr_print_spoolss_PrinterData(ndr, "data", &r->out.data);
17802 ndr_print_ptr(ndr, "needed", r->out.needed);
17804 ndr_print_uint32(ndr, "needed", *r->out.needed);
17806 ndr_print_WERROR(ndr, "result", r->out.result);
17812 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterData *r)
17814 if (flags & NDR_IN) {
17815 if (r->in.handle == NULL) {
17816 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17818 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17819 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
17820 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17821 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
17822 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));
17823 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
17824 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
17825 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
17827 if (flags & NDR_OUT) {
17828 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17830 return NDR_ERR_SUCCESS;
17833 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterData *r)
17835 if (flags & NDR_IN) {
17836 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
17838 if (flags & NDR_OUT) {
17839 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.data, r->in.type));
17840 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
17842 return NDR_ERR_SUCCESS;
17845 static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterData *r)
17847 TALLOC_CTX *_mem_save_handle_0;
17848 if (flags & NDR_IN) {
17849 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17850 NDR_PULL_ALLOC(ndr, r->in.handle);
17852 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17853 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17854 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17855 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17856 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
17857 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
17858 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
17859 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));
17861 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
17862 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));
17863 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, &r->in.type));
17865 struct ndr_pull *_ndr_data;
17866 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
17867 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
17868 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
17869 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
17871 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
17873 if (flags & NDR_OUT) {
17874 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17876 return NDR_ERR_SUCCESS;
17879 _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r)
17881 ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
17883 if (flags & NDR_SET_VALUES) {
17884 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17886 if (flags & NDR_IN) {
17887 ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
17889 ndr_print_ptr(ndr, "handle", r->in.handle);
17891 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17893 ndr_print_string(ndr, "value_name", r->in.value_name);
17894 ndr_print_spoolss_PrinterDataType(ndr, "type", r->in.type);
17895 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
17896 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
17897 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);
17900 if (flags & NDR_OUT) {
17901 ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
17903 ndr_print_WERROR(ndr, "result", r->out.result);
17909 static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, int flags, const struct spoolss_WaitForPrinterChange *r)
17911 if (flags & NDR_IN) {
17913 if (flags & NDR_OUT) {
17914 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17916 return NDR_ERR_SUCCESS;
17919 static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, int flags, struct spoolss_WaitForPrinterChange *r)
17921 if (flags & NDR_IN) {
17923 if (flags & NDR_OUT) {
17924 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17926 return NDR_ERR_SUCCESS;
17929 _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r)
17931 ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
17933 if (flags & NDR_SET_VALUES) {
17934 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17936 if (flags & NDR_IN) {
17937 ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
17941 if (flags & NDR_OUT) {
17942 ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
17944 ndr_print_WERROR(ndr, "result", r->out.result);
17950 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ClosePrinter *r)
17952 if (flags & NDR_IN) {
17953 if (r->in.handle == NULL) {
17954 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17956 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17958 if (flags & NDR_OUT) {
17959 if (r->out.handle == NULL) {
17960 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17962 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
17963 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17965 return NDR_ERR_SUCCESS;
17968 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ClosePrinter *r)
17970 TALLOC_CTX *_mem_save_handle_0;
17971 if (flags & NDR_IN) {
17972 ZERO_STRUCT(r->out);
17974 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17975 NDR_PULL_ALLOC(ndr, r->in.handle);
17977 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17978 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17979 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17980 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17981 NDR_PULL_ALLOC(ndr, r->out.handle);
17982 *r->out.handle = *r->in.handle;
17984 if (flags & NDR_OUT) {
17985 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17986 NDR_PULL_ALLOC(ndr, r->out.handle);
17988 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17989 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
17990 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
17991 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17992 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17994 return NDR_ERR_SUCCESS;
17997 _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ClosePrinter *r)
17999 ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
18001 if (flags & NDR_SET_VALUES) {
18002 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18004 if (flags & NDR_IN) {
18005 ndr_print_struct(ndr, "in", "spoolss_ClosePrinter");
18007 ndr_print_ptr(ndr, "handle", r->in.handle);
18009 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18013 if (flags & NDR_OUT) {
18014 ndr_print_struct(ndr, "out", "spoolss_ClosePrinter");
18016 ndr_print_ptr(ndr, "handle", r->out.handle);
18018 ndr_print_policy_handle(ndr, "handle", r->out.handle);
18020 ndr_print_WERROR(ndr, "result", r->out.result);
18026 static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, int flags, const struct spoolss_AddForm *r)
18028 if (flags & NDR_IN) {
18029 if (r->in.handle == NULL) {
18030 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18032 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18033 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18034 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
18035 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
18037 if (flags & NDR_OUT) {
18038 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18040 return NDR_ERR_SUCCESS;
18043 static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, int flags, struct spoolss_AddForm *r)
18045 TALLOC_CTX *_mem_save_handle_0;
18046 if (flags & NDR_IN) {
18047 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18048 NDR_PULL_ALLOC(ndr, r->in.handle);
18050 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18051 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18052 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18053 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18054 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18055 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
18056 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
18058 if (flags & NDR_OUT) {
18059 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18061 return NDR_ERR_SUCCESS;
18064 _PUBLIC_ void ndr_print_spoolss_AddForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddForm *r)
18066 ndr_print_struct(ndr, name, "spoolss_AddForm");
18068 if (flags & NDR_SET_VALUES) {
18069 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18071 if (flags & NDR_IN) {
18072 ndr_print_struct(ndr, "in", "spoolss_AddForm");
18074 ndr_print_ptr(ndr, "handle", r->in.handle);
18076 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18078 ndr_print_uint32(ndr, "level", r->in.level);
18079 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
18080 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
18083 if (flags & NDR_OUT) {
18084 ndr_print_struct(ndr, "out", "spoolss_AddForm");
18086 ndr_print_WERROR(ndr, "result", r->out.result);
18092 static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, int flags, const struct spoolss_DeleteForm *r)
18094 if (flags & NDR_IN) {
18095 if (r->in.handle == NULL) {
18096 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18098 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18099 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
18100 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
18102 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));
18104 if (flags & NDR_OUT) {
18105 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18107 return NDR_ERR_SUCCESS;
18110 static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, int flags, struct spoolss_DeleteForm *r)
18112 TALLOC_CTX *_mem_save_handle_0;
18113 if (flags & NDR_IN) {
18114 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18115 NDR_PULL_ALLOC(ndr, r->in.handle);
18117 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18118 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18119 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18120 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18121 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
18122 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
18123 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
18124 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));
18126 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
18127 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));
18129 if (flags & NDR_OUT) {
18130 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18132 return NDR_ERR_SUCCESS;
18135 _PUBLIC_ void ndr_print_spoolss_DeleteForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteForm *r)
18137 ndr_print_struct(ndr, name, "spoolss_DeleteForm");
18139 if (flags & NDR_SET_VALUES) {
18140 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18142 if (flags & NDR_IN) {
18143 ndr_print_struct(ndr, "in", "spoolss_DeleteForm");
18145 ndr_print_ptr(ndr, "handle", r->in.handle);
18147 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18149 ndr_print_string(ndr, "form_name", r->in.form_name);
18152 if (flags & NDR_OUT) {
18153 ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
18155 ndr_print_WERROR(ndr, "result", r->out.result);
18161 static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, int flags, const struct spoolss_GetForm *r)
18163 if (flags & NDR_IN) {
18164 if (r->in.handle == NULL) {
18165 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18167 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18168 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
18169 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18170 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
18171 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));
18172 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18173 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18174 if (r->in.buffer) {
18175 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18177 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18179 if (flags & NDR_OUT) {
18180 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18183 struct ndr_push *_ndr_info;
18184 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
18185 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
18186 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
18187 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
18190 if (r->out.needed == NULL) {
18191 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18193 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18194 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18196 return NDR_ERR_SUCCESS;
18199 static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, int flags, struct spoolss_GetForm *r)
18201 uint32_t _ptr_buffer;
18202 uint32_t _ptr_info;
18203 TALLOC_CTX *_mem_save_handle_0;
18204 TALLOC_CTX *_mem_save_buffer_0;
18205 TALLOC_CTX *_mem_save_info_0;
18206 TALLOC_CTX *_mem_save_needed_0;
18207 if (flags & NDR_IN) {
18208 ZERO_STRUCT(r->out);
18210 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18211 NDR_PULL_ALLOC(ndr, r->in.handle);
18213 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18214 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18215 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18216 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18217 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
18218 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
18219 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
18220 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));
18222 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
18223 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));
18224 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18225 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18227 NDR_PULL_ALLOC(ndr, r->in.buffer);
18229 r->in.buffer = NULL;
18231 if (r->in.buffer) {
18232 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18233 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18234 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18235 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18237 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18238 NDR_PULL_ALLOC(ndr, r->out.needed);
18239 ZERO_STRUCTP(r->out.needed);
18241 if (flags & NDR_OUT) {
18242 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18244 NDR_PULL_ALLOC(ndr, r->out.info);
18246 r->out.info = NULL;
18249 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18250 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18252 struct ndr_pull *_ndr_info;
18253 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
18254 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
18255 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
18256 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
18258 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18260 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18261 NDR_PULL_ALLOC(ndr, r->out.needed);
18263 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18264 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18265 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18266 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18267 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18269 return NDR_ERR_SUCCESS;
18272 _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetForm *r)
18274 ndr_print_struct(ndr, name, "spoolss_GetForm");
18276 if (flags & NDR_SET_VALUES) {
18277 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18279 if (flags & NDR_IN) {
18280 ndr_print_struct(ndr, "in", "spoolss_GetForm");
18282 ndr_print_ptr(ndr, "handle", r->in.handle);
18284 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18286 ndr_print_string(ndr, "form_name", r->in.form_name);
18287 ndr_print_uint32(ndr, "level", r->in.level);
18288 ndr_print_ptr(ndr, "buffer", r->in.buffer);
18290 if (r->in.buffer) {
18291 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
18294 ndr_print_uint32(ndr, "offered", r->in.offered);
18297 if (flags & NDR_OUT) {
18298 ndr_print_struct(ndr, "out", "spoolss_GetForm");
18300 ndr_print_ptr(ndr, "info", r->out.info);
18303 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
18304 ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
18307 ndr_print_ptr(ndr, "needed", r->out.needed);
18309 ndr_print_uint32(ndr, "needed", *r->out.needed);
18311 ndr_print_WERROR(ndr, "result", r->out.result);
18317 static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, int flags, const struct spoolss_SetForm *r)
18319 if (flags & NDR_IN) {
18320 if (r->in.handle == NULL) {
18321 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18323 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18324 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
18325 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18326 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
18327 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));
18328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18329 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
18330 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
18332 if (flags & NDR_OUT) {
18333 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18335 return NDR_ERR_SUCCESS;
18338 static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, int flags, struct spoolss_SetForm *r)
18340 TALLOC_CTX *_mem_save_handle_0;
18341 if (flags & NDR_IN) {
18342 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18343 NDR_PULL_ALLOC(ndr, r->in.handle);
18345 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18346 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18347 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18348 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18349 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
18350 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
18351 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
18352 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));
18354 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
18355 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));
18356 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18357 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
18358 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
18360 if (flags & NDR_OUT) {
18361 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18363 return NDR_ERR_SUCCESS;
18366 _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetForm *r)
18368 ndr_print_struct(ndr, name, "spoolss_SetForm");
18370 if (flags & NDR_SET_VALUES) {
18371 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18373 if (flags & NDR_IN) {
18374 ndr_print_struct(ndr, "in", "spoolss_SetForm");
18376 ndr_print_ptr(ndr, "handle", r->in.handle);
18378 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18380 ndr_print_string(ndr, "form_name", r->in.form_name);
18381 ndr_print_uint32(ndr, "level", r->in.level);
18382 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
18383 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
18386 if (flags & NDR_OUT) {
18387 ndr_print_struct(ndr, "out", "spoolss_SetForm");
18389 ndr_print_WERROR(ndr, "result", r->out.result);
18395 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct _spoolss_EnumForms *r)
18397 if (flags & NDR_IN) {
18398 if (r->in.handle == NULL) {
18399 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18401 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18402 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18403 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18404 if (r->in.buffer) {
18405 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18407 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18409 if (flags & NDR_OUT) {
18410 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18412 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
18414 if (r->out.needed == NULL) {
18415 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18417 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18418 if (r->out.count == NULL) {
18419 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18421 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
18422 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18424 return NDR_ERR_SUCCESS;
18427 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct _spoolss_EnumForms *r)
18429 uint32_t _ptr_buffer;
18430 uint32_t _ptr_info;
18431 TALLOC_CTX *_mem_save_handle_0;
18432 TALLOC_CTX *_mem_save_buffer_0;
18433 TALLOC_CTX *_mem_save_info_0;
18434 TALLOC_CTX *_mem_save_needed_0;
18435 TALLOC_CTX *_mem_save_count_0;
18436 if (flags & NDR_IN) {
18437 ZERO_STRUCT(r->out);
18439 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18440 NDR_PULL_ALLOC(ndr, r->in.handle);
18442 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18443 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18444 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18445 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18446 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18447 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18449 NDR_PULL_ALLOC(ndr, r->in.buffer);
18451 r->in.buffer = NULL;
18453 if (r->in.buffer) {
18454 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18455 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18456 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18457 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18459 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18460 NDR_PULL_ALLOC(ndr, r->out.needed);
18461 ZERO_STRUCTP(r->out.needed);
18462 NDR_PULL_ALLOC(ndr, r->out.count);
18463 ZERO_STRUCTP(r->out.count);
18465 if (flags & NDR_OUT) {
18466 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18468 NDR_PULL_ALLOC(ndr, r->out.info);
18470 r->out.info = NULL;
18473 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18474 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18475 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
18476 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18478 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18479 NDR_PULL_ALLOC(ndr, r->out.needed);
18481 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18482 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18483 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18484 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18485 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18486 NDR_PULL_ALLOC(ndr, r->out.count);
18488 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
18489 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
18490 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
18491 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
18492 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18494 return NDR_ERR_SUCCESS;
18497 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct __spoolss_EnumForms *r)
18499 uint32_t cntr_info_0;
18500 if (flags & NDR_IN) {
18501 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18502 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
18504 if (flags & NDR_OUT) {
18505 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18506 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18507 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18509 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18510 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18513 return NDR_ERR_SUCCESS;
18516 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct __spoolss_EnumForms *r)
18518 uint32_t cntr_info_0;
18519 TALLOC_CTX *_mem_save_info_0;
18520 if (flags & NDR_IN) {
18521 ZERO_STRUCT(r->out);
18523 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18524 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
18526 if (flags & NDR_OUT) {
18527 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
18528 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18529 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18530 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18531 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18532 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18534 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18535 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18537 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18539 return NDR_ERR_SUCCESS;
18542 _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumForms *r)
18544 uint32_t cntr_info_1;
18545 ndr_print_struct(ndr, name, "spoolss_EnumForms");
18547 if (flags & NDR_SET_VALUES) {
18548 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18550 if (flags & NDR_IN) {
18551 ndr_print_struct(ndr, "in", "spoolss_EnumForms");
18553 ndr_print_ptr(ndr, "handle", r->in.handle);
18555 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18557 ndr_print_uint32(ndr, "level", r->in.level);
18558 ndr_print_ptr(ndr, "buffer", r->in.buffer);
18560 if (r->in.buffer) {
18561 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
18564 ndr_print_uint32(ndr, "offered", r->in.offered);
18567 if (flags & NDR_OUT) {
18568 ndr_print_struct(ndr, "out", "spoolss_EnumForms");
18570 ndr_print_ptr(ndr, "count", r->out.count);
18572 ndr_print_uint32(ndr, "count", *r->out.count);
18574 ndr_print_ptr(ndr, "info", r->out.info);
18577 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
18579 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
18581 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
18582 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
18583 ndr_print_spoolss_FormInfo(ndr, "info", &r->out.info[cntr_info_1]);
18590 ndr_print_ptr(ndr, "needed", r->out.needed);
18592 ndr_print_uint32(ndr, "needed", *r->out.needed);
18594 ndr_print_WERROR(ndr, "result", r->out.result);
18600 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPorts *r)
18602 if (flags & NDR_IN) {
18603 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
18604 if (r->in.servername) {
18605 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
18606 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18607 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
18608 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18610 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18611 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18612 if (r->in.buffer) {
18613 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18615 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18617 if (flags & NDR_OUT) {
18618 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18620 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
18622 if (r->out.needed == NULL) {
18623 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18625 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18626 if (r->out.count == NULL) {
18627 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18629 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
18630 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18632 return NDR_ERR_SUCCESS;
18635 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPorts *r)
18637 uint32_t _ptr_servername;
18638 uint32_t _ptr_buffer;
18639 uint32_t _ptr_info;
18640 TALLOC_CTX *_mem_save_servername_0;
18641 TALLOC_CTX *_mem_save_buffer_0;
18642 TALLOC_CTX *_mem_save_info_0;
18643 TALLOC_CTX *_mem_save_needed_0;
18644 TALLOC_CTX *_mem_save_count_0;
18645 if (flags & NDR_IN) {
18646 ZERO_STRUCT(r->out);
18648 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
18649 if (_ptr_servername) {
18650 NDR_PULL_ALLOC(ndr, r->in.servername);
18652 r->in.servername = NULL;
18654 if (r->in.servername) {
18655 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
18656 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
18657 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
18658 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
18659 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
18660 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));
18662 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
18663 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
18664 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
18666 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18667 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18669 NDR_PULL_ALLOC(ndr, r->in.buffer);
18671 r->in.buffer = NULL;
18673 if (r->in.buffer) {
18674 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18675 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18676 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18677 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18679 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18680 NDR_PULL_ALLOC(ndr, r->out.needed);
18681 ZERO_STRUCTP(r->out.needed);
18682 NDR_PULL_ALLOC(ndr, r->out.count);
18683 ZERO_STRUCTP(r->out.count);
18685 if (flags & NDR_OUT) {
18686 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18688 NDR_PULL_ALLOC(ndr, r->out.info);
18690 r->out.info = NULL;
18693 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18694 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18695 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
18696 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18698 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18699 NDR_PULL_ALLOC(ndr, r->out.needed);
18701 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18702 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18703 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18704 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18705 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18706 NDR_PULL_ALLOC(ndr, r->out.count);
18708 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
18709 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
18710 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
18711 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
18712 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18714 return NDR_ERR_SUCCESS;
18717 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPorts *r)
18719 uint32_t cntr_info_0;
18720 if (flags & NDR_IN) {
18721 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18722 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
18724 if (flags & NDR_OUT) {
18725 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18726 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18727 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18729 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18730 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18733 return NDR_ERR_SUCCESS;
18736 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPorts *r)
18738 uint32_t cntr_info_0;
18739 TALLOC_CTX *_mem_save_info_0;
18740 if (flags & NDR_IN) {
18741 ZERO_STRUCT(r->out);
18743 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18744 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
18746 if (flags & NDR_OUT) {
18747 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
18748 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18749 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18750 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18751 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18752 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18754 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18755 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18757 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18759 return NDR_ERR_SUCCESS;
18762 _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPorts *r)
18764 uint32_t cntr_info_1;
18765 ndr_print_struct(ndr, name, "spoolss_EnumPorts");
18767 if (flags & NDR_SET_VALUES) {
18768 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18770 if (flags & NDR_IN) {
18771 ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
18773 ndr_print_ptr(ndr, "servername", r->in.servername);
18775 if (r->in.servername) {
18776 ndr_print_string(ndr, "servername", r->in.servername);
18779 ndr_print_uint32(ndr, "level", r->in.level);
18780 ndr_print_ptr(ndr, "buffer", r->in.buffer);
18782 if (r->in.buffer) {
18783 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
18786 ndr_print_uint32(ndr, "offered", r->in.offered);
18789 if (flags & NDR_OUT) {
18790 ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
18792 ndr_print_ptr(ndr, "count", r->out.count);
18794 ndr_print_uint32(ndr, "count", *r->out.count);
18796 ndr_print_ptr(ndr, "info", r->out.info);
18799 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
18801 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
18803 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
18804 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
18805 ndr_print_spoolss_PortInfo(ndr, "info", &r->out.info[cntr_info_1]);
18812 ndr_print_ptr(ndr, "needed", r->out.needed);
18814 ndr_print_uint32(ndr, "needed", *r->out.needed);
18816 ndr_print_WERROR(ndr, "result", r->out.result);
18822 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumMonitors *r)
18824 if (flags & NDR_IN) {
18825 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
18826 if (r->in.servername) {
18827 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
18828 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18829 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
18830 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18832 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18833 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18834 if (r->in.buffer) {
18835 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18837 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18839 if (flags & NDR_OUT) {
18840 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18842 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
18844 if (r->out.needed == NULL) {
18845 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18847 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18848 if (r->out.count == NULL) {
18849 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18851 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
18852 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18854 return NDR_ERR_SUCCESS;
18857 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumMonitors *r)
18859 uint32_t _ptr_servername;
18860 uint32_t _ptr_buffer;
18861 uint32_t _ptr_info;
18862 TALLOC_CTX *_mem_save_servername_0;
18863 TALLOC_CTX *_mem_save_buffer_0;
18864 TALLOC_CTX *_mem_save_info_0;
18865 TALLOC_CTX *_mem_save_needed_0;
18866 TALLOC_CTX *_mem_save_count_0;
18867 if (flags & NDR_IN) {
18868 ZERO_STRUCT(r->out);
18870 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
18871 if (_ptr_servername) {
18872 NDR_PULL_ALLOC(ndr, r->in.servername);
18874 r->in.servername = NULL;
18876 if (r->in.servername) {
18877 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
18878 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
18879 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
18880 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
18881 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
18882 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));
18884 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
18885 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
18886 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
18888 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18889 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18891 NDR_PULL_ALLOC(ndr, r->in.buffer);
18893 r->in.buffer = NULL;
18895 if (r->in.buffer) {
18896 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18897 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18898 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18899 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18901 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18902 NDR_PULL_ALLOC(ndr, r->out.needed);
18903 ZERO_STRUCTP(r->out.needed);
18904 NDR_PULL_ALLOC(ndr, r->out.count);
18905 ZERO_STRUCTP(r->out.count);
18907 if (flags & NDR_OUT) {
18908 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18910 NDR_PULL_ALLOC(ndr, r->out.info);
18912 r->out.info = NULL;
18915 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18916 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18917 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
18918 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18920 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18921 NDR_PULL_ALLOC(ndr, r->out.needed);
18923 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18924 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18925 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18926 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18927 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18928 NDR_PULL_ALLOC(ndr, r->out.count);
18930 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
18931 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
18932 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
18933 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
18934 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18936 return NDR_ERR_SUCCESS;
18939 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumMonitors *r)
18941 uint32_t cntr_info_0;
18942 if (flags & NDR_IN) {
18943 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18944 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
18946 if (flags & NDR_OUT) {
18947 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18948 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18949 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18951 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18952 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18955 return NDR_ERR_SUCCESS;
18958 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumMonitors *r)
18960 uint32_t cntr_info_0;
18961 TALLOC_CTX *_mem_save_info_0;
18962 if (flags & NDR_IN) {
18963 ZERO_STRUCT(r->out);
18965 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18966 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
18968 if (flags & NDR_OUT) {
18969 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
18970 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18971 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18972 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18973 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18974 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18976 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18977 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18979 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18981 return NDR_ERR_SUCCESS;
18984 _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumMonitors *r)
18986 uint32_t cntr_info_1;
18987 ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
18989 if (flags & NDR_SET_VALUES) {
18990 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18992 if (flags & NDR_IN) {
18993 ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
18995 ndr_print_ptr(ndr, "servername", r->in.servername);
18997 if (r->in.servername) {
18998 ndr_print_string(ndr, "servername", r->in.servername);
19001 ndr_print_uint32(ndr, "level", r->in.level);
19002 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19004 if (r->in.buffer) {
19005 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19008 ndr_print_uint32(ndr, "offered", r->in.offered);
19011 if (flags & NDR_OUT) {
19012 ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
19014 ndr_print_ptr(ndr, "count", r->out.count);
19016 ndr_print_uint32(ndr, "count", *r->out.count);
19018 ndr_print_ptr(ndr, "info", r->out.info);
19021 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
19023 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
19025 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
19026 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
19027 ndr_print_spoolss_MonitorInfo(ndr, "info", &r->out.info[cntr_info_1]);
19034 ndr_print_ptr(ndr, "needed", r->out.needed);
19036 ndr_print_uint32(ndr, "needed", *r->out.needed);
19038 ndr_print_WERROR(ndr, "result", r->out.result);
19044 static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, int flags, const struct spoolss_AddPort *r)
19046 if (flags & NDR_IN) {
19047 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
19048 if (r->in.server_name) {
19049 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
19050 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19051 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
19052 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));
19054 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
19055 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
19056 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19057 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
19058 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));
19060 if (flags & NDR_OUT) {
19061 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19063 return NDR_ERR_SUCCESS;
19066 static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, int flags, struct spoolss_AddPort *r)
19068 uint32_t _ptr_server_name;
19069 TALLOC_CTX *_mem_save_server_name_0;
19070 if (flags & NDR_IN) {
19071 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
19072 if (_ptr_server_name) {
19073 NDR_PULL_ALLOC(ndr, r->in.server_name);
19075 r->in.server_name = NULL;
19077 if (r->in.server_name) {
19078 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
19079 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
19080 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
19081 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
19082 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
19083 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));
19085 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
19086 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));
19087 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
19089 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
19090 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
19091 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
19092 if (ndr_get_array_length(ndr, &r->in.monitor_name) > ndr_get_array_size(ndr, &r->in.monitor_name)) {
19093 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));
19095 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t)));
19096 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));
19098 if (flags & NDR_OUT) {
19099 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19101 return NDR_ERR_SUCCESS;
19104 _PUBLIC_ void ndr_print_spoolss_AddPort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPort *r)
19106 ndr_print_struct(ndr, name, "spoolss_AddPort");
19108 if (flags & NDR_SET_VALUES) {
19109 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19111 if (flags & NDR_IN) {
19112 ndr_print_struct(ndr, "in", "spoolss_AddPort");
19114 ndr_print_ptr(ndr, "server_name", r->in.server_name);
19116 if (r->in.server_name) {
19117 ndr_print_string(ndr, "server_name", r->in.server_name);
19120 ndr_print_uint32(ndr, "unknown", r->in.unknown);
19121 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
19124 if (flags & NDR_OUT) {
19125 ndr_print_struct(ndr, "out", "spoolss_AddPort");
19127 ndr_print_WERROR(ndr, "result", r->out.result);
19133 static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, int flags, const struct spoolss_ConfigurePort *r)
19135 if (flags & NDR_IN) {
19137 if (flags & NDR_OUT) {
19138 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19140 return NDR_ERR_SUCCESS;
19143 static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, int flags, struct spoolss_ConfigurePort *r)
19145 if (flags & NDR_IN) {
19147 if (flags & NDR_OUT) {
19148 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19150 return NDR_ERR_SUCCESS;
19153 _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ConfigurePort *r)
19155 ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
19157 if (flags & NDR_SET_VALUES) {
19158 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19160 if (flags & NDR_IN) {
19161 ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
19165 if (flags & NDR_OUT) {
19166 ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
19168 ndr_print_WERROR(ndr, "result", r->out.result);
19174 static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, int flags, const struct spoolss_DeletePort *r)
19176 if (flags & NDR_IN) {
19178 if (flags & NDR_OUT) {
19179 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19181 return NDR_ERR_SUCCESS;
19184 static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, int flags, struct spoolss_DeletePort *r)
19186 if (flags & NDR_IN) {
19188 if (flags & NDR_OUT) {
19189 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19191 return NDR_ERR_SUCCESS;
19194 _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePort *r)
19196 ndr_print_struct(ndr, name, "spoolss_DeletePort");
19198 if (flags & NDR_SET_VALUES) {
19199 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19201 if (flags & NDR_IN) {
19202 ndr_print_struct(ndr, "in", "spoolss_DeletePort");
19206 if (flags & NDR_OUT) {
19207 ndr_print_struct(ndr, "out", "spoolss_DeletePort");
19209 ndr_print_WERROR(ndr, "result", r->out.result);
19215 static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_CreatePrinterIC *r)
19217 if (flags & NDR_IN) {
19219 if (flags & NDR_OUT) {
19220 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19222 return NDR_ERR_SUCCESS;
19225 static enum ndr_err_code ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_CreatePrinterIC *r)
19227 if (flags & NDR_IN) {
19229 if (flags & NDR_OUT) {
19230 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19232 return NDR_ERR_SUCCESS;
19235 _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_CreatePrinterIC *r)
19237 ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
19239 if (flags & NDR_SET_VALUES) {
19240 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19242 if (flags & NDR_IN) {
19243 ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
19247 if (flags & NDR_OUT) {
19248 ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
19250 ndr_print_WERROR(ndr, "result", r->out.result);
19256 static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
19258 if (flags & NDR_IN) {
19260 if (flags & NDR_OUT) {
19261 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19263 return NDR_ERR_SUCCESS;
19266 static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
19268 if (flags & NDR_IN) {
19270 if (flags & NDR_OUT) {
19271 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19273 return NDR_ERR_SUCCESS;
19276 _PUBLIC_ void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
19278 ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
19280 if (flags & NDR_SET_VALUES) {
19281 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19283 if (flags & NDR_IN) {
19284 ndr_print_struct(ndr, "in", "spoolss_PlayGDIScriptOnPrinterIC");
19288 if (flags & NDR_OUT) {
19289 ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
19291 ndr_print_WERROR(ndr, "result", r->out.result);
19297 static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterIC *r)
19299 if (flags & NDR_IN) {
19301 if (flags & NDR_OUT) {
19302 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19304 return NDR_ERR_SUCCESS;
19307 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterIC *r)
19309 if (flags & NDR_IN) {
19311 if (flags & NDR_OUT) {
19312 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19314 return NDR_ERR_SUCCESS;
19317 _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterIC *r)
19319 ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
19321 if (flags & NDR_SET_VALUES) {
19322 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19324 if (flags & NDR_IN) {
19325 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
19329 if (flags & NDR_OUT) {
19330 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
19332 ndr_print_WERROR(ndr, "result", r->out.result);
19338 static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterConnection *r)
19340 if (flags & NDR_IN) {
19342 if (flags & NDR_OUT) {
19343 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19345 return NDR_ERR_SUCCESS;
19348 static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterConnection *r)
19350 if (flags & NDR_IN) {
19352 if (flags & NDR_OUT) {
19353 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19355 return NDR_ERR_SUCCESS;
19358 _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterConnection *r)
19360 ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
19362 if (flags & NDR_SET_VALUES) {
19363 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19365 if (flags & NDR_IN) {
19366 ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
19370 if (flags & NDR_OUT) {
19371 ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
19373 ndr_print_WERROR(ndr, "result", r->out.result);
19379 static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterConnection *r)
19381 if (flags & NDR_IN) {
19383 if (flags & NDR_OUT) {
19384 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19386 return NDR_ERR_SUCCESS;
19389 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterConnection *r)
19391 if (flags & NDR_IN) {
19393 if (flags & NDR_OUT) {
19394 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19396 return NDR_ERR_SUCCESS;
19399 _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterConnection *r)
19401 ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
19403 if (flags & NDR_SET_VALUES) {
19404 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19406 if (flags & NDR_IN) {
19407 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
19411 if (flags & NDR_OUT) {
19412 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
19414 ndr_print_WERROR(ndr, "result", r->out.result);
19420 static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, int flags, const struct spoolss_PrinterMessageBox *r)
19422 if (flags & NDR_IN) {
19424 if (flags & NDR_OUT) {
19425 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19427 return NDR_ERR_SUCCESS;
19430 static enum ndr_err_code ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull *ndr, int flags, struct spoolss_PrinterMessageBox *r)
19432 if (flags & NDR_IN) {
19434 if (flags & NDR_OUT) {
19435 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19437 return NDR_ERR_SUCCESS;
19440 _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PrinterMessageBox *r)
19442 ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
19444 if (flags & NDR_SET_VALUES) {
19445 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19447 if (flags & NDR_IN) {
19448 ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
19452 if (flags & NDR_OUT) {
19453 ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
19455 ndr_print_WERROR(ndr, "result", r->out.result);
19461 static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, int flags, const struct spoolss_AddMonitor *r)
19463 if (flags & NDR_IN) {
19465 if (flags & NDR_OUT) {
19466 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19468 return NDR_ERR_SUCCESS;
19471 static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, int flags, struct spoolss_AddMonitor *r)
19473 if (flags & NDR_IN) {
19475 if (flags & NDR_OUT) {
19476 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19478 return NDR_ERR_SUCCESS;
19481 _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddMonitor *r)
19483 ndr_print_struct(ndr, name, "spoolss_AddMonitor");
19485 if (flags & NDR_SET_VALUES) {
19486 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19488 if (flags & NDR_IN) {
19489 ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
19493 if (flags & NDR_OUT) {
19494 ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
19496 ndr_print_WERROR(ndr, "result", r->out.result);
19502 static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, int flags, const struct spoolss_DeleteMonitor *r)
19504 if (flags & NDR_IN) {
19506 if (flags & NDR_OUT) {
19507 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19509 return NDR_ERR_SUCCESS;
19512 static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, int flags, struct spoolss_DeleteMonitor *r)
19514 if (flags & NDR_IN) {
19516 if (flags & NDR_OUT) {
19517 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19519 return NDR_ERR_SUCCESS;
19522 _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteMonitor *r)
19524 ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
19526 if (flags & NDR_SET_VALUES) {
19527 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19529 if (flags & NDR_IN) {
19530 ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
19534 if (flags & NDR_OUT) {
19535 ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
19537 ndr_print_WERROR(ndr, "result", r->out.result);
19543 static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProcessor *r)
19545 if (flags & NDR_IN) {
19547 if (flags & NDR_OUT) {
19548 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19550 return NDR_ERR_SUCCESS;
19553 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProcessor *r)
19555 if (flags & NDR_IN) {
19557 if (flags & NDR_OUT) {
19558 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19560 return NDR_ERR_SUCCESS;
19563 _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProcessor *r)
19565 ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
19567 if (flags & NDR_SET_VALUES) {
19568 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19570 if (flags & NDR_IN) {
19571 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
19575 if (flags & NDR_OUT) {
19576 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
19578 ndr_print_WERROR(ndr, "result", r->out.result);
19584 static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProvidor *r)
19586 if (flags & NDR_IN) {
19588 if (flags & NDR_OUT) {
19589 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19591 return NDR_ERR_SUCCESS;
19594 static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProvidor *r)
19596 if (flags & NDR_IN) {
19598 if (flags & NDR_OUT) {
19599 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19601 return NDR_ERR_SUCCESS;
19604 _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProvidor *r)
19606 ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
19608 if (flags & NDR_SET_VALUES) {
19609 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19611 if (flags & NDR_IN) {
19612 ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
19616 if (flags & NDR_OUT) {
19617 ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
19619 ndr_print_WERROR(ndr, "result", r->out.result);
19625 static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProvidor *r)
19627 if (flags & NDR_IN) {
19629 if (flags & NDR_OUT) {
19630 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19632 return NDR_ERR_SUCCESS;
19635 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProvidor *r)
19637 if (flags & NDR_IN) {
19639 if (flags & NDR_OUT) {
19640 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19642 return NDR_ERR_SUCCESS;
19645 _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProvidor *r)
19647 ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
19649 if (flags & NDR_SET_VALUES) {
19650 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19652 if (flags & NDR_IN) {
19653 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
19657 if (flags & NDR_OUT) {
19658 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
19660 ndr_print_WERROR(ndr, "result", r->out.result);
19666 static enum ndr_err_code ndr_push_spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
19668 if (flags & NDR_IN) {
19670 if (flags & NDR_OUT) {
19671 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19673 return NDR_ERR_SUCCESS;
19676 static enum ndr_err_code ndr_pull_spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrintProcDataTypes *r)
19678 if (flags & NDR_IN) {
19680 if (flags & NDR_OUT) {
19681 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19683 return NDR_ERR_SUCCESS;
19686 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
19688 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcDataTypes");
19690 if (flags & NDR_SET_VALUES) {
19691 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19693 if (flags & NDR_IN) {
19694 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcDataTypes");
19698 if (flags & NDR_OUT) {
19699 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcDataTypes");
19701 ndr_print_WERROR(ndr, "result", r->out.result);
19707 static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinter *r)
19709 if (flags & NDR_IN) {
19710 if (r->in.handle == NULL) {
19711 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19713 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19714 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_type));
19715 if (r->in.data_type) {
19716 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
19717 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19718 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
19719 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));
19721 if (r->in.devmode_ctr == NULL) {
19722 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19724 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
19726 if (flags & NDR_OUT) {
19727 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19729 return NDR_ERR_SUCCESS;
19732 static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinter *r)
19734 uint32_t _ptr_data_type;
19735 TALLOC_CTX *_mem_save_handle_0;
19736 TALLOC_CTX *_mem_save_data_type_0;
19737 TALLOC_CTX *_mem_save_devmode_ctr_0;
19738 if (flags & NDR_IN) {
19739 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19740 NDR_PULL_ALLOC(ndr, r->in.handle);
19742 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19743 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19744 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19745 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19746 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
19747 if (_ptr_data_type) {
19748 NDR_PULL_ALLOC(ndr, r->in.data_type);
19750 r->in.data_type = NULL;
19752 if (r->in.data_type) {
19753 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
19754 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
19755 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
19756 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
19757 if (ndr_get_array_length(ndr, &r->in.data_type) > ndr_get_array_size(ndr, &r->in.data_type)) {
19758 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));
19760 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t)));
19761 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));
19762 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
19764 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19765 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
19767 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19768 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
19769 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
19770 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
19772 if (flags & NDR_OUT) {
19773 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19775 return NDR_ERR_SUCCESS;
19778 _PUBLIC_ void ndr_print_spoolss_ResetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinter *r)
19780 ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
19782 if (flags & NDR_SET_VALUES) {
19783 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19785 if (flags & NDR_IN) {
19786 ndr_print_struct(ndr, "in", "spoolss_ResetPrinter");
19788 ndr_print_ptr(ndr, "handle", r->in.handle);
19790 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19792 ndr_print_ptr(ndr, "data_type", r->in.data_type);
19794 if (r->in.data_type) {
19795 ndr_print_string(ndr, "data_type", r->in.data_type);
19798 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
19800 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
19804 if (flags & NDR_OUT) {
19805 ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
19807 ndr_print_WERROR(ndr, "result", r->out.result);
19813 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver2 *r)
19815 if (flags & NDR_IN) {
19816 if (r->in.handle == NULL) {
19817 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19819 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19820 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
19821 if (r->in.architecture) {
19822 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
19823 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19824 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
19825 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19827 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19828 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19829 if (r->in.buffer) {
19830 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19832 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19833 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
19834 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
19836 if (flags & NDR_OUT) {
19837 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19839 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
19841 if (r->out.needed == NULL) {
19842 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19844 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19845 if (r->out.server_major_version == NULL) {
19846 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19848 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
19849 if (r->out.server_minor_version == NULL) {
19850 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19852 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
19853 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19855 return NDR_ERR_SUCCESS;
19858 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver2 *r)
19860 uint32_t _ptr_architecture;
19861 uint32_t _ptr_buffer;
19862 uint32_t _ptr_info;
19863 TALLOC_CTX *_mem_save_handle_0;
19864 TALLOC_CTX *_mem_save_architecture_0;
19865 TALLOC_CTX *_mem_save_buffer_0;
19866 TALLOC_CTX *_mem_save_info_0;
19867 TALLOC_CTX *_mem_save_needed_0;
19868 TALLOC_CTX *_mem_save_server_major_version_0;
19869 TALLOC_CTX *_mem_save_server_minor_version_0;
19870 if (flags & NDR_IN) {
19871 ZERO_STRUCT(r->out);
19873 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19874 NDR_PULL_ALLOC(ndr, r->in.handle);
19876 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19877 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19878 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19879 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19880 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
19881 if (_ptr_architecture) {
19882 NDR_PULL_ALLOC(ndr, r->in.architecture);
19884 r->in.architecture = NULL;
19886 if (r->in.architecture) {
19887 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
19888 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
19889 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
19890 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
19891 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
19892 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));
19894 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
19895 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
19896 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
19898 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19899 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19901 NDR_PULL_ALLOC(ndr, r->in.buffer);
19903 r->in.buffer = NULL;
19905 if (r->in.buffer) {
19906 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19907 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19908 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19909 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19911 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19912 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
19913 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
19914 NDR_PULL_ALLOC(ndr, r->out.needed);
19915 ZERO_STRUCTP(r->out.needed);
19916 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
19917 ZERO_STRUCTP(r->out.server_major_version);
19918 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
19919 ZERO_STRUCTP(r->out.server_minor_version);
19921 if (flags & NDR_OUT) {
19922 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19924 NDR_PULL_ALLOC(ndr, r->out.info);
19926 r->out.info = NULL;
19929 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19930 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19931 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
19932 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19934 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19935 NDR_PULL_ALLOC(ndr, r->out.needed);
19937 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19938 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19939 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19940 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19941 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19942 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
19944 _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
19945 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
19946 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
19947 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
19948 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19949 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
19951 _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
19952 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
19953 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
19954 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
19955 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19957 return NDR_ERR_SUCCESS;
19960 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver2 *r)
19962 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
19964 if (flags & NDR_SET_VALUES) {
19965 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19967 if (flags & NDR_IN) {
19968 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
19970 ndr_print_ptr(ndr, "handle", r->in.handle);
19972 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19974 ndr_print_ptr(ndr, "architecture", r->in.architecture);
19976 if (r->in.architecture) {
19977 ndr_print_string(ndr, "architecture", r->in.architecture);
19980 ndr_print_uint32(ndr, "level", r->in.level);
19981 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19983 if (r->in.buffer) {
19984 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19987 ndr_print_uint32(ndr, "offered", r->in.offered);
19988 ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
19989 ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
19992 if (flags & NDR_OUT) {
19993 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
19995 ndr_print_ptr(ndr, "info", r->out.info);
19998 ndr_print_DATA_BLOB(ndr, "info", *r->out.info);
20001 ndr_print_ptr(ndr, "needed", r->out.needed);
20003 ndr_print_uint32(ndr, "needed", *r->out.needed);
20005 ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
20007 ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
20009 ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
20011 ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
20013 ndr_print_WERROR(ndr, "result", r->out.result);
20019 static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
20021 if (flags & NDR_IN) {
20023 if (flags & NDR_OUT) {
20024 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20026 return NDR_ERR_SUCCESS;
20029 static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindFirstPrinterChangeNotification *r)
20031 if (flags & NDR_IN) {
20033 if (flags & NDR_OUT) {
20034 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20036 return NDR_ERR_SUCCESS;
20039 _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
20041 ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
20043 if (flags & NDR_SET_VALUES) {
20044 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20046 if (flags & NDR_IN) {
20047 ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
20051 if (flags & NDR_OUT) {
20052 ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
20054 ndr_print_WERROR(ndr, "result", r->out.result);
20060 static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
20062 if (flags & NDR_IN) {
20064 if (flags & NDR_OUT) {
20065 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20067 return NDR_ERR_SUCCESS;
20070 static enum ndr_err_code ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindNextPrinterChangeNotification *r)
20072 if (flags & NDR_IN) {
20074 if (flags & NDR_OUT) {
20075 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20077 return NDR_ERR_SUCCESS;
20080 _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
20082 ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
20084 if (flags & NDR_SET_VALUES) {
20085 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20087 if (flags & NDR_IN) {
20088 ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
20092 if (flags & NDR_OUT) {
20093 ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
20095 ndr_print_WERROR(ndr, "result", r->out.result);
20101 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, int flags, const struct spoolss_FindClosePrinterNotify *r)
20103 if (flags & NDR_IN) {
20104 if (r->in.handle == NULL) {
20105 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20107 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20109 if (flags & NDR_OUT) {
20110 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20112 return NDR_ERR_SUCCESS;
20115 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, int flags, struct spoolss_FindClosePrinterNotify *r)
20117 TALLOC_CTX *_mem_save_handle_0;
20118 if (flags & NDR_IN) {
20119 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20120 NDR_PULL_ALLOC(ndr, r->in.handle);
20122 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20123 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20124 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20125 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20127 if (flags & NDR_OUT) {
20128 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20130 return NDR_ERR_SUCCESS;
20133 _PUBLIC_ void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindClosePrinterNotify *r)
20135 ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
20137 if (flags & NDR_SET_VALUES) {
20138 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20140 if (flags & NDR_IN) {
20141 ndr_print_struct(ndr, "in", "spoolss_FindClosePrinterNotify");
20143 ndr_print_ptr(ndr, "handle", r->in.handle);
20145 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20149 if (flags & NDR_OUT) {
20150 ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
20152 ndr_print_WERROR(ndr, "result", r->out.result);
20158 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
20160 if (flags & NDR_IN) {
20162 if (flags & NDR_OUT) {
20163 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20165 return NDR_ERR_SUCCESS;
20168 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
20170 if (flags & NDR_IN) {
20172 if (flags & NDR_OUT) {
20173 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20175 return NDR_ERR_SUCCESS;
20178 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
20180 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
20182 if (flags & NDR_SET_VALUES) {
20183 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20185 if (flags & NDR_IN) {
20186 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
20190 if (flags & NDR_OUT) {
20191 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
20193 ndr_print_WERROR(ndr, "result", r->out.result);
20199 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyOpenPrinter *r)
20201 if (flags & NDR_IN) {
20202 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
20203 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20204 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
20205 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));
20206 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
20207 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
20208 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
20209 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20210 if (r->in.buffer) {
20211 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
20212 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
20215 if (flags & NDR_OUT) {
20216 if (r->out.handle == NULL) {
20217 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20219 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20220 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20222 return NDR_ERR_SUCCESS;
20225 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyOpenPrinter *r)
20227 uint32_t _ptr_buffer;
20228 TALLOC_CTX *_mem_save_buffer_0;
20229 TALLOC_CTX *_mem_save_handle_0;
20230 if (flags & NDR_IN) {
20231 ZERO_STRUCT(r->out);
20233 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
20234 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
20235 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
20236 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));
20238 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
20239 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));
20240 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
20241 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
20242 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
20243 if (r->in.bufsize > 512) {
20244 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
20246 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20248 NDR_PULL_ALLOC(ndr, r->in.buffer);
20250 r->in.buffer = NULL;
20252 if (r->in.buffer) {
20253 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20254 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20255 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
20256 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
20257 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
20258 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20260 NDR_PULL_ALLOC(ndr, r->out.handle);
20261 ZERO_STRUCTP(r->out.handle);
20262 if (r->in.buffer) {
20263 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
20266 if (flags & NDR_OUT) {
20267 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20268 NDR_PULL_ALLOC(ndr, r->out.handle);
20270 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20271 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
20272 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20273 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20274 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20276 return NDR_ERR_SUCCESS;
20279 _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyOpenPrinter *r)
20281 ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
20283 if (flags & NDR_SET_VALUES) {
20284 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20286 if (flags & NDR_IN) {
20287 ndr_print_struct(ndr, "in", "spoolss_ReplyOpenPrinter");
20289 ndr_print_string(ndr, "server_name", r->in.server_name);
20290 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
20291 ndr_print_winreg_Type(ndr, "type", r->in.type);
20292 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
20293 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20295 if (r->in.buffer) {
20296 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
20301 if (flags & NDR_OUT) {
20302 ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
20304 ndr_print_ptr(ndr, "handle", r->out.handle);
20306 ndr_print_policy_handle(ndr, "handle", r->out.handle);
20308 ndr_print_WERROR(ndr, "result", r->out.result);
20314 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinter *r)
20316 if (flags & NDR_IN) {
20317 if (r->in.handle == NULL) {
20318 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20320 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20321 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
20322 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
20323 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20324 if (r->in.buffer) {
20325 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
20326 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
20329 if (flags & NDR_OUT) {
20330 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20332 return NDR_ERR_SUCCESS;
20335 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinter *r)
20337 uint32_t _ptr_buffer;
20338 TALLOC_CTX *_mem_save_handle_0;
20339 TALLOC_CTX *_mem_save_buffer_0;
20340 if (flags & NDR_IN) {
20341 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20342 NDR_PULL_ALLOC(ndr, r->in.handle);
20344 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20345 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20346 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20347 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20348 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
20349 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
20350 if (r->in.bufsize > 512) {
20351 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
20353 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20355 NDR_PULL_ALLOC(ndr, r->in.buffer);
20357 r->in.buffer = NULL;
20359 if (r->in.buffer) {
20360 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20361 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20362 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
20363 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
20364 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
20365 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20367 if (r->in.buffer) {
20368 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
20371 if (flags & NDR_OUT) {
20372 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20374 return NDR_ERR_SUCCESS;
20377 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinter *r)
20379 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
20381 if (flags & NDR_SET_VALUES) {
20382 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20384 if (flags & NDR_IN) {
20385 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
20387 ndr_print_ptr(ndr, "handle", r->in.handle);
20389 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20391 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
20392 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
20393 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20395 if (r->in.buffer) {
20396 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
20401 if (flags & NDR_OUT) {
20402 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
20404 ndr_print_WERROR(ndr, "result", r->out.result);
20410 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyClosePrinter *r)
20412 if (flags & NDR_IN) {
20413 if (r->in.handle == NULL) {
20414 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20416 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20418 if (flags & NDR_OUT) {
20419 if (r->out.handle == NULL) {
20420 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20422 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20423 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20425 return NDR_ERR_SUCCESS;
20428 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyClosePrinter *r)
20430 TALLOC_CTX *_mem_save_handle_0;
20431 if (flags & NDR_IN) {
20432 ZERO_STRUCT(r->out);
20434 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20435 NDR_PULL_ALLOC(ndr, r->in.handle);
20437 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20438 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20439 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20440 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20441 NDR_PULL_ALLOC(ndr, r->out.handle);
20442 *r->out.handle = *r->in.handle;
20444 if (flags & NDR_OUT) {
20445 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20446 NDR_PULL_ALLOC(ndr, r->out.handle);
20448 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20449 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
20450 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20451 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20452 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20454 return NDR_ERR_SUCCESS;
20457 _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyClosePrinter *r)
20459 ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
20461 if (flags & NDR_SET_VALUES) {
20462 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20464 if (flags & NDR_IN) {
20465 ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
20467 ndr_print_ptr(ndr, "handle", r->in.handle);
20469 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20473 if (flags & NDR_OUT) {
20474 ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
20476 ndr_print_ptr(ndr, "handle", r->out.handle);
20478 ndr_print_policy_handle(ndr, "handle", r->out.handle);
20480 ndr_print_WERROR(ndr, "result", r->out.result);
20486 static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPortEx *r)
20488 if (flags & NDR_IN) {
20490 if (flags & NDR_OUT) {
20491 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20493 return NDR_ERR_SUCCESS;
20496 static enum ndr_err_code ndr_pull_spoolss_AddPortEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPortEx *r)
20498 if (flags & NDR_IN) {
20500 if (flags & NDR_OUT) {
20501 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20503 return NDR_ERR_SUCCESS;
20506 _PUBLIC_ void ndr_print_spoolss_AddPortEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPortEx *r)
20508 ndr_print_struct(ndr, name, "spoolss_AddPortEx");
20510 if (flags & NDR_SET_VALUES) {
20511 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20513 if (flags & NDR_IN) {
20514 ndr_print_struct(ndr, "in", "spoolss_AddPortEx");
20518 if (flags & NDR_OUT) {
20519 ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
20521 ndr_print_WERROR(ndr, "result", r->out.result);
20527 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
20529 if (flags & NDR_IN) {
20531 if (flags & NDR_OUT) {
20532 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20534 return NDR_ERR_SUCCESS;
20537 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
20539 if (flags & NDR_IN) {
20541 if (flags & NDR_OUT) {
20542 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20544 return NDR_ERR_SUCCESS;
20547 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
20549 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
20551 if (flags & NDR_SET_VALUES) {
20552 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20554 if (flags & NDR_IN) {
20555 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
20559 if (flags & NDR_OUT) {
20560 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
20562 ndr_print_WERROR(ndr, "result", r->out.result);
20568 static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, int flags, const struct spoolss_SpoolerInit *r)
20570 if (flags & NDR_IN) {
20572 if (flags & NDR_OUT) {
20573 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20575 return NDR_ERR_SUCCESS;
20578 static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, int flags, struct spoolss_SpoolerInit *r)
20580 if (flags & NDR_IN) {
20582 if (flags & NDR_OUT) {
20583 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20585 return NDR_ERR_SUCCESS;
20588 _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SpoolerInit *r)
20590 ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
20592 if (flags & NDR_SET_VALUES) {
20593 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20595 if (flags & NDR_IN) {
20596 ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
20600 if (flags & NDR_OUT) {
20601 ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
20603 ndr_print_WERROR(ndr, "result", r->out.result);
20609 static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinterEx *r)
20611 if (flags & NDR_IN) {
20613 if (flags & NDR_OUT) {
20614 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20616 return NDR_ERR_SUCCESS;
20619 static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinterEx *r)
20621 if (flags & NDR_IN) {
20623 if (flags & NDR_OUT) {
20624 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20626 return NDR_ERR_SUCCESS;
20629 _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinterEx *r)
20631 ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
20633 if (flags & NDR_SET_VALUES) {
20634 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20636 if (flags & NDR_IN) {
20637 ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
20641 if (flags & NDR_OUT) {
20642 ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
20644 ndr_print_WERROR(ndr, "result", r->out.result);
20650 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
20652 if (flags & NDR_IN) {
20653 if (r->in.handle == NULL) {
20654 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20656 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20657 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
20658 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
20659 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.local_machine));
20660 if (r->in.local_machine) {
20661 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
20662 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20663 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
20664 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));
20666 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
20667 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.notify_options));
20668 if (r->in.notify_options) {
20669 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
20672 if (flags & NDR_OUT) {
20673 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20675 return NDR_ERR_SUCCESS;
20678 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
20680 uint32_t _ptr_local_machine;
20681 uint32_t _ptr_notify_options;
20682 TALLOC_CTX *_mem_save_handle_0;
20683 TALLOC_CTX *_mem_save_local_machine_0;
20684 TALLOC_CTX *_mem_save_notify_options_0;
20685 if (flags & NDR_IN) {
20686 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20687 NDR_PULL_ALLOC(ndr, r->in.handle);
20689 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20690 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20691 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20692 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20693 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
20694 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
20695 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local_machine));
20696 if (_ptr_local_machine) {
20697 NDR_PULL_ALLOC(ndr, r->in.local_machine);
20699 r->in.local_machine = NULL;
20701 if (r->in.local_machine) {
20702 _mem_save_local_machine_0 = NDR_PULL_GET_MEM_CTX(ndr);
20703 NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
20704 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
20705 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
20706 if (ndr_get_array_length(ndr, &r->in.local_machine) > ndr_get_array_size(ndr, &r->in.local_machine)) {
20707 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));
20709 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t)));
20710 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));
20711 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
20713 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
20714 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_options));
20715 if (_ptr_notify_options) {
20716 NDR_PULL_ALLOC(ndr, r->in.notify_options);
20718 r->in.notify_options = NULL;
20720 if (r->in.notify_options) {
20721 _mem_save_notify_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
20722 NDR_PULL_SET_MEM_CTX(ndr, r->in.notify_options, 0);
20723 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
20724 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_options_0, 0);
20727 if (flags & NDR_OUT) {
20728 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20730 return NDR_ERR_SUCCESS;
20733 _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
20735 ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
20737 if (flags & NDR_SET_VALUES) {
20738 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20740 if (flags & NDR_IN) {
20741 ndr_print_struct(ndr, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
20743 ndr_print_ptr(ndr, "handle", r->in.handle);
20745 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20747 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
20748 ndr_print_uint32(ndr, "options", r->in.options);
20749 ndr_print_ptr(ndr, "local_machine", r->in.local_machine);
20751 if (r->in.local_machine) {
20752 ndr_print_string(ndr, "local_machine", r->in.local_machine);
20755 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
20756 ndr_print_ptr(ndr, "notify_options", r->in.notify_options);
20758 if (r->in.notify_options) {
20759 ndr_print_spoolss_NotifyOption(ndr, "notify_options", r->in.notify_options);
20764 if (flags & NDR_OUT) {
20765 ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
20767 ndr_print_WERROR(ndr, "result", r->out.result);
20773 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinterEx *r)
20775 if (flags & NDR_IN) {
20776 if (r->in.handle == NULL) {
20777 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20779 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20780 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.color));
20781 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
20782 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reply_type));
20783 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.reply_type));
20784 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
20786 if (flags & NDR_OUT) {
20787 if (r->out.reply_result == NULL) {
20788 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20790 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, *r->out.reply_result));
20791 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20793 return NDR_ERR_SUCCESS;
20796 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinterEx *r)
20798 TALLOC_CTX *_mem_save_handle_0;
20799 TALLOC_CTX *_mem_save_reply_result_0;
20800 if (flags & NDR_IN) {
20801 ZERO_STRUCT(r->out);
20803 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20804 NDR_PULL_ALLOC(ndr, r->in.handle);
20806 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20807 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20808 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20809 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20810 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.color));
20811 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
20812 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reply_type));
20813 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.reply_type));
20814 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
20815 NDR_PULL_ALLOC(ndr, r->out.reply_result);
20816 ZERO_STRUCTP(r->out.reply_result);
20818 if (flags & NDR_OUT) {
20819 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20820 NDR_PULL_ALLOC(ndr, r->out.reply_result);
20822 _mem_save_reply_result_0 = NDR_PULL_GET_MEM_CTX(ndr);
20823 NDR_PULL_SET_MEM_CTX(ndr, r->out.reply_result, LIBNDR_FLAG_REF_ALLOC);
20824 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, r->out.reply_result));
20825 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reply_result_0, LIBNDR_FLAG_REF_ALLOC);
20826 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20828 return NDR_ERR_SUCCESS;
20831 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinterEx *r)
20833 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinterEx");
20835 if (flags & NDR_SET_VALUES) {
20836 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20838 if (flags & NDR_IN) {
20839 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinterEx");
20841 ndr_print_ptr(ndr, "handle", r->in.handle);
20843 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20845 ndr_print_uint32(ndr, "color", r->in.color);
20846 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
20847 ndr_print_uint32(ndr, "reply_type", r->in.reply_type);
20848 ndr_print_set_switch_value(ndr, &r->in.info, r->in.reply_type);
20849 ndr_print_spoolss_ReplyPrinterInfo(ndr, "info", &r->in.info);
20852 if (flags & NDR_OUT) {
20853 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinterEx");
20855 ndr_print_ptr(ndr, "reply_result", r->out.reply_result);
20857 ndr_print_spoolss_PrinterNotifyFlags(ndr, "reply_result", *r->out.reply_result);
20859 ndr_print_WERROR(ndr, "result", r->out.result);
20865 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push *ndr, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
20867 if (flags & NDR_IN) {
20868 if (r->in.handle == NULL) {
20869 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20871 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20872 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
20873 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.options));
20874 if (r->in.options) {
20875 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
20878 if (flags & NDR_OUT) {
20879 if (r->out.info == NULL) {
20880 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20882 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
20883 if (*r->out.info) {
20884 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
20886 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20888 return NDR_ERR_SUCCESS;
20891 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull *ndr, int flags, struct spoolss_RouterRefreshPrinterChangeNotify *r)
20893 uint32_t _ptr_options;
20894 uint32_t _ptr_info;
20895 TALLOC_CTX *_mem_save_handle_0;
20896 TALLOC_CTX *_mem_save_options_0;
20897 TALLOC_CTX *_mem_save_info_0;
20898 TALLOC_CTX *_mem_save_info_1;
20899 if (flags & NDR_IN) {
20900 ZERO_STRUCT(r->out);
20902 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20903 NDR_PULL_ALLOC(ndr, r->in.handle);
20905 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20906 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20907 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20908 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20909 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
20910 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
20911 if (_ptr_options) {
20912 NDR_PULL_ALLOC(ndr, r->in.options);
20914 r->in.options = NULL;
20916 if (r->in.options) {
20917 _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
20918 NDR_PULL_SET_MEM_CTX(ndr, r->in.options, 0);
20919 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
20920 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
20922 NDR_PULL_ALLOC(ndr, r->out.info);
20923 ZERO_STRUCTP(r->out.info);
20925 if (flags & NDR_OUT) {
20926 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20927 NDR_PULL_ALLOC(ndr, r->out.info);
20929 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20930 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
20931 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20933 NDR_PULL_ALLOC(ndr, *r->out.info);
20935 *r->out.info = NULL;
20937 if (*r->out.info) {
20938 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
20939 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
20940 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
20941 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
20943 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
20944 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20946 return NDR_ERR_SUCCESS;
20949 _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
20951 ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotify");
20953 if (flags & NDR_SET_VALUES) {
20954 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20956 if (flags & NDR_IN) {
20957 ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotify");
20959 ndr_print_ptr(ndr, "handle", r->in.handle);
20961 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20963 ndr_print_uint32(ndr, "change_low", r->in.change_low);
20964 ndr_print_ptr(ndr, "options", r->in.options);
20966 if (r->in.options) {
20967 ndr_print_spoolss_NotifyOption(ndr, "options", r->in.options);
20972 if (flags & NDR_OUT) {
20973 ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotify");
20975 ndr_print_ptr(ndr, "info", r->out.info);
20977 ndr_print_ptr(ndr, "info", *r->out.info);
20979 if (*r->out.info) {
20980 ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
20984 ndr_print_WERROR(ndr, "result", r->out.result);
20990 static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, int flags, const struct spoolss_44 *r)
20992 if (flags & NDR_IN) {
20994 if (flags & NDR_OUT) {
20995 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20997 return NDR_ERR_SUCCESS;
21000 static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, int flags, struct spoolss_44 *r)
21002 if (flags & NDR_IN) {
21004 if (flags & NDR_OUT) {
21005 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21007 return NDR_ERR_SUCCESS;
21010 _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_44 *r)
21012 ndr_print_struct(ndr, name, "spoolss_44");
21014 if (flags & NDR_SET_VALUES) {
21015 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21017 if (flags & NDR_IN) {
21018 ndr_print_struct(ndr, "in", "spoolss_44");
21022 if (flags & NDR_OUT) {
21023 ndr_print_struct(ndr, "out", "spoolss_44");
21025 ndr_print_WERROR(ndr, "result", r->out.result);
21031 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinterEx *r)
21033 if (flags & NDR_IN) {
21034 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
21035 if (r->in.printername) {
21036 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
21037 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21038 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
21039 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21041 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
21042 if (r->in.datatype) {
21043 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
21044 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21045 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
21046 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21048 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
21049 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
21050 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21051 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.userlevel, r->in.level));
21052 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
21054 if (flags & NDR_OUT) {
21055 if (r->out.handle == NULL) {
21056 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21058 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21059 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21061 return NDR_ERR_SUCCESS;
21064 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinterEx *r)
21066 uint32_t _ptr_printername;
21067 uint32_t _ptr_datatype;
21068 TALLOC_CTX *_mem_save_printername_0;
21069 TALLOC_CTX *_mem_save_datatype_0;
21070 TALLOC_CTX *_mem_save_handle_0;
21071 if (flags & NDR_IN) {
21072 ZERO_STRUCT(r->out);
21074 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
21075 if (_ptr_printername) {
21076 NDR_PULL_ALLOC(ndr, r->in.printername);
21078 r->in.printername = NULL;
21080 if (r->in.printername) {
21081 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
21082 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
21083 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
21084 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
21085 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
21086 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));
21088 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
21089 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
21090 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
21092 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
21093 if (_ptr_datatype) {
21094 NDR_PULL_ALLOC(ndr, r->in.datatype);
21096 r->in.datatype = NULL;
21098 if (r->in.datatype) {
21099 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
21100 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
21101 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
21102 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
21103 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
21104 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));
21106 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
21107 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
21108 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
21110 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
21111 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
21112 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21113 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.userlevel, r->in.level));
21114 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
21115 NDR_PULL_ALLOC(ndr, r->out.handle);
21116 ZERO_STRUCTP(r->out.handle);
21118 if (flags & NDR_OUT) {
21119 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21120 NDR_PULL_ALLOC(ndr, r->out.handle);
21122 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21123 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
21124 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21125 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21126 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21128 return NDR_ERR_SUCCESS;
21131 _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinterEx *r)
21133 ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
21135 if (flags & NDR_SET_VALUES) {
21136 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21138 if (flags & NDR_IN) {
21139 ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
21141 ndr_print_ptr(ndr, "printername", r->in.printername);
21143 if (r->in.printername) {
21144 ndr_print_string(ndr, "printername", r->in.printername);
21147 ndr_print_ptr(ndr, "datatype", r->in.datatype);
21149 if (r->in.datatype) {
21150 ndr_print_string(ndr, "datatype", r->in.datatype);
21153 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
21154 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
21155 ndr_print_uint32(ndr, "level", r->in.level);
21156 ndr_print_set_switch_value(ndr, &r->in.userlevel, r->in.level);
21157 ndr_print_spoolss_UserLevel(ndr, "userlevel", &r->in.userlevel);
21160 if (flags & NDR_OUT) {
21161 ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
21163 ndr_print_ptr(ndr, "handle", r->out.handle);
21165 ndr_print_policy_handle(ndr, "handle", r->out.handle);
21167 ndr_print_WERROR(ndr, "result", r->out.result);
21173 static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterEx *r)
21175 if (flags & NDR_IN) {
21176 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21177 if (r->in.server) {
21178 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21179 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21180 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21181 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21183 if (r->in.info_ctr == NULL) {
21184 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21186 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21187 if (r->in.devmode_ctr == NULL) {
21188 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21190 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21191 if (r->in.secdesc_ctr == NULL) {
21192 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21194 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21195 if (r->in.userlevel_ctr == NULL) {
21196 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21198 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
21200 if (flags & NDR_OUT) {
21201 if (r->out.handle == NULL) {
21202 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21204 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21205 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21207 return NDR_ERR_SUCCESS;
21210 static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterEx *r)
21212 uint32_t _ptr_server;
21213 TALLOC_CTX *_mem_save_server_0;
21214 TALLOC_CTX *_mem_save_info_ctr_0;
21215 TALLOC_CTX *_mem_save_devmode_ctr_0;
21216 TALLOC_CTX *_mem_save_secdesc_ctr_0;
21217 TALLOC_CTX *_mem_save_userlevel_ctr_0;
21218 TALLOC_CTX *_mem_save_handle_0;
21219 if (flags & NDR_IN) {
21220 ZERO_STRUCT(r->out);
21222 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21224 NDR_PULL_ALLOC(ndr, r->in.server);
21226 r->in.server = NULL;
21228 if (r->in.server) {
21229 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21230 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21231 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21232 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21233 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21234 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));
21236 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21237 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21238 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21240 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21241 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
21243 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21244 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
21245 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21246 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21247 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21248 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
21250 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21251 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
21252 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21253 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21254 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21255 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
21257 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21258 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
21259 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21260 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21261 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21262 NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
21264 _mem_save_userlevel_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21265 NDR_PULL_SET_MEM_CTX(ndr, r->in.userlevel_ctr, LIBNDR_FLAG_REF_ALLOC);
21266 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
21267 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userlevel_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21268 NDR_PULL_ALLOC(ndr, r->out.handle);
21269 ZERO_STRUCTP(r->out.handle);
21271 if (flags & NDR_OUT) {
21272 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21273 NDR_PULL_ALLOC(ndr, r->out.handle);
21275 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21276 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
21277 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21278 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21279 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21281 return NDR_ERR_SUCCESS;
21284 _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterEx *r)
21286 ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
21288 if (flags & NDR_SET_VALUES) {
21289 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21291 if (flags & NDR_IN) {
21292 ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
21294 ndr_print_ptr(ndr, "server", r->in.server);
21296 if (r->in.server) {
21297 ndr_print_string(ndr, "server", r->in.server);
21300 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
21302 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
21304 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
21306 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
21308 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21310 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21312 ndr_print_ptr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
21314 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
21318 if (flags & NDR_OUT) {
21319 ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
21321 ndr_print_ptr(ndr, "handle", r->out.handle);
21323 ndr_print_policy_handle(ndr, "handle", r->out.handle);
21325 ndr_print_WERROR(ndr, "result", r->out.result);
21331 static enum ndr_err_code ndr_push_spoolss_47(struct ndr_push *ndr, int flags, const struct spoolss_47 *r)
21333 if (flags & NDR_IN) {
21335 if (flags & NDR_OUT) {
21336 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21338 return NDR_ERR_SUCCESS;
21341 static enum ndr_err_code ndr_pull_spoolss_47(struct ndr_pull *ndr, int flags, struct spoolss_47 *r)
21343 if (flags & NDR_IN) {
21345 if (flags & NDR_OUT) {
21346 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21348 return NDR_ERR_SUCCESS;
21351 _PUBLIC_ void ndr_print_spoolss_47(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_47 *r)
21353 ndr_print_struct(ndr, name, "spoolss_47");
21355 if (flags & NDR_SET_VALUES) {
21356 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21358 if (flags & NDR_IN) {
21359 ndr_print_struct(ndr, "in", "spoolss_47");
21363 if (flags & NDR_OUT) {
21364 ndr_print_struct(ndr, "out", "spoolss_47");
21366 ndr_print_WERROR(ndr, "result", r->out.result);
21372 static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterData *r)
21374 if (flags & NDR_IN) {
21375 if (r->in.handle == NULL) {
21376 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21378 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21379 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
21380 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
21381 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
21383 if (flags & NDR_OUT) {
21384 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered / 2));
21385 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
21386 if (r->out.value_needed == NULL) {
21387 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21389 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
21390 if (r->out.printerdata_type == NULL) {
21391 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21393 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.printerdata_type));
21394 if (r->out.buffer == NULL) {
21395 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21397 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.buffer));
21398 if (r->out.data_needed == NULL) {
21399 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21401 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
21402 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21404 return NDR_ERR_SUCCESS;
21407 static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterData *r)
21409 TALLOC_CTX *_mem_save_handle_0;
21410 TALLOC_CTX *_mem_save_value_needed_0;
21411 TALLOC_CTX *_mem_save_printerdata_type_0;
21412 TALLOC_CTX *_mem_save_buffer_0;
21413 TALLOC_CTX *_mem_save_data_needed_0;
21414 if (flags & NDR_IN) {
21415 ZERO_STRUCT(r->out);
21417 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21418 NDR_PULL_ALLOC(ndr, r->in.handle);
21420 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21421 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21422 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21423 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21424 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
21425 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
21426 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
21427 NDR_PULL_ALLOC(ndr, r->out.value_needed);
21428 ZERO_STRUCTP(r->out.value_needed);
21429 NDR_PULL_ALLOC(ndr, r->out.printerdata_type);
21430 ZERO_STRUCTP(r->out.printerdata_type);
21431 NDR_PULL_ALLOC(ndr, r->out.buffer);
21432 ZERO_STRUCTP(r->out.buffer);
21433 NDR_PULL_ALLOC(ndr, r->out.data_needed);
21434 ZERO_STRUCTP(r->out.data_needed);
21436 if (flags & NDR_OUT) {
21437 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
21438 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));
21439 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21440 NDR_PULL_ALLOC(ndr, r->out.value_needed);
21442 _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21443 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
21444 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
21445 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
21446 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21447 NDR_PULL_ALLOC(ndr, r->out.printerdata_type);
21449 _mem_save_printerdata_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
21450 NDR_PULL_SET_MEM_CTX(ndr, r->out.printerdata_type, LIBNDR_FLAG_REF_ALLOC);
21451 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.printerdata_type));
21452 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printerdata_type_0, LIBNDR_FLAG_REF_ALLOC);
21453 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21454 NDR_PULL_ALLOC(ndr, r->out.buffer);
21456 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21457 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
21458 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.buffer));
21459 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
21460 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21461 NDR_PULL_ALLOC(ndr, r->out.data_needed);
21463 _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21464 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
21465 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
21466 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
21467 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21468 if (r->out.value_name) {
21469 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
21472 return NDR_ERR_SUCCESS;
21475 _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterData *r)
21477 ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
21479 if (flags & NDR_SET_VALUES) {
21480 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21482 if (flags & NDR_IN) {
21483 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
21485 ndr_print_ptr(ndr, "handle", r->in.handle);
21487 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21489 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
21490 ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
21491 ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
21494 if (flags & NDR_OUT) {
21495 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
21497 ndr_print_string(ndr, "value_name", r->out.value_name);
21498 ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
21500 ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
21502 ndr_print_ptr(ndr, "printerdata_type", r->out.printerdata_type);
21504 ndr_print_uint32(ndr, "printerdata_type", *r->out.printerdata_type);
21506 ndr_print_ptr(ndr, "buffer", r->out.buffer);
21508 ndr_print_DATA_BLOB(ndr, "buffer", *r->out.buffer);
21510 ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
21512 ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
21514 ndr_print_WERROR(ndr, "result", r->out.result);
21520 static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterData *r)
21522 if (flags & NDR_IN) {
21523 if (r->in.handle == NULL) {
21524 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21526 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21527 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21528 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21529 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21530 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));
21532 if (flags & NDR_OUT) {
21533 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21535 return NDR_ERR_SUCCESS;
21538 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterData(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterData *r)
21540 TALLOC_CTX *_mem_save_handle_0;
21541 if (flags & NDR_IN) {
21542 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21543 NDR_PULL_ALLOC(ndr, r->in.handle);
21545 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21546 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21547 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21548 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21549 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
21550 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
21551 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
21552 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));
21554 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
21555 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));
21557 if (flags & NDR_OUT) {
21558 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21560 return NDR_ERR_SUCCESS;
21563 _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterData *r)
21565 ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
21567 if (flags & NDR_SET_VALUES) {
21568 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21570 if (flags & NDR_IN) {
21571 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
21573 ndr_print_ptr(ndr, "handle", r->in.handle);
21575 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21577 ndr_print_string(ndr, "value_name", r->in.value_name);
21580 if (flags & NDR_OUT) {
21581 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
21583 ndr_print_WERROR(ndr, "result", r->out.result);
21589 static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, int flags, const struct spoolss_4a *r)
21591 if (flags & NDR_IN) {
21593 if (flags & NDR_OUT) {
21594 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21596 return NDR_ERR_SUCCESS;
21599 static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, int flags, struct spoolss_4a *r)
21601 if (flags & NDR_IN) {
21603 if (flags & NDR_OUT) {
21604 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21606 return NDR_ERR_SUCCESS;
21609 _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4a *r)
21611 ndr_print_struct(ndr, name, "spoolss_4a");
21613 if (flags & NDR_SET_VALUES) {
21614 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21616 if (flags & NDR_IN) {
21617 ndr_print_struct(ndr, "in", "spoolss_4a");
21621 if (flags & NDR_OUT) {
21622 ndr_print_struct(ndr, "out", "spoolss_4a");
21624 ndr_print_WERROR(ndr, "result", r->out.result);
21630 static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, int flags, const struct spoolss_4b *r)
21632 if (flags & NDR_IN) {
21634 if (flags & NDR_OUT) {
21635 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21637 return NDR_ERR_SUCCESS;
21640 static enum ndr_err_code ndr_pull_spoolss_4b(struct ndr_pull *ndr, int flags, struct spoolss_4b *r)
21642 if (flags & NDR_IN) {
21644 if (flags & NDR_OUT) {
21645 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21647 return NDR_ERR_SUCCESS;
21650 _PUBLIC_ void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r)
21652 ndr_print_struct(ndr, name, "spoolss_4b");
21654 if (flags & NDR_SET_VALUES) {
21655 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21657 if (flags & NDR_IN) {
21658 ndr_print_struct(ndr, "in", "spoolss_4b");
21662 if (flags & NDR_OUT) {
21663 ndr_print_struct(ndr, "out", "spoolss_4b");
21665 ndr_print_WERROR(ndr, "result", r->out.result);
21671 static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, int flags, const struct spoolss_4c *r)
21673 if (flags & NDR_IN) {
21675 if (flags & NDR_OUT) {
21676 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21678 return NDR_ERR_SUCCESS;
21681 static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, int flags, struct spoolss_4c *r)
21683 if (flags & NDR_IN) {
21685 if (flags & NDR_OUT) {
21686 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21688 return NDR_ERR_SUCCESS;
21691 _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4c *r)
21693 ndr_print_struct(ndr, name, "spoolss_4c");
21695 if (flags & NDR_SET_VALUES) {
21696 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21698 if (flags & NDR_IN) {
21699 ndr_print_struct(ndr, "in", "spoolss_4c");
21703 if (flags & NDR_OUT) {
21704 ndr_print_struct(ndr, "out", "spoolss_4c");
21706 ndr_print_WERROR(ndr, "result", r->out.result);
21712 static enum ndr_err_code ndr_push_spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterDataEx *r)
21714 if (flags & NDR_IN) {
21715 if (r->in.handle == NULL) {
21716 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21718 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21719 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21720 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21721 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21722 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));
21723 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21724 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21725 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21726 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));
21727 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.type));
21728 if (r->in.buffer == NULL) {
21729 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21731 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21732 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
21733 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21735 if (flags & NDR_OUT) {
21736 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21738 return NDR_ERR_SUCCESS;
21741 static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterDataEx *r)
21743 TALLOC_CTX *_mem_save_handle_0;
21744 if (flags & NDR_IN) {
21745 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21746 NDR_PULL_ALLOC(ndr, r->in.handle);
21748 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21749 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21750 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21751 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21752 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
21753 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
21754 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
21755 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));
21757 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
21758 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));
21759 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
21760 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
21761 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
21762 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));
21764 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
21765 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));
21766 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.type));
21767 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
21768 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21769 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
21771 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
21772 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21773 if (r->in.buffer) {
21774 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
21777 if (flags & NDR_OUT) {
21778 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21780 return NDR_ERR_SUCCESS;
21783 _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterDataEx *r)
21785 ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
21787 if (flags & NDR_SET_VALUES) {
21788 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21790 if (flags & NDR_IN) {
21791 ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
21793 ndr_print_ptr(ndr, "handle", r->in.handle);
21795 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21797 ndr_print_string(ndr, "key_name", r->in.key_name);
21798 ndr_print_string(ndr, "value_name", r->in.value_name);
21799 ndr_print_uint32(ndr, "type", r->in.type);
21800 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21802 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
21804 ndr_print_uint32(ndr, "offered", r->in.offered);
21807 if (flags & NDR_OUT) {
21808 ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
21810 ndr_print_WERROR(ndr, "result", r->out.result);
21816 static enum ndr_err_code ndr_push_spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDataEx *r)
21818 if (flags & NDR_IN) {
21819 if (r->in.handle == NULL) {
21820 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21822 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21823 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21824 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21825 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21826 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));
21827 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21828 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21829 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21830 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));
21831 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21833 if (flags & NDR_OUT) {
21834 if (r->out.type == NULL) {
21835 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21837 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.type));
21838 if (r->out.buffer == NULL) {
21839 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21841 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21842 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
21843 if (r->out.needed == NULL) {
21844 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21846 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21847 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21849 return NDR_ERR_SUCCESS;
21852 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDataEx *r)
21854 TALLOC_CTX *_mem_save_handle_0;
21855 TALLOC_CTX *_mem_save_type_0;
21856 TALLOC_CTX *_mem_save_needed_0;
21857 if (flags & NDR_IN) {
21858 ZERO_STRUCT(r->out);
21860 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21861 NDR_PULL_ALLOC(ndr, r->in.handle);
21863 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21864 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21865 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21866 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21867 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
21868 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
21869 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
21870 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));
21872 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
21873 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));
21874 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
21875 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
21876 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
21877 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));
21879 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
21880 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));
21881 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21882 NDR_PULL_ALLOC(ndr, r->out.type);
21883 ZERO_STRUCTP(r->out.type);
21884 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
21885 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
21886 NDR_PULL_ALLOC(ndr, r->out.needed);
21887 ZERO_STRUCTP(r->out.needed);
21889 if (flags & NDR_OUT) {
21890 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21891 NDR_PULL_ALLOC(ndr, r->out.type);
21893 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
21894 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
21895 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.type));
21896 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
21897 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
21898 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21899 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
21901 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
21902 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21903 NDR_PULL_ALLOC(ndr, r->out.needed);
21905 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21906 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21907 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21908 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21909 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21910 if (r->out.buffer) {
21911 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
21914 return NDR_ERR_SUCCESS;
21917 _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r)
21919 ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
21921 if (flags & NDR_SET_VALUES) {
21922 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21924 if (flags & NDR_IN) {
21925 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
21927 ndr_print_ptr(ndr, "handle", r->in.handle);
21929 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21931 ndr_print_string(ndr, "key_name", r->in.key_name);
21932 ndr_print_string(ndr, "value_name", r->in.value_name);
21933 ndr_print_uint32(ndr, "offered", r->in.offered);
21936 if (flags & NDR_OUT) {
21937 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
21939 ndr_print_ptr(ndr, "type", r->out.type);
21941 ndr_print_uint32(ndr, "type", *r->out.type);
21943 ndr_print_ptr(ndr, "buffer", r->out.buffer);
21945 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
21947 ndr_print_ptr(ndr, "needed", r->out.needed);
21949 ndr_print_uint32(ndr, "needed", *r->out.needed);
21951 ndr_print_WERROR(ndr, "result", r->out.result);
21957 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterDataEx *r)
21959 if (flags & NDR_IN) {
21960 if (r->in.handle == NULL) {
21961 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21963 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21964 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21965 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21966 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21967 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));
21968 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21970 if (flags & NDR_OUT) {
21971 if (r->out.buffer == NULL) {
21972 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21974 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21975 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
21976 if (r->out.needed == NULL) {
21977 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21979 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21980 if (r->out.count == NULL) {
21981 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21983 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
21984 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21986 return NDR_ERR_SUCCESS;
21989 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterDataEx *r)
21991 TALLOC_CTX *_mem_save_handle_0;
21992 TALLOC_CTX *_mem_save_needed_0;
21993 TALLOC_CTX *_mem_save_count_0;
21994 if (flags & NDR_IN) {
21995 ZERO_STRUCT(r->out);
21997 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21998 NDR_PULL_ALLOC(ndr, r->in.handle);
22000 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22001 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22002 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22003 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22004 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
22005 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
22006 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
22007 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));
22009 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
22010 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));
22011 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22012 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
22013 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
22014 NDR_PULL_ALLOC(ndr, r->out.needed);
22015 ZERO_STRUCTP(r->out.needed);
22016 NDR_PULL_ALLOC(ndr, r->out.count);
22017 ZERO_STRUCTP(r->out.count);
22019 if (flags & NDR_OUT) {
22020 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
22021 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22022 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
22024 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
22025 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22026 NDR_PULL_ALLOC(ndr, r->out.needed);
22028 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22029 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22030 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22031 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22032 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22033 NDR_PULL_ALLOC(ndr, r->out.count);
22035 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22036 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22037 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22038 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22039 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22040 if (r->out.buffer) {
22041 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
22044 return NDR_ERR_SUCCESS;
22047 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDataEx *r)
22049 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
22051 if (flags & NDR_SET_VALUES) {
22052 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22054 if (flags & NDR_IN) {
22055 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDataEx");
22057 ndr_print_ptr(ndr, "handle", r->in.handle);
22059 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22061 ndr_print_string(ndr, "key_name", r->in.key_name);
22062 ndr_print_uint32(ndr, "offered", r->in.offered);
22065 if (flags & NDR_OUT) {
22066 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
22068 ndr_print_ptr(ndr, "buffer", r->out.buffer);
22070 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
22072 ndr_print_ptr(ndr, "needed", r->out.needed);
22074 ndr_print_uint32(ndr, "needed", *r->out.needed);
22076 ndr_print_ptr(ndr, "count", r->out.count);
22078 ndr_print_uint32(ndr, "count", *r->out.count);
22080 ndr_print_WERROR(ndr, "result", r->out.result);
22086 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterKey *r)
22088 uint32_t cntr_key_buffer_1;
22089 if (flags & NDR_IN) {
22090 if (r->in.handle == NULL) {
22091 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22093 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22094 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22095 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22096 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22097 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));
22098 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.key_buffer_size));
22100 if (flags & NDR_OUT) {
22101 if (r->out.key_buffer == NULL) {
22102 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22104 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.key_buffer_size / 2));
22105 for (cntr_key_buffer_1 = 0; cntr_key_buffer_1 < r->in.key_buffer_size / 2; cntr_key_buffer_1++) {
22106 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.key_buffer[cntr_key_buffer_1]));
22108 if (r->out.needed == NULL) {
22109 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22111 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22112 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22114 return NDR_ERR_SUCCESS;
22117 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterKey *r)
22119 uint32_t cntr_key_buffer_1;
22120 TALLOC_CTX *_mem_save_handle_0;
22121 TALLOC_CTX *_mem_save_key_buffer_1;
22122 TALLOC_CTX *_mem_save_needed_0;
22123 if (flags & NDR_IN) {
22124 ZERO_STRUCT(r->out);
22126 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22127 NDR_PULL_ALLOC(ndr, r->in.handle);
22129 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22130 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22131 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22132 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22133 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
22134 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
22135 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
22136 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));
22138 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
22139 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));
22140 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.key_buffer_size));
22141 NDR_PULL_ALLOC_N(ndr, r->out.key_buffer, r->in.key_buffer_size / 2);
22142 memset(r->out.key_buffer, 0, (r->in.key_buffer_size / 2) * sizeof(*r->out.key_buffer));
22143 NDR_PULL_ALLOC(ndr, r->out.needed);
22144 ZERO_STRUCTP(r->out.needed);
22146 if (flags & NDR_OUT) {
22147 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.key_buffer));
22148 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22149 NDR_PULL_ALLOC_N(ndr, r->out.key_buffer, ndr_get_array_size(ndr, &r->out.key_buffer));
22151 _mem_save_key_buffer_1 = NDR_PULL_GET_MEM_CTX(ndr);
22152 NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, 0);
22153 for (cntr_key_buffer_1 = 0; cntr_key_buffer_1 < r->in.key_buffer_size / 2; cntr_key_buffer_1++) {
22154 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.key_buffer[cntr_key_buffer_1]));
22156 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_1, 0);
22157 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22158 NDR_PULL_ALLOC(ndr, r->out.needed);
22160 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22161 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22162 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22163 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22164 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22165 if (r->out.key_buffer) {
22166 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.key_buffer, r->in.key_buffer_size / 2));
22169 return NDR_ERR_SUCCESS;
22172 _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterKey *r)
22174 uint32_t cntr_key_buffer_1;
22175 ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
22177 if (flags & NDR_SET_VALUES) {
22178 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22180 if (flags & NDR_IN) {
22181 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterKey");
22183 ndr_print_ptr(ndr, "handle", r->in.handle);
22185 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22187 ndr_print_string(ndr, "key_name", r->in.key_name);
22188 ndr_print_uint32(ndr, "key_buffer_size", r->in.key_buffer_size);
22191 if (flags & NDR_OUT) {
22192 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
22194 ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
22196 ndr->print(ndr, "%s: ARRAY(%d)", "key_buffer", (int)r->in.key_buffer_size / 2);
22198 for (cntr_key_buffer_1=0;cntr_key_buffer_1<r->in.key_buffer_size / 2;cntr_key_buffer_1++) {
22200 if (asprintf(&idx_1, "[%d]", cntr_key_buffer_1) != -1) {
22201 ndr_print_uint16(ndr, "key_buffer", r->out.key_buffer[cntr_key_buffer_1]);
22207 ndr_print_ptr(ndr, "needed", r->out.needed);
22209 ndr_print_uint32(ndr, "needed", *r->out.needed);
22211 ndr_print_WERROR(ndr, "result", r->out.result);
22217 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDataEx *r)
22219 if (flags & NDR_IN) {
22220 if (r->in.handle == NULL) {
22221 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22223 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22224 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22225 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22226 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22227 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));
22228 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22229 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22230 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22231 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));
22233 if (flags & NDR_OUT) {
22234 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22236 return NDR_ERR_SUCCESS;
22239 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDataEx *r)
22241 TALLOC_CTX *_mem_save_handle_0;
22242 if (flags & NDR_IN) {
22243 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22244 NDR_PULL_ALLOC(ndr, r->in.handle);
22246 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22247 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22248 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22249 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22250 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
22251 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
22252 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
22253 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));
22255 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
22256 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));
22257 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
22258 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
22259 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
22260 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));
22262 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
22263 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));
22265 if (flags & NDR_OUT) {
22266 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22268 return NDR_ERR_SUCCESS;
22271 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDataEx *r)
22273 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
22275 if (flags & NDR_SET_VALUES) {
22276 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22278 if (flags & NDR_IN) {
22279 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDataEx");
22281 ndr_print_ptr(ndr, "handle", r->in.handle);
22283 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22285 ndr_print_string(ndr, "key_name", r->in.key_name);
22286 ndr_print_string(ndr, "value_name", r->in.value_name);
22289 if (flags & NDR_OUT) {
22290 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
22292 ndr_print_WERROR(ndr, "result", r->out.result);
22298 static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterKey *r)
22300 if (flags & NDR_IN) {
22301 if (r->in.handle == NULL) {
22302 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22304 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22305 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22306 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22307 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22308 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));
22310 if (flags & NDR_OUT) {
22311 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22313 return NDR_ERR_SUCCESS;
22316 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterKey *r)
22318 TALLOC_CTX *_mem_save_handle_0;
22319 if (flags & NDR_IN) {
22320 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22321 NDR_PULL_ALLOC(ndr, r->in.handle);
22323 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22324 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22325 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22326 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22327 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
22328 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
22329 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
22330 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));
22332 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
22333 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));
22335 if (flags & NDR_OUT) {
22336 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22338 return NDR_ERR_SUCCESS;
22341 _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterKey *r)
22343 ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
22345 if (flags & NDR_SET_VALUES) {
22346 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22348 if (flags & NDR_IN) {
22349 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
22351 ndr_print_ptr(ndr, "handle", r->in.handle);
22353 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22355 ndr_print_string(ndr, "key_name", r->in.key_name);
22358 if (flags & NDR_OUT) {
22359 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
22361 ndr_print_WERROR(ndr, "result", r->out.result);
22367 static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, int flags, const struct spoolss_53 *r)
22369 if (flags & NDR_IN) {
22371 if (flags & NDR_OUT) {
22372 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22374 return NDR_ERR_SUCCESS;
22377 static enum ndr_err_code ndr_pull_spoolss_53(struct ndr_pull *ndr, int flags, struct spoolss_53 *r)
22379 if (flags & NDR_IN) {
22381 if (flags & NDR_OUT) {
22382 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22384 return NDR_ERR_SUCCESS;
22387 _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_53 *r)
22389 ndr_print_struct(ndr, name, "spoolss_53");
22391 if (flags & NDR_SET_VALUES) {
22392 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22394 if (flags & NDR_IN) {
22395 ndr_print_struct(ndr, "in", "spoolss_53");
22399 if (flags & NDR_OUT) {
22400 ndr_print_struct(ndr, "out", "spoolss_53");
22402 ndr_print_WERROR(ndr, "result", r->out.result);
22408 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriverEx *r)
22410 if (flags & NDR_IN) {
22411 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22412 if (r->in.server) {
22413 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22414 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22415 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22416 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22418 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22419 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22420 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22421 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22422 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
22423 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22424 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
22425 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22426 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
22427 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
22429 if (flags & NDR_OUT) {
22430 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22432 return NDR_ERR_SUCCESS;
22435 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriverEx *r)
22437 uint32_t _ptr_server;
22438 TALLOC_CTX *_mem_save_server_0;
22439 if (flags & NDR_IN) {
22440 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22442 NDR_PULL_ALLOC(ndr, r->in.server);
22444 r->in.server = NULL;
22446 if (r->in.server) {
22447 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22448 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22449 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22450 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22451 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22452 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));
22454 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22455 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22456 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22458 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
22459 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
22460 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
22461 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));
22463 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
22464 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
22465 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
22466 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
22467 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
22468 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));
22470 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
22471 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
22472 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
22473 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
22475 if (flags & NDR_OUT) {
22476 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22478 return NDR_ERR_SUCCESS;
22481 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriverEx *r)
22483 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
22485 if (flags & NDR_SET_VALUES) {
22486 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22488 if (flags & NDR_IN) {
22489 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
22491 ndr_print_ptr(ndr, "server", r->in.server);
22493 if (r->in.server) {
22494 ndr_print_string(ndr, "server", r->in.server);
22497 ndr_print_string(ndr, "architecture", r->in.architecture);
22498 ndr_print_string(ndr, "driver", r->in.driver);
22499 ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
22500 ndr_print_uint32(ndr, "version", r->in.version);
22503 if (flags & NDR_OUT) {
22504 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
22506 ndr_print_WERROR(ndr, "result", r->out.result);
22512 static enum ndr_err_code ndr_push_spoolss_55(struct ndr_push *ndr, int flags, const struct spoolss_55 *r)
22514 if (flags & NDR_IN) {
22516 if (flags & NDR_OUT) {
22517 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22519 return NDR_ERR_SUCCESS;
22522 static enum ndr_err_code ndr_pull_spoolss_55(struct ndr_pull *ndr, int flags, struct spoolss_55 *r)
22524 if (flags & NDR_IN) {
22526 if (flags & NDR_OUT) {
22527 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22529 return NDR_ERR_SUCCESS;
22532 _PUBLIC_ void ndr_print_spoolss_55(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_55 *r)
22534 ndr_print_struct(ndr, name, "spoolss_55");
22536 if (flags & NDR_SET_VALUES) {
22537 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22539 if (flags & NDR_IN) {
22540 ndr_print_struct(ndr, "in", "spoolss_55");
22544 if (flags & NDR_OUT) {
22545 ndr_print_struct(ndr, "out", "spoolss_55");
22547 ndr_print_WERROR(ndr, "result", r->out.result);
22553 static enum ndr_err_code ndr_push_spoolss_56(struct ndr_push *ndr, int flags, const struct spoolss_56 *r)
22555 if (flags & NDR_IN) {
22557 if (flags & NDR_OUT) {
22558 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22560 return NDR_ERR_SUCCESS;
22563 static enum ndr_err_code ndr_pull_spoolss_56(struct ndr_pull *ndr, int flags, struct spoolss_56 *r)
22565 if (flags & NDR_IN) {
22567 if (flags & NDR_OUT) {
22568 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22570 return NDR_ERR_SUCCESS;
22573 _PUBLIC_ void ndr_print_spoolss_56(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_56 *r)
22575 ndr_print_struct(ndr, name, "spoolss_56");
22577 if (flags & NDR_SET_VALUES) {
22578 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22580 if (flags & NDR_IN) {
22581 ndr_print_struct(ndr, "in", "spoolss_56");
22585 if (flags & NDR_OUT) {
22586 ndr_print_struct(ndr, "out", "spoolss_56");
22588 ndr_print_WERROR(ndr, "result", r->out.result);
22594 static enum ndr_err_code ndr_push_spoolss_57(struct ndr_push *ndr, int flags, const struct spoolss_57 *r)
22596 if (flags & NDR_IN) {
22598 if (flags & NDR_OUT) {
22599 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22601 return NDR_ERR_SUCCESS;
22604 static enum ndr_err_code ndr_pull_spoolss_57(struct ndr_pull *ndr, int flags, struct spoolss_57 *r)
22606 if (flags & NDR_IN) {
22608 if (flags & NDR_OUT) {
22609 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22611 return NDR_ERR_SUCCESS;
22614 _PUBLIC_ void ndr_print_spoolss_57(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_57 *r)
22616 ndr_print_struct(ndr, name, "spoolss_57");
22618 if (flags & NDR_SET_VALUES) {
22619 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22621 if (flags & NDR_IN) {
22622 ndr_print_struct(ndr, "in", "spoolss_57");
22626 if (flags & NDR_OUT) {
22627 ndr_print_struct(ndr, "out", "spoolss_57");
22629 ndr_print_WERROR(ndr, "result", r->out.result);
22635 static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, int flags, const struct spoolss_XcvData *r)
22637 if (flags & NDR_IN) {
22638 if (r->in.handle == NULL) {
22639 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22641 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22642 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
22643 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22644 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
22645 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));
22646 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
22647 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
22648 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
22649 if (r->in.status_code == NULL) {
22650 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22652 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
22654 if (flags & NDR_OUT) {
22655 if (r->out.out_data == NULL) {
22656 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22658 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
22659 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
22660 if (r->out.needed == NULL) {
22661 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22663 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22664 if (r->out.status_code == NULL) {
22665 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22667 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
22668 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22670 return NDR_ERR_SUCCESS;
22673 static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flags, struct spoolss_XcvData *r)
22675 TALLOC_CTX *_mem_save_handle_0;
22676 TALLOC_CTX *_mem_save_needed_0;
22677 TALLOC_CTX *_mem_save_status_code_0;
22678 if (flags & NDR_IN) {
22679 ZERO_STRUCT(r->out);
22681 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22682 NDR_PULL_ALLOC(ndr, r->in.handle);
22684 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22685 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22686 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22687 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22688 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
22689 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
22690 if (ndr_get_array_length(ndr, &r->in.function_name) > ndr_get_array_size(ndr, &r->in.function_name)) {
22691 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));
22693 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t)));
22694 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));
22695 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
22696 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
22697 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
22698 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22699 NDR_PULL_ALLOC(ndr, r->in.status_code);
22701 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
22702 NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
22703 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
22704 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
22705 NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
22706 memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
22707 NDR_PULL_ALLOC(ndr, r->out.needed);
22708 ZERO_STRUCTP(r->out.needed);
22709 NDR_PULL_ALLOC(ndr, r->out.status_code);
22710 *r->out.status_code = *r->in.status_code;
22712 if (flags & NDR_OUT) {
22713 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
22714 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22715 NDR_PULL_ALLOC_N(ndr, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data));
22717 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data)));
22718 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22719 NDR_PULL_ALLOC(ndr, r->out.needed);
22721 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22722 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22723 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22724 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22725 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22726 NDR_PULL_ALLOC(ndr, r->out.status_code);
22728 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
22729 NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
22730 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
22731 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
22732 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22733 if (r->out.out_data) {
22734 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
22737 return NDR_ERR_SUCCESS;
22740 _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_XcvData *r)
22742 ndr_print_struct(ndr, name, "spoolss_XcvData");
22744 if (flags & NDR_SET_VALUES) {
22745 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22747 if (flags & NDR_IN) {
22748 ndr_print_struct(ndr, "in", "spoolss_XcvData");
22750 ndr_print_ptr(ndr, "handle", r->in.handle);
22752 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22754 ndr_print_string(ndr, "function_name", r->in.function_name);
22755 ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
22756 ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
22757 ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
22758 ndr_print_ptr(ndr, "status_code", r->in.status_code);
22760 ndr_print_uint32(ndr, "status_code", *r->in.status_code);
22764 if (flags & NDR_OUT) {
22765 ndr_print_struct(ndr, "out", "spoolss_XcvData");
22767 ndr_print_ptr(ndr, "out_data", r->out.out_data);
22769 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
22771 ndr_print_ptr(ndr, "needed", r->out.needed);
22773 ndr_print_uint32(ndr, "needed", *r->out.needed);
22775 ndr_print_ptr(ndr, "status_code", r->out.status_code);
22777 ndr_print_uint32(ndr, "status_code", *r->out.status_code);
22779 ndr_print_WERROR(ndr, "result", r->out.result);
22785 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriverEx *r)
22787 if (flags & NDR_IN) {
22788 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
22789 if (r->in.servername) {
22790 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22791 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22792 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22793 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22795 if (r->in.info_ctr == NULL) {
22796 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22798 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
22799 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
22801 if (flags & NDR_OUT) {
22802 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22804 return NDR_ERR_SUCCESS;
22807 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriverEx *r)
22809 uint32_t _ptr_servername;
22810 TALLOC_CTX *_mem_save_servername_0;
22811 TALLOC_CTX *_mem_save_info_ctr_0;
22812 if (flags & NDR_IN) {
22813 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
22814 if (_ptr_servername) {
22815 NDR_PULL_ALLOC(ndr, r->in.servername);
22817 r->in.servername = NULL;
22819 if (r->in.servername) {
22820 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
22821 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
22822 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
22823 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
22824 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
22825 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));
22827 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
22828 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
22829 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
22831 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22832 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
22834 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
22835 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
22836 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
22837 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
22838 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
22840 if (flags & NDR_OUT) {
22841 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22843 return NDR_ERR_SUCCESS;
22846 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriverEx *r)
22848 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
22850 if (flags & NDR_SET_VALUES) {
22851 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22853 if (flags & NDR_IN) {
22854 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
22856 ndr_print_ptr(ndr, "servername", r->in.servername);
22858 if (r->in.servername) {
22859 ndr_print_string(ndr, "servername", r->in.servername);
22862 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
22864 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
22866 ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
22869 if (flags & NDR_OUT) {
22870 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
22872 ndr_print_WERROR(ndr, "result", r->out.result);
22878 static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, int flags, const struct spoolss_5a *r)
22880 if (flags & NDR_IN) {
22882 if (flags & NDR_OUT) {
22883 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22885 return NDR_ERR_SUCCESS;
22888 static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, int flags, struct spoolss_5a *r)
22890 if (flags & NDR_IN) {
22892 if (flags & NDR_OUT) {
22893 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22895 return NDR_ERR_SUCCESS;
22898 _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5a *r)
22900 ndr_print_struct(ndr, name, "spoolss_5a");
22902 if (flags & NDR_SET_VALUES) {
22903 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22905 if (flags & NDR_IN) {
22906 ndr_print_struct(ndr, "in", "spoolss_5a");
22910 if (flags & NDR_OUT) {
22911 ndr_print_struct(ndr, "out", "spoolss_5a");
22913 ndr_print_WERROR(ndr, "result", r->out.result);
22919 static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, int flags, const struct spoolss_5b *r)
22921 if (flags & NDR_IN) {
22923 if (flags & NDR_OUT) {
22924 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22926 return NDR_ERR_SUCCESS;
22929 static enum ndr_err_code ndr_pull_spoolss_5b(struct ndr_pull *ndr, int flags, struct spoolss_5b *r)
22931 if (flags & NDR_IN) {
22933 if (flags & NDR_OUT) {
22934 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22936 return NDR_ERR_SUCCESS;
22939 _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5b *r)
22941 ndr_print_struct(ndr, name, "spoolss_5b");
22943 if (flags & NDR_SET_VALUES) {
22944 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22946 if (flags & NDR_IN) {
22947 ndr_print_struct(ndr, "in", "spoolss_5b");
22951 if (flags & NDR_OUT) {
22952 ndr_print_struct(ndr, "out", "spoolss_5b");
22954 ndr_print_WERROR(ndr, "result", r->out.result);
22960 static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, int flags, const struct spoolss_5c *r)
22962 if (flags & NDR_IN) {
22964 if (flags & NDR_OUT) {
22965 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22967 return NDR_ERR_SUCCESS;
22970 static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, int flags, struct spoolss_5c *r)
22972 if (flags & NDR_IN) {
22974 if (flags & NDR_OUT) {
22975 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22977 return NDR_ERR_SUCCESS;
22980 _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5c *r)
22982 ndr_print_struct(ndr, name, "spoolss_5c");
22984 if (flags & NDR_SET_VALUES) {
22985 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22987 if (flags & NDR_IN) {
22988 ndr_print_struct(ndr, "in", "spoolss_5c");
22992 if (flags & NDR_OUT) {
22993 ndr_print_struct(ndr, "out", "spoolss_5c");
22995 ndr_print_WERROR(ndr, "result", r->out.result);
23001 static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, int flags, const struct spoolss_5d *r)
23003 if (flags & NDR_IN) {
23005 if (flags & NDR_OUT) {
23006 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23008 return NDR_ERR_SUCCESS;
23011 static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, int flags, struct spoolss_5d *r)
23013 if (flags & NDR_IN) {
23015 if (flags & NDR_OUT) {
23016 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23018 return NDR_ERR_SUCCESS;
23021 _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5d *r)
23023 ndr_print_struct(ndr, name, "spoolss_5d");
23025 if (flags & NDR_SET_VALUES) {
23026 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23028 if (flags & NDR_IN) {
23029 ndr_print_struct(ndr, "in", "spoolss_5d");
23033 if (flags & NDR_OUT) {
23034 ndr_print_struct(ndr, "out", "spoolss_5d");
23036 ndr_print_WERROR(ndr, "result", r->out.result);
23042 static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, int flags, const struct spoolss_5e *r)
23044 if (flags & NDR_IN) {
23046 if (flags & NDR_OUT) {
23047 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23049 return NDR_ERR_SUCCESS;
23052 static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, int flags, struct spoolss_5e *r)
23054 if (flags & NDR_IN) {
23056 if (flags & NDR_OUT) {
23057 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23059 return NDR_ERR_SUCCESS;
23062 _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5e *r)
23064 ndr_print_struct(ndr, name, "spoolss_5e");
23066 if (flags & NDR_SET_VALUES) {
23067 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23069 if (flags & NDR_IN) {
23070 ndr_print_struct(ndr, "in", "spoolss_5e");
23074 if (flags & NDR_OUT) {
23075 ndr_print_struct(ndr, "out", "spoolss_5e");
23077 ndr_print_WERROR(ndr, "result", r->out.result);
23083 static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, int flags, const struct spoolss_5f *r)
23085 if (flags & NDR_IN) {
23087 if (flags & NDR_OUT) {
23088 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23090 return NDR_ERR_SUCCESS;
23093 static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, int flags, struct spoolss_5f *r)
23095 if (flags & NDR_IN) {
23097 if (flags & NDR_OUT) {
23098 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23100 return NDR_ERR_SUCCESS;
23103 _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5f *r)
23105 ndr_print_struct(ndr, name, "spoolss_5f");
23107 if (flags & NDR_SET_VALUES) {
23108 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23110 if (flags & NDR_IN) {
23111 ndr_print_struct(ndr, "in", "spoolss_5f");
23115 if (flags & NDR_OUT) {
23116 ndr_print_struct(ndr, "out", "spoolss_5f");
23118 ndr_print_WERROR(ndr, "result", r->out.result);
23124 static const struct ndr_interface_call spoolss_calls[] = {
23126 "spoolss_EnumPrinters",
23127 sizeof(struct spoolss_EnumPrinters),
23128 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
23129 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
23130 (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
23134 "spoolss_OpenPrinter",
23135 sizeof(struct spoolss_OpenPrinter),
23136 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
23137 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
23138 (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
23143 sizeof(struct spoolss_SetJob),
23144 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
23145 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
23146 (ndr_print_function_t) ndr_print_spoolss_SetJob,
23151 sizeof(struct spoolss_GetJob),
23152 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
23153 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
23154 (ndr_print_function_t) ndr_print_spoolss_GetJob,
23158 "spoolss_EnumJobs",
23159 sizeof(struct spoolss_EnumJobs),
23160 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
23161 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
23162 (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
23166 "spoolss_AddPrinter",
23167 sizeof(struct spoolss_AddPrinter),
23168 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
23169 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
23170 (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
23174 "spoolss_DeletePrinter",
23175 sizeof(struct spoolss_DeletePrinter),
23176 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
23177 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
23178 (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
23182 "spoolss_SetPrinter",
23183 sizeof(struct spoolss_SetPrinter),
23184 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
23185 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
23186 (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
23190 "spoolss_GetPrinter",
23191 sizeof(struct spoolss_GetPrinter),
23192 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
23193 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
23194 (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
23198 "spoolss_AddPrinterDriver",
23199 sizeof(struct spoolss_AddPrinterDriver),
23200 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
23201 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
23202 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
23206 "spoolss_EnumPrinterDrivers",
23207 sizeof(struct spoolss_EnumPrinterDrivers),
23208 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
23209 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
23210 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
23214 "spoolss_GetPrinterDriver",
23215 sizeof(struct spoolss_GetPrinterDriver),
23216 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
23217 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
23218 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
23222 "spoolss_GetPrinterDriverDirectory",
23223 sizeof(struct spoolss_GetPrinterDriverDirectory),
23224 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
23225 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
23226 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
23230 "spoolss_DeletePrinterDriver",
23231 sizeof(struct spoolss_DeletePrinterDriver),
23232 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
23233 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
23234 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
23238 "spoolss_AddPrintProcessor",
23239 sizeof(struct spoolss_AddPrintProcessor),
23240 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
23241 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
23242 (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
23246 "spoolss_EnumPrintProcessors",
23247 sizeof(struct spoolss_EnumPrintProcessors),
23248 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
23249 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
23250 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
23254 "spoolss_GetPrintProcessorDirectory",
23255 sizeof(struct spoolss_GetPrintProcessorDirectory),
23256 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
23257 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
23258 (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
23262 "spoolss_StartDocPrinter",
23263 sizeof(struct spoolss_StartDocPrinter),
23264 (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
23265 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
23266 (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
23270 "spoolss_StartPagePrinter",
23271 sizeof(struct spoolss_StartPagePrinter),
23272 (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
23273 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
23274 (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
23278 "spoolss_WritePrinter",
23279 sizeof(struct spoolss_WritePrinter),
23280 (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
23281 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
23282 (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
23286 "spoolss_EndPagePrinter",
23287 sizeof(struct spoolss_EndPagePrinter),
23288 (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
23289 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
23290 (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
23294 "spoolss_AbortPrinter",
23295 sizeof(struct spoolss_AbortPrinter),
23296 (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
23297 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
23298 (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
23302 "spoolss_ReadPrinter",
23303 sizeof(struct spoolss_ReadPrinter),
23304 (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
23305 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
23306 (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
23310 "spoolss_EndDocPrinter",
23311 sizeof(struct spoolss_EndDocPrinter),
23312 (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
23313 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
23314 (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
23319 sizeof(struct spoolss_AddJob),
23320 (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
23321 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
23322 (ndr_print_function_t) ndr_print_spoolss_AddJob,
23326 "spoolss_ScheduleJob",
23327 sizeof(struct spoolss_ScheduleJob),
23328 (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
23329 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
23330 (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
23334 "spoolss_GetPrinterData",
23335 sizeof(struct spoolss_GetPrinterData),
23336 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
23337 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
23338 (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
23342 "spoolss_SetPrinterData",
23343 sizeof(struct spoolss_SetPrinterData),
23344 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
23345 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
23346 (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
23350 "spoolss_WaitForPrinterChange",
23351 sizeof(struct spoolss_WaitForPrinterChange),
23352 (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
23353 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
23354 (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
23358 "spoolss_ClosePrinter",
23359 sizeof(struct spoolss_ClosePrinter),
23360 (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
23361 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
23362 (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
23367 sizeof(struct spoolss_AddForm),
23368 (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
23369 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
23370 (ndr_print_function_t) ndr_print_spoolss_AddForm,
23374 "spoolss_DeleteForm",
23375 sizeof(struct spoolss_DeleteForm),
23376 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
23377 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
23378 (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
23383 sizeof(struct spoolss_GetForm),
23384 (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
23385 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
23386 (ndr_print_function_t) ndr_print_spoolss_GetForm,
23391 sizeof(struct spoolss_SetForm),
23392 (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
23393 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
23394 (ndr_print_function_t) ndr_print_spoolss_SetForm,
23398 "spoolss_EnumForms",
23399 sizeof(struct spoolss_EnumForms),
23400 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
23401 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
23402 (ndr_print_function_t) ndr_print_spoolss_EnumForms,
23406 "spoolss_EnumPorts",
23407 sizeof(struct spoolss_EnumPorts),
23408 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
23409 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
23410 (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
23414 "spoolss_EnumMonitors",
23415 sizeof(struct spoolss_EnumMonitors),
23416 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
23417 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
23418 (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
23423 sizeof(struct spoolss_AddPort),
23424 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
23425 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
23426 (ndr_print_function_t) ndr_print_spoolss_AddPort,
23430 "spoolss_ConfigurePort",
23431 sizeof(struct spoolss_ConfigurePort),
23432 (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
23433 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
23434 (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
23438 "spoolss_DeletePort",
23439 sizeof(struct spoolss_DeletePort),
23440 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
23441 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
23442 (ndr_print_function_t) ndr_print_spoolss_DeletePort,
23446 "spoolss_CreatePrinterIC",
23447 sizeof(struct spoolss_CreatePrinterIC),
23448 (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
23449 (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
23450 (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
23454 "spoolss_PlayGDIScriptOnPrinterIC",
23455 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
23456 (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
23457 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
23458 (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
23462 "spoolss_DeletePrinterIC",
23463 sizeof(struct spoolss_DeletePrinterIC),
23464 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
23465 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
23466 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
23470 "spoolss_AddPrinterConnection",
23471 sizeof(struct spoolss_AddPrinterConnection),
23472 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
23473 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
23474 (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
23478 "spoolss_DeletePrinterConnection",
23479 sizeof(struct spoolss_DeletePrinterConnection),
23480 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
23481 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
23482 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
23486 "spoolss_PrinterMessageBox",
23487 sizeof(struct spoolss_PrinterMessageBox),
23488 (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
23489 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
23490 (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
23494 "spoolss_AddMonitor",
23495 sizeof(struct spoolss_AddMonitor),
23496 (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
23497 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
23498 (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
23502 "spoolss_DeleteMonitor",
23503 sizeof(struct spoolss_DeleteMonitor),
23504 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
23505 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
23506 (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
23510 "spoolss_DeletePrintProcessor",
23511 sizeof(struct spoolss_DeletePrintProcessor),
23512 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
23513 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
23514 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
23518 "spoolss_AddPrintProvidor",
23519 sizeof(struct spoolss_AddPrintProvidor),
23520 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
23521 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
23522 (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
23526 "spoolss_DeletePrintProvidor",
23527 sizeof(struct spoolss_DeletePrintProvidor),
23528 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
23529 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
23530 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
23534 "spoolss_EnumPrintProcDataTypes",
23535 sizeof(struct spoolss_EnumPrintProcDataTypes),
23536 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcDataTypes,
23537 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcDataTypes,
23538 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcDataTypes,
23542 "spoolss_ResetPrinter",
23543 sizeof(struct spoolss_ResetPrinter),
23544 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
23545 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
23546 (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
23550 "spoolss_GetPrinterDriver2",
23551 sizeof(struct spoolss_GetPrinterDriver2),
23552 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
23553 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
23554 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
23558 "spoolss_FindFirstPrinterChangeNotification",
23559 sizeof(struct spoolss_FindFirstPrinterChangeNotification),
23560 (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
23561 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
23562 (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
23566 "spoolss_FindNextPrinterChangeNotification",
23567 sizeof(struct spoolss_FindNextPrinterChangeNotification),
23568 (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
23569 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
23570 (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
23574 "spoolss_FindClosePrinterNotify",
23575 sizeof(struct spoolss_FindClosePrinterNotify),
23576 (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
23577 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
23578 (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
23582 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
23583 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
23584 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
23585 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
23586 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
23590 "spoolss_ReplyOpenPrinter",
23591 sizeof(struct spoolss_ReplyOpenPrinter),
23592 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
23593 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
23594 (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
23598 "spoolss_RouterReplyPrinter",
23599 sizeof(struct spoolss_RouterReplyPrinter),
23600 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
23601 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
23602 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
23606 "spoolss_ReplyClosePrinter",
23607 sizeof(struct spoolss_ReplyClosePrinter),
23608 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
23609 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
23610 (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
23614 "spoolss_AddPortEx",
23615 sizeof(struct spoolss_AddPortEx),
23616 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
23617 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
23618 (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
23622 "spoolss_RouterFindFirstPrinterChangeNotification",
23623 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
23624 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
23625 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
23626 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
23630 "spoolss_SpoolerInit",
23631 sizeof(struct spoolss_SpoolerInit),
23632 (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
23633 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
23634 (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
23638 "spoolss_ResetPrinterEx",
23639 sizeof(struct spoolss_ResetPrinterEx),
23640 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
23641 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
23642 (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
23646 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
23647 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
23648 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
23649 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
23650 (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
23654 "spoolss_RouterReplyPrinterEx",
23655 sizeof(struct spoolss_RouterReplyPrinterEx),
23656 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinterEx,
23657 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinterEx,
23658 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinterEx,
23662 "spoolss_RouterRefreshPrinterChangeNotify",
23663 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify),
23664 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotify,
23665 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify,
23666 (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotify,
23671 sizeof(struct spoolss_44),
23672 (ndr_push_flags_fn_t) ndr_push_spoolss_44,
23673 (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
23674 (ndr_print_function_t) ndr_print_spoolss_44,
23678 "spoolss_OpenPrinterEx",
23679 sizeof(struct spoolss_OpenPrinterEx),
23680 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
23681 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
23682 (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
23686 "spoolss_AddPrinterEx",
23687 sizeof(struct spoolss_AddPrinterEx),
23688 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
23689 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
23690 (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
23695 sizeof(struct spoolss_47),
23696 (ndr_push_flags_fn_t) ndr_push_spoolss_47,
23697 (ndr_pull_flags_fn_t) ndr_pull_spoolss_47,
23698 (ndr_print_function_t) ndr_print_spoolss_47,
23702 "spoolss_EnumPrinterData",
23703 sizeof(struct spoolss_EnumPrinterData),
23704 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
23705 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
23706 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
23710 "spoolss_DeletePrinterData",
23711 sizeof(struct spoolss_DeletePrinterData),
23712 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
23713 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
23714 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
23719 sizeof(struct spoolss_4a),
23720 (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
23721 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
23722 (ndr_print_function_t) ndr_print_spoolss_4a,
23727 sizeof(struct spoolss_4b),
23728 (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
23729 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
23730 (ndr_print_function_t) ndr_print_spoolss_4b,
23735 sizeof(struct spoolss_4c),
23736 (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
23737 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
23738 (ndr_print_function_t) ndr_print_spoolss_4c,
23742 "spoolss_SetPrinterDataEx",
23743 sizeof(struct spoolss_SetPrinterDataEx),
23744 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
23745 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
23746 (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
23750 "spoolss_GetPrinterDataEx",
23751 sizeof(struct spoolss_GetPrinterDataEx),
23752 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
23753 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
23754 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
23758 "spoolss_EnumPrinterDataEx",
23759 sizeof(struct spoolss_EnumPrinterDataEx),
23760 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
23761 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
23762 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
23766 "spoolss_EnumPrinterKey",
23767 sizeof(struct spoolss_EnumPrinterKey),
23768 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
23769 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
23770 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
23774 "spoolss_DeletePrinterDataEx",
23775 sizeof(struct spoolss_DeletePrinterDataEx),
23776 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
23777 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
23778 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
23782 "spoolss_DeletePrinterKey",
23783 sizeof(struct spoolss_DeletePrinterKey),
23784 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
23785 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
23786 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
23791 sizeof(struct spoolss_53),
23792 (ndr_push_flags_fn_t) ndr_push_spoolss_53,
23793 (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
23794 (ndr_print_function_t) ndr_print_spoolss_53,
23798 "spoolss_DeletePrinterDriverEx",
23799 sizeof(struct spoolss_DeletePrinterDriverEx),
23800 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
23801 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
23802 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
23807 sizeof(struct spoolss_55),
23808 (ndr_push_flags_fn_t) ndr_push_spoolss_55,
23809 (ndr_pull_flags_fn_t) ndr_pull_spoolss_55,
23810 (ndr_print_function_t) ndr_print_spoolss_55,
23815 sizeof(struct spoolss_56),
23816 (ndr_push_flags_fn_t) ndr_push_spoolss_56,
23817 (ndr_pull_flags_fn_t) ndr_pull_spoolss_56,
23818 (ndr_print_function_t) ndr_print_spoolss_56,
23823 sizeof(struct spoolss_57),
23824 (ndr_push_flags_fn_t) ndr_push_spoolss_57,
23825 (ndr_pull_flags_fn_t) ndr_pull_spoolss_57,
23826 (ndr_print_function_t) ndr_print_spoolss_57,
23831 sizeof(struct spoolss_XcvData),
23832 (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
23833 (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
23834 (ndr_print_function_t) ndr_print_spoolss_XcvData,
23838 "spoolss_AddPrinterDriverEx",
23839 sizeof(struct spoolss_AddPrinterDriverEx),
23840 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
23841 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
23842 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
23847 sizeof(struct spoolss_5a),
23848 (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
23849 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
23850 (ndr_print_function_t) ndr_print_spoolss_5a,
23855 sizeof(struct spoolss_5b),
23856 (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
23857 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
23858 (ndr_print_function_t) ndr_print_spoolss_5b,
23863 sizeof(struct spoolss_5c),
23864 (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
23865 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
23866 (ndr_print_function_t) ndr_print_spoolss_5c,
23871 sizeof(struct spoolss_5d),
23872 (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
23873 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
23874 (ndr_print_function_t) ndr_print_spoolss_5d,
23879 sizeof(struct spoolss_5e),
23880 (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
23881 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
23882 (ndr_print_function_t) ndr_print_spoolss_5e,
23887 sizeof(struct spoolss_5f),
23888 (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
23889 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
23890 (ndr_print_function_t) ndr_print_spoolss_5f,
23893 { NULL, 0, NULL, NULL, NULL, false }
23896 static const char * const spoolss_endpoint_strings[] = {
23897 "ncacn_np:[\\pipe\\spoolss]",
23900 static const struct ndr_interface_string_array spoolss_endpoints = {
23902 .names = spoolss_endpoint_strings
23905 static const char * const spoolss_authservice_strings[] = {
23909 static const struct ndr_interface_string_array spoolss_authservices = {
23911 .names = spoolss_authservice_strings
23915 const struct ndr_interface_table ndr_table_spoolss = {
23918 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
23919 NDR_SPOOLSS_VERSION
23921 .helpstring = NDR_SPOOLSS_HELPSTRING,
23923 .calls = spoolss_calls,
23924 .endpoints = &spoolss_endpoints,
23925 .authservices = &spoolss_authservices