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_uint32(ndr, NDR_SCALARS, r->sec_desc_ptr));
3872 if (ndr_flags & NDR_BUFFERS) {
3874 return NDR_ERR_SUCCESS;
3877 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo3 *r)
3879 if (ndr_flags & NDR_SCALARS) {
3880 NDR_CHECK(ndr_pull_align(ndr, 4));
3881 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sec_desc_ptr));
3883 if (ndr_flags & NDR_BUFFERS) {
3885 return NDR_ERR_SUCCESS;
3888 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo3 *r)
3890 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo3");
3892 ndr_print_uint32(ndr, "sec_desc_ptr", r->sec_desc_ptr);
3896 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo4 *r)
3898 if (ndr_flags & NDR_SCALARS) {
3899 NDR_CHECK(ndr_push_align(ndr, 4));
3900 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
3901 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
3902 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
3904 if (ndr_flags & NDR_BUFFERS) {
3905 if (r->printername) {
3906 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
3907 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3908 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
3909 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3911 if (r->servername) {
3912 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
3913 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3914 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
3915 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3918 return NDR_ERR_SUCCESS;
3921 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo4 *r)
3923 uint32_t _ptr_printername;
3924 TALLOC_CTX *_mem_save_printername_0;
3925 uint32_t _ptr_servername;
3926 TALLOC_CTX *_mem_save_servername_0;
3927 if (ndr_flags & NDR_SCALARS) {
3928 NDR_CHECK(ndr_pull_align(ndr, 4));
3929 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
3930 if (_ptr_printername) {
3931 NDR_PULL_ALLOC(ndr, r->printername);
3933 r->printername = NULL;
3935 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
3936 if (_ptr_servername) {
3937 NDR_PULL_ALLOC(ndr, r->servername);
3939 r->servername = NULL;
3941 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
3943 if (ndr_flags & NDR_BUFFERS) {
3944 if (r->printername) {
3945 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
3946 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
3947 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
3948 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
3949 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
3950 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));
3952 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
3953 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
3954 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
3956 if (r->servername) {
3957 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
3958 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
3959 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
3960 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
3961 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
3962 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));
3964 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
3965 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
3966 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
3969 return NDR_ERR_SUCCESS;
3972 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo4 *r)
3974 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo4");
3976 ndr_print_ptr(ndr, "printername", r->printername);
3978 if (r->printername) {
3979 ndr_print_string(ndr, "printername", r->printername);
3982 ndr_print_ptr(ndr, "servername", r->servername);
3984 if (r->servername) {
3985 ndr_print_string(ndr, "servername", r->servername);
3988 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
3992 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo5 *r)
3994 if (ndr_flags & NDR_SCALARS) {
3995 NDR_CHECK(ndr_push_align(ndr, 4));
3996 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
3997 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
3998 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
3999 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
4000 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
4002 if (ndr_flags & NDR_BUFFERS) {
4003 if (r->printername) {
4004 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
4005 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4006 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
4007 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4010 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
4011 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4012 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
4013 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4016 return NDR_ERR_SUCCESS;
4019 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo5 *r)
4021 uint32_t _ptr_printername;
4022 TALLOC_CTX *_mem_save_printername_0;
4023 uint32_t _ptr_portname;
4024 TALLOC_CTX *_mem_save_portname_0;
4025 if (ndr_flags & NDR_SCALARS) {
4026 NDR_CHECK(ndr_pull_align(ndr, 4));
4027 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
4028 if (_ptr_printername) {
4029 NDR_PULL_ALLOC(ndr, r->printername);
4031 r->printername = NULL;
4033 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
4034 if (_ptr_portname) {
4035 NDR_PULL_ALLOC(ndr, r->portname);
4039 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
4040 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
4041 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
4043 if (ndr_flags & NDR_BUFFERS) {
4044 if (r->printername) {
4045 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
4046 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
4047 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
4048 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
4049 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
4050 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));
4052 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
4053 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
4054 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
4057 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
4058 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
4059 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
4060 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
4061 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
4062 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));
4064 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
4065 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
4066 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
4069 return NDR_ERR_SUCCESS;
4072 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo5 *r)
4074 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo5");
4076 ndr_print_ptr(ndr, "printername", r->printername);
4078 if (r->printername) {
4079 ndr_print_string(ndr, "printername", r->printername);
4082 ndr_print_ptr(ndr, "portname", r->portname);
4085 ndr_print_string(ndr, "portname", r->portname);
4088 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
4089 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
4090 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
4094 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo6 *r)
4096 if (ndr_flags & NDR_SCALARS) {
4097 NDR_CHECK(ndr_push_align(ndr, 4));
4098 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
4100 if (ndr_flags & NDR_BUFFERS) {
4102 return NDR_ERR_SUCCESS;
4105 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo6 *r)
4107 if (ndr_flags & NDR_SCALARS) {
4108 NDR_CHECK(ndr_pull_align(ndr, 4));
4109 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
4111 if (ndr_flags & NDR_BUFFERS) {
4113 return NDR_ERR_SUCCESS;
4116 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo6 *r)
4118 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo6");
4120 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
4124 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo7 *r)
4126 if (ndr_flags & NDR_SCALARS) {
4127 NDR_CHECK(ndr_push_align(ndr, 4));
4128 NDR_CHECK(ndr_push_unique_ptr(ndr, r->guid));
4129 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
4131 if (ndr_flags & NDR_BUFFERS) {
4133 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
4134 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4135 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
4136 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->guid, ndr_charset_length(r->guid, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4139 return NDR_ERR_SUCCESS;
4142 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo7 *r)
4145 TALLOC_CTX *_mem_save_guid_0;
4146 if (ndr_flags & NDR_SCALARS) {
4147 NDR_CHECK(ndr_pull_align(ndr, 4));
4148 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
4150 NDR_PULL_ALLOC(ndr, r->guid);
4154 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
4156 if (ndr_flags & NDR_BUFFERS) {
4158 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4159 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
4160 NDR_CHECK(ndr_pull_array_size(ndr, &r->guid));
4161 NDR_CHECK(ndr_pull_array_length(ndr, &r->guid));
4162 if (ndr_get_array_length(ndr, &r->guid) > ndr_get_array_size(ndr, &r->guid)) {
4163 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));
4165 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t)));
4166 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->guid, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t), CH_UTF16));
4167 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
4170 return NDR_ERR_SUCCESS;
4173 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo7 *r)
4175 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo7");
4177 ndr_print_ptr(ndr, "guid", r->guid);
4180 ndr_print_string(ndr, "guid", r->guid);
4183 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
4187 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetPrinterInfo *r)
4189 if (ndr_flags & NDR_SCALARS) {
4190 int level = ndr_push_get_switch_value(ndr, r);
4191 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
4194 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
4198 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
4202 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
4206 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
4210 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
4214 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info5));
4218 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
4222 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info7));
4226 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
4230 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info9));
4238 if (ndr_flags & NDR_BUFFERS) {
4239 int level = ndr_push_get_switch_value(ndr, r);
4243 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
4249 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
4255 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
4261 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
4267 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
4273 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
4279 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
4285 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
4291 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
4297 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
4306 return NDR_ERR_SUCCESS;
4309 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetPrinterInfo *r)
4313 TALLOC_CTX *_mem_save_info0_0;
4314 TALLOC_CTX *_mem_save_info1_0;
4315 TALLOC_CTX *_mem_save_info2_0;
4316 TALLOC_CTX *_mem_save_info3_0;
4317 TALLOC_CTX *_mem_save_info4_0;
4318 TALLOC_CTX *_mem_save_info5_0;
4319 TALLOC_CTX *_mem_save_info6_0;
4320 TALLOC_CTX *_mem_save_info7_0;
4321 TALLOC_CTX *_mem_save_info8_0;
4322 TALLOC_CTX *_mem_save_info9_0;
4323 level = ndr_pull_get_switch_value(ndr, r);
4324 if (ndr_flags & NDR_SCALARS) {
4325 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
4326 if (_level != level) {
4327 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
4331 uint32_t _ptr_info0;
4332 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
4334 NDR_PULL_ALLOC(ndr, r->info0);
4341 uint32_t _ptr_info1;
4342 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
4344 NDR_PULL_ALLOC(ndr, r->info1);
4351 uint32_t _ptr_info2;
4352 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
4354 NDR_PULL_ALLOC(ndr, r->info2);
4361 uint32_t _ptr_info3;
4362 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
4364 NDR_PULL_ALLOC(ndr, r->info3);
4371 uint32_t _ptr_info4;
4372 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
4374 NDR_PULL_ALLOC(ndr, r->info4);
4381 uint32_t _ptr_info5;
4382 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info5));
4384 NDR_PULL_ALLOC(ndr, r->info5);
4391 uint32_t _ptr_info6;
4392 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
4394 NDR_PULL_ALLOC(ndr, r->info6);
4401 uint32_t _ptr_info7;
4402 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info7));
4404 NDR_PULL_ALLOC(ndr, r->info7);
4411 uint32_t _ptr_info8;
4412 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
4414 NDR_PULL_ALLOC(ndr, r->info8);
4421 uint32_t _ptr_info9;
4422 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info9));
4424 NDR_PULL_ALLOC(ndr, r->info9);
4435 if (ndr_flags & NDR_BUFFERS) {
4439 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
4440 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
4441 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
4442 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
4448 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
4449 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
4450 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
4451 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
4457 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
4458 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
4459 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
4460 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
4466 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
4467 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
4468 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
4469 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
4475 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
4476 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
4477 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
4478 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
4484 _mem_save_info5_0 = NDR_PULL_GET_MEM_CTX(ndr);
4485 NDR_PULL_SET_MEM_CTX(ndr, r->info5, 0);
4486 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
4487 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info5_0, 0);
4493 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
4494 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
4495 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
4496 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
4502 _mem_save_info7_0 = NDR_PULL_GET_MEM_CTX(ndr);
4503 NDR_PULL_SET_MEM_CTX(ndr, r->info7, 0);
4504 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
4505 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info7_0, 0);
4511 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
4512 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
4513 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
4514 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
4520 _mem_save_info9_0 = NDR_PULL_GET_MEM_CTX(ndr);
4521 NDR_PULL_SET_MEM_CTX(ndr, r->info9, 0);
4522 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
4523 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info9_0, 0);
4532 return NDR_ERR_SUCCESS;
4535 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetPrinterInfo *r)
4538 level = ndr_print_get_switch_value(ndr, r);
4539 ndr_print_union(ndr, name, level, "spoolss_SetPrinterInfo");
4542 ndr_print_ptr(ndr, "info0", r->info0);
4545 ndr_print_spoolss_SetPrinterInfo0(ndr, "info0", r->info0);
4551 ndr_print_ptr(ndr, "info1", r->info1);
4554 ndr_print_spoolss_SetPrinterInfo1(ndr, "info1", r->info1);
4560 ndr_print_ptr(ndr, "info2", r->info2);
4563 ndr_print_spoolss_SetPrinterInfo2(ndr, "info2", r->info2);
4569 ndr_print_ptr(ndr, "info3", r->info3);
4572 ndr_print_spoolss_SetPrinterInfo3(ndr, "info3", r->info3);
4578 ndr_print_ptr(ndr, "info4", r->info4);
4581 ndr_print_spoolss_SetPrinterInfo4(ndr, "info4", r->info4);
4587 ndr_print_ptr(ndr, "info5", r->info5);
4590 ndr_print_spoolss_SetPrinterInfo5(ndr, "info5", r->info5);
4596 ndr_print_ptr(ndr, "info6", r->info6);
4599 ndr_print_spoolss_SetPrinterInfo6(ndr, "info6", r->info6);
4605 ndr_print_ptr(ndr, "info7", r->info7);
4608 ndr_print_spoolss_SetPrinterInfo7(ndr, "info7", r->info7);
4614 ndr_print_ptr(ndr, "info8", r->info8);
4617 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", r->info8);
4623 ndr_print_ptr(ndr, "info9", r->info9);
4626 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", r->info9);
4637 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfoCtr *r)
4639 if (ndr_flags & NDR_SCALARS) {
4640 NDR_CHECK(ndr_push_align(ndr, 4));
4641 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
4642 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
4643 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
4645 if (ndr_flags & NDR_BUFFERS) {
4646 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
4648 return NDR_ERR_SUCCESS;
4651 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfoCtr *r)
4653 if (ndr_flags & NDR_SCALARS) {
4654 NDR_CHECK(ndr_pull_align(ndr, 4));
4655 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
4656 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
4657 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
4659 if (ndr_flags & NDR_BUFFERS) {
4660 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
4662 return NDR_ERR_SUCCESS;
4665 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfoCtr *r)
4667 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfoCtr");
4669 ndr_print_uint32(ndr, "level", r->level);
4670 ndr_print_set_switch_value(ndr, &r->info, r->level);
4671 ndr_print_spoolss_SetPrinterInfo(ndr, "info", &r->info);
4675 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_StringArray(struct ndr_push *ndr, int ndr_flags, const struct spoolss_StringArray *r)
4677 if (ndr_flags & NDR_SCALARS) {
4678 NDR_CHECK(ndr_push_align(ndr, 4));
4679 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, (ndr_size_spoolss_StringArray(r, ndr->iconv_convenience, ndr->flags) - 4) / 2));
4681 uint32_t _flags_save_string_array = ndr->flags;
4682 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4683 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string));
4684 ndr->flags = _flags_save_string_array;
4687 if (ndr_flags & NDR_BUFFERS) {
4689 return NDR_ERR_SUCCESS;
4692 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_StringArray(struct ndr_pull *ndr, int ndr_flags, struct spoolss_StringArray *r)
4694 if (ndr_flags & NDR_SCALARS) {
4695 NDR_CHECK(ndr_pull_align(ndr, 4));
4696 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
4698 uint32_t _flags_save_string_array = ndr->flags;
4699 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4700 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string));
4701 ndr->flags = _flags_save_string_array;
4704 if (ndr_flags & NDR_BUFFERS) {
4706 return NDR_ERR_SUCCESS;
4709 _PUBLIC_ void ndr_print_spoolss_StringArray(struct ndr_print *ndr, const char *name, const struct spoolss_StringArray *r)
4711 ndr_print_struct(ndr, name, "spoolss_StringArray");
4713 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);
4714 ndr_print_string_array(ndr, "string", r->string);
4718 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo1 *r)
4720 if (ndr_flags & NDR_SCALARS) {
4721 NDR_CHECK(ndr_push_align(ndr, 4));
4722 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
4724 if (ndr_flags & NDR_BUFFERS) {
4725 if (r->driver_name) {
4726 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
4727 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4728 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
4729 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4732 return NDR_ERR_SUCCESS;
4735 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo1 *r)
4737 uint32_t _ptr_driver_name;
4738 TALLOC_CTX *_mem_save_driver_name_0;
4739 if (ndr_flags & NDR_SCALARS) {
4740 NDR_CHECK(ndr_pull_align(ndr, 4));
4741 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4742 if (_ptr_driver_name) {
4743 NDR_PULL_ALLOC(ndr, r->driver_name);
4745 r->driver_name = NULL;
4748 if (ndr_flags & NDR_BUFFERS) {
4749 if (r->driver_name) {
4750 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4751 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4752 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
4753 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
4754 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
4755 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));
4757 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
4758 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
4759 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4762 return NDR_ERR_SUCCESS;
4765 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo1 *r)
4767 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo1");
4769 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4771 if (r->driver_name) {
4772 ndr_print_string(ndr, "driver_name", r->driver_name);
4778 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverOSVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverOSVersion r)
4780 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
4781 return NDR_ERR_SUCCESS;
4784 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverOSVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverOSVersion *r)
4787 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
4789 return NDR_ERR_SUCCESS;
4792 _PUBLIC_ void ndr_print_spoolss_DriverOSVersion(struct ndr_print *ndr, const char *name, enum spoolss_DriverOSVersion r)
4794 const char *val = NULL;
4797 case SPOOLSS_DRIVER_VERSION_9X: val = "SPOOLSS_DRIVER_VERSION_9X"; break;
4798 case SPOOLSS_DRIVER_VERSION_NT35: val = "SPOOLSS_DRIVER_VERSION_NT35"; break;
4799 case SPOOLSS_DRIVER_VERSION_NT4: val = "SPOOLSS_DRIVER_VERSION_NT4"; break;
4800 case SPOOLSS_DRIVER_VERSION_200X: val = "SPOOLSS_DRIVER_VERSION_200X"; break;
4802 ndr_print_enum(ndr, name, "ENUM", val, r);
4805 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo2 *r)
4807 if (ndr_flags & NDR_SCALARS) {
4808 NDR_CHECK(ndr_push_align(ndr, 4));
4809 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
4810 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
4811 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
4812 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
4813 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
4814 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
4816 if (ndr_flags & NDR_BUFFERS) {
4817 if (r->driver_name) {
4818 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
4819 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4820 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
4821 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4823 if (r->architecture) {
4824 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
4825 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4826 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
4827 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4829 if (r->driver_path) {
4830 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
4831 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4832 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
4833 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4836 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
4837 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4838 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
4839 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4841 if (r->config_file) {
4842 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
4843 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4844 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
4845 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4848 return NDR_ERR_SUCCESS;
4851 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo2 *r)
4853 uint32_t _ptr_driver_name;
4854 TALLOC_CTX *_mem_save_driver_name_0;
4855 uint32_t _ptr_architecture;
4856 TALLOC_CTX *_mem_save_architecture_0;
4857 uint32_t _ptr_driver_path;
4858 TALLOC_CTX *_mem_save_driver_path_0;
4859 uint32_t _ptr_data_file;
4860 TALLOC_CTX *_mem_save_data_file_0;
4861 uint32_t _ptr_config_file;
4862 TALLOC_CTX *_mem_save_config_file_0;
4863 if (ndr_flags & NDR_SCALARS) {
4864 NDR_CHECK(ndr_pull_align(ndr, 4));
4865 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
4866 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4867 if (_ptr_driver_name) {
4868 NDR_PULL_ALLOC(ndr, r->driver_name);
4870 r->driver_name = NULL;
4872 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
4873 if (_ptr_architecture) {
4874 NDR_PULL_ALLOC(ndr, r->architecture);
4876 r->architecture = NULL;
4878 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
4879 if (_ptr_driver_path) {
4880 NDR_PULL_ALLOC(ndr, r->driver_path);
4882 r->driver_path = NULL;
4884 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
4885 if (_ptr_data_file) {
4886 NDR_PULL_ALLOC(ndr, r->data_file);
4888 r->data_file = NULL;
4890 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
4891 if (_ptr_config_file) {
4892 NDR_PULL_ALLOC(ndr, r->config_file);
4894 r->config_file = NULL;
4897 if (ndr_flags & NDR_BUFFERS) {
4898 if (r->driver_name) {
4899 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4900 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4901 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
4902 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
4903 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
4904 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));
4906 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
4907 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
4908 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4910 if (r->architecture) {
4911 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
4912 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
4913 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
4914 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
4915 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
4916 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));
4918 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
4919 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
4920 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
4922 if (r->driver_path) {
4923 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
4924 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
4925 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
4926 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
4927 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
4928 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));
4930 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
4931 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
4932 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
4935 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
4936 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
4937 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
4938 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
4939 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
4940 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));
4942 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
4943 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
4944 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
4946 if (r->config_file) {
4947 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
4948 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
4949 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
4950 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
4951 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
4952 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));
4954 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
4955 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
4956 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
4959 return NDR_ERR_SUCCESS;
4962 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo2 *r)
4964 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo2");
4966 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
4967 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4969 if (r->driver_name) {
4970 ndr_print_string(ndr, "driver_name", r->driver_name);
4973 ndr_print_ptr(ndr, "architecture", r->architecture);
4975 if (r->architecture) {
4976 ndr_print_string(ndr, "architecture", r->architecture);
4979 ndr_print_ptr(ndr, "driver_path", r->driver_path);
4981 if (r->driver_path) {
4982 ndr_print_string(ndr, "driver_path", r->driver_path);
4985 ndr_print_ptr(ndr, "data_file", r->data_file);
4988 ndr_print_string(ndr, "data_file", r->data_file);
4991 ndr_print_ptr(ndr, "config_file", r->config_file);
4993 if (r->config_file) {
4994 ndr_print_string(ndr, "config_file", r->config_file);
5000 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo3 *r)
5002 if (ndr_flags & NDR_SCALARS) {
5003 NDR_CHECK(ndr_push_align(ndr, 4));
5004 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
5005 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5006 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
5007 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
5008 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
5009 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
5010 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
5011 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
5012 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
5013 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
5014 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
5016 if (ndr_flags & NDR_BUFFERS) {
5017 if (r->driver_name) {
5018 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5019 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5020 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5021 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5023 if (r->architecture) {
5024 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
5025 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5026 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
5027 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5029 if (r->driver_path) {
5030 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
5031 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5032 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
5033 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5036 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
5037 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5038 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
5039 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5041 if (r->config_file) {
5042 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
5043 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5044 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
5045 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5048 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
5049 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5050 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
5051 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5053 if (r->monitor_name) {
5054 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
5055 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5056 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
5057 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5059 if (r->default_datatype) {
5060 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
5061 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5062 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
5063 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5065 if (r->dependent_files) {
5066 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
5069 return NDR_ERR_SUCCESS;
5072 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo3 *r)
5074 uint32_t _ptr_driver_name;
5075 TALLOC_CTX *_mem_save_driver_name_0;
5076 uint32_t _ptr_architecture;
5077 TALLOC_CTX *_mem_save_architecture_0;
5078 uint32_t _ptr_driver_path;
5079 TALLOC_CTX *_mem_save_driver_path_0;
5080 uint32_t _ptr_data_file;
5081 TALLOC_CTX *_mem_save_data_file_0;
5082 uint32_t _ptr_config_file;
5083 TALLOC_CTX *_mem_save_config_file_0;
5084 uint32_t _ptr_help_file;
5085 TALLOC_CTX *_mem_save_help_file_0;
5086 uint32_t _ptr_monitor_name;
5087 TALLOC_CTX *_mem_save_monitor_name_0;
5088 uint32_t _ptr_default_datatype;
5089 TALLOC_CTX *_mem_save_default_datatype_0;
5090 uint32_t _ptr_dependent_files;
5091 TALLOC_CTX *_mem_save_dependent_files_0;
5092 if (ndr_flags & NDR_SCALARS) {
5093 NDR_CHECK(ndr_pull_align(ndr, 4));
5094 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
5095 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5096 if (_ptr_driver_name) {
5097 NDR_PULL_ALLOC(ndr, r->driver_name);
5099 r->driver_name = NULL;
5101 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
5102 if (_ptr_architecture) {
5103 NDR_PULL_ALLOC(ndr, r->architecture);
5105 r->architecture = NULL;
5107 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
5108 if (_ptr_driver_path) {
5109 NDR_PULL_ALLOC(ndr, r->driver_path);
5111 r->driver_path = NULL;
5113 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
5114 if (_ptr_data_file) {
5115 NDR_PULL_ALLOC(ndr, r->data_file);
5117 r->data_file = NULL;
5119 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
5120 if (_ptr_config_file) {
5121 NDR_PULL_ALLOC(ndr, r->config_file);
5123 r->config_file = NULL;
5125 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
5126 if (_ptr_help_file) {
5127 NDR_PULL_ALLOC(ndr, r->help_file);
5129 r->help_file = NULL;
5131 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
5132 if (_ptr_monitor_name) {
5133 NDR_PULL_ALLOC(ndr, r->monitor_name);
5135 r->monitor_name = NULL;
5137 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
5138 if (_ptr_default_datatype) {
5139 NDR_PULL_ALLOC(ndr, r->default_datatype);
5141 r->default_datatype = NULL;
5143 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
5144 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
5145 if (_ptr_dependent_files) {
5146 NDR_PULL_ALLOC(ndr, r->dependent_files);
5148 r->dependent_files = NULL;
5151 if (ndr_flags & NDR_BUFFERS) {
5152 if (r->driver_name) {
5153 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5154 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5155 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5156 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5157 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5158 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));
5160 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5161 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5162 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5164 if (r->architecture) {
5165 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
5166 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
5167 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
5168 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
5169 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
5170 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));
5172 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
5173 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
5174 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
5176 if (r->driver_path) {
5177 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
5178 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
5179 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
5180 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
5181 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
5182 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));
5184 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
5185 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
5186 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
5189 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5190 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
5191 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
5192 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
5193 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
5194 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));
5196 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
5197 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
5198 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
5200 if (r->config_file) {
5201 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5202 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
5203 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
5204 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
5205 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
5206 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));
5208 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
5209 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
5210 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
5213 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5214 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
5215 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
5216 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
5217 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
5218 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));
5220 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
5221 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
5222 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
5224 if (r->monitor_name) {
5225 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5226 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
5227 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
5228 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
5229 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
5230 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));
5232 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
5233 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
5234 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
5236 if (r->default_datatype) {
5237 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
5238 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
5239 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
5240 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
5241 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
5242 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));
5244 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
5245 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
5246 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
5248 if (r->dependent_files) {
5249 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
5250 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
5251 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
5252 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
5255 return NDR_ERR_SUCCESS;
5258 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo3 *r)
5260 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo3");
5262 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
5263 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5265 if (r->driver_name) {
5266 ndr_print_string(ndr, "driver_name", r->driver_name);
5269 ndr_print_ptr(ndr, "architecture", r->architecture);
5271 if (r->architecture) {
5272 ndr_print_string(ndr, "architecture", r->architecture);
5275 ndr_print_ptr(ndr, "driver_path", r->driver_path);
5277 if (r->driver_path) {
5278 ndr_print_string(ndr, "driver_path", r->driver_path);
5281 ndr_print_ptr(ndr, "data_file", r->data_file);
5284 ndr_print_string(ndr, "data_file", r->data_file);
5287 ndr_print_ptr(ndr, "config_file", r->config_file);
5289 if (r->config_file) {
5290 ndr_print_string(ndr, "config_file", r->config_file);
5293 ndr_print_ptr(ndr, "help_file", r->help_file);
5296 ndr_print_string(ndr, "help_file", r->help_file);
5299 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
5301 if (r->monitor_name) {
5302 ndr_print_string(ndr, "monitor_name", r->monitor_name);
5305 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
5307 if (r->default_datatype) {
5308 ndr_print_string(ndr, "default_datatype", r->default_datatype);
5311 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);
5312 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
5314 if (r->dependent_files) {
5315 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
5321 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo4 *r)
5323 if (ndr_flags & NDR_SCALARS) {
5324 NDR_CHECK(ndr_push_align(ndr, 4));
5325 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
5326 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5327 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
5328 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
5329 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
5330 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
5331 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
5332 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
5333 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
5334 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
5335 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
5336 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
5337 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
5339 if (ndr_flags & NDR_BUFFERS) {
5340 if (r->driver_name) {
5341 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5342 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5343 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5344 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5346 if (r->architecture) {
5347 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
5348 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5349 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
5350 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5352 if (r->driver_path) {
5353 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
5354 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5355 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
5356 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5359 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
5360 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5361 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
5362 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5364 if (r->config_file) {
5365 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
5366 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5367 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
5368 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5371 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
5372 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5373 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
5374 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5376 if (r->monitor_name) {
5377 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
5378 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5379 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
5380 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5382 if (r->default_datatype) {
5383 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
5384 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5385 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
5386 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5388 if (r->dependent_files) {
5389 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
5391 if (r->previous_names) {
5392 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
5395 return NDR_ERR_SUCCESS;
5398 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo4 *r)
5400 uint32_t _ptr_driver_name;
5401 TALLOC_CTX *_mem_save_driver_name_0;
5402 uint32_t _ptr_architecture;
5403 TALLOC_CTX *_mem_save_architecture_0;
5404 uint32_t _ptr_driver_path;
5405 TALLOC_CTX *_mem_save_driver_path_0;
5406 uint32_t _ptr_data_file;
5407 TALLOC_CTX *_mem_save_data_file_0;
5408 uint32_t _ptr_config_file;
5409 TALLOC_CTX *_mem_save_config_file_0;
5410 uint32_t _ptr_help_file;
5411 TALLOC_CTX *_mem_save_help_file_0;
5412 uint32_t _ptr_monitor_name;
5413 TALLOC_CTX *_mem_save_monitor_name_0;
5414 uint32_t _ptr_default_datatype;
5415 TALLOC_CTX *_mem_save_default_datatype_0;
5416 uint32_t _ptr_dependent_files;
5417 TALLOC_CTX *_mem_save_dependent_files_0;
5418 uint32_t _ptr_previous_names;
5419 TALLOC_CTX *_mem_save_previous_names_0;
5420 if (ndr_flags & NDR_SCALARS) {
5421 NDR_CHECK(ndr_pull_align(ndr, 4));
5422 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
5423 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5424 if (_ptr_driver_name) {
5425 NDR_PULL_ALLOC(ndr, r->driver_name);
5427 r->driver_name = NULL;
5429 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
5430 if (_ptr_architecture) {
5431 NDR_PULL_ALLOC(ndr, r->architecture);
5433 r->architecture = NULL;
5435 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
5436 if (_ptr_driver_path) {
5437 NDR_PULL_ALLOC(ndr, r->driver_path);
5439 r->driver_path = NULL;
5441 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
5442 if (_ptr_data_file) {
5443 NDR_PULL_ALLOC(ndr, r->data_file);
5445 r->data_file = NULL;
5447 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
5448 if (_ptr_config_file) {
5449 NDR_PULL_ALLOC(ndr, r->config_file);
5451 r->config_file = NULL;
5453 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
5454 if (_ptr_help_file) {
5455 NDR_PULL_ALLOC(ndr, r->help_file);
5457 r->help_file = NULL;
5459 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
5460 if (_ptr_monitor_name) {
5461 NDR_PULL_ALLOC(ndr, r->monitor_name);
5463 r->monitor_name = NULL;
5465 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
5466 if (_ptr_default_datatype) {
5467 NDR_PULL_ALLOC(ndr, r->default_datatype);
5469 r->default_datatype = NULL;
5471 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
5472 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
5473 if (_ptr_dependent_files) {
5474 NDR_PULL_ALLOC(ndr, r->dependent_files);
5476 r->dependent_files = NULL;
5478 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
5479 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
5480 if (_ptr_previous_names) {
5481 NDR_PULL_ALLOC(ndr, r->previous_names);
5483 r->previous_names = NULL;
5486 if (ndr_flags & NDR_BUFFERS) {
5487 if (r->driver_name) {
5488 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5489 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5490 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5491 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5492 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5493 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));
5495 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5496 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5497 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5499 if (r->architecture) {
5500 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
5501 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
5502 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
5503 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
5504 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
5505 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));
5507 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
5508 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
5509 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
5511 if (r->driver_path) {
5512 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
5513 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
5514 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
5515 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
5516 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
5517 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));
5519 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
5520 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
5521 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
5524 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5525 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
5526 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
5527 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
5528 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
5529 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));
5531 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
5532 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
5533 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
5535 if (r->config_file) {
5536 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5537 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
5538 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
5539 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
5540 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
5541 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));
5543 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
5544 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
5545 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
5548 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5549 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
5550 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
5551 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
5552 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
5553 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));
5555 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
5556 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
5557 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
5559 if (r->monitor_name) {
5560 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5561 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
5562 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
5563 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
5564 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
5565 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));
5567 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
5568 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
5569 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
5571 if (r->default_datatype) {
5572 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
5573 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
5574 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
5575 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
5576 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
5577 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));
5579 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
5580 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
5581 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
5583 if (r->dependent_files) {
5584 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
5585 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
5586 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
5587 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
5589 if (r->previous_names) {
5590 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
5591 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
5592 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
5593 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
5596 return NDR_ERR_SUCCESS;
5599 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo4 *r)
5601 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo4");
5603 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
5604 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5606 if (r->driver_name) {
5607 ndr_print_string(ndr, "driver_name", r->driver_name);
5610 ndr_print_ptr(ndr, "architecture", r->architecture);
5612 if (r->architecture) {
5613 ndr_print_string(ndr, "architecture", r->architecture);
5616 ndr_print_ptr(ndr, "driver_path", r->driver_path);
5618 if (r->driver_path) {
5619 ndr_print_string(ndr, "driver_path", r->driver_path);
5622 ndr_print_ptr(ndr, "data_file", r->data_file);
5625 ndr_print_string(ndr, "data_file", r->data_file);
5628 ndr_print_ptr(ndr, "config_file", r->config_file);
5630 if (r->config_file) {
5631 ndr_print_string(ndr, "config_file", r->config_file);
5634 ndr_print_ptr(ndr, "help_file", r->help_file);
5637 ndr_print_string(ndr, "help_file", r->help_file);
5640 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
5642 if (r->monitor_name) {
5643 ndr_print_string(ndr, "monitor_name", r->monitor_name);
5646 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
5648 if (r->default_datatype) {
5649 ndr_print_string(ndr, "default_datatype", r->default_datatype);
5652 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);
5653 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
5655 if (r->dependent_files) {
5656 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
5659 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);
5660 ndr_print_ptr(ndr, "previous_names", r->previous_names);
5662 if (r->previous_names) {
5663 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
5669 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo6 *r)
5671 if (ndr_flags & NDR_SCALARS) {
5672 NDR_CHECK(ndr_push_align(ndr, 8));
5673 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
5674 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5675 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
5676 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
5677 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
5678 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
5679 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
5680 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
5681 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
5682 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
5683 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
5684 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
5685 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
5686 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
5687 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
5688 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
5689 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
5690 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
5691 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
5693 if (ndr_flags & NDR_BUFFERS) {
5694 if (r->driver_name) {
5695 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5696 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5697 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5698 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5700 if (r->architecture) {
5701 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
5702 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5703 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
5704 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5706 if (r->driver_path) {
5707 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
5708 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5709 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
5710 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5713 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
5714 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5715 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
5716 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5718 if (r->config_file) {
5719 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
5720 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5721 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
5722 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5725 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
5726 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5727 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
5728 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5730 if (r->monitor_name) {
5731 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
5732 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5733 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
5734 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5736 if (r->default_datatype) {
5737 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
5738 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5739 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
5740 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5742 if (r->dependent_files) {
5743 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
5745 if (r->previous_names) {
5746 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
5748 if (r->manufacturer_name) {
5749 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
5750 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5751 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
5752 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5754 if (r->manufacturer_url) {
5755 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
5756 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5757 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
5758 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5760 if (r->hardware_id) {
5761 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
5762 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5763 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
5764 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5767 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
5768 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5769 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
5770 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5773 return NDR_ERR_SUCCESS;
5776 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo6 *r)
5778 uint32_t _ptr_driver_name;
5779 TALLOC_CTX *_mem_save_driver_name_0;
5780 uint32_t _ptr_architecture;
5781 TALLOC_CTX *_mem_save_architecture_0;
5782 uint32_t _ptr_driver_path;
5783 TALLOC_CTX *_mem_save_driver_path_0;
5784 uint32_t _ptr_data_file;
5785 TALLOC_CTX *_mem_save_data_file_0;
5786 uint32_t _ptr_config_file;
5787 TALLOC_CTX *_mem_save_config_file_0;
5788 uint32_t _ptr_help_file;
5789 TALLOC_CTX *_mem_save_help_file_0;
5790 uint32_t _ptr_monitor_name;
5791 TALLOC_CTX *_mem_save_monitor_name_0;
5792 uint32_t _ptr_default_datatype;
5793 TALLOC_CTX *_mem_save_default_datatype_0;
5794 uint32_t _ptr_dependent_files;
5795 TALLOC_CTX *_mem_save_dependent_files_0;
5796 uint32_t _ptr_previous_names;
5797 TALLOC_CTX *_mem_save_previous_names_0;
5798 uint32_t _ptr_manufacturer_name;
5799 TALLOC_CTX *_mem_save_manufacturer_name_0;
5800 uint32_t _ptr_manufacturer_url;
5801 TALLOC_CTX *_mem_save_manufacturer_url_0;
5802 uint32_t _ptr_hardware_id;
5803 TALLOC_CTX *_mem_save_hardware_id_0;
5804 uint32_t _ptr_provider;
5805 TALLOC_CTX *_mem_save_provider_0;
5806 if (ndr_flags & NDR_SCALARS) {
5807 NDR_CHECK(ndr_pull_align(ndr, 8));
5808 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
5809 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5810 if (_ptr_driver_name) {
5811 NDR_PULL_ALLOC(ndr, r->driver_name);
5813 r->driver_name = NULL;
5815 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
5816 if (_ptr_architecture) {
5817 NDR_PULL_ALLOC(ndr, r->architecture);
5819 r->architecture = NULL;
5821 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
5822 if (_ptr_driver_path) {
5823 NDR_PULL_ALLOC(ndr, r->driver_path);
5825 r->driver_path = NULL;
5827 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
5828 if (_ptr_data_file) {
5829 NDR_PULL_ALLOC(ndr, r->data_file);
5831 r->data_file = NULL;
5833 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
5834 if (_ptr_config_file) {
5835 NDR_PULL_ALLOC(ndr, r->config_file);
5837 r->config_file = NULL;
5839 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
5840 if (_ptr_help_file) {
5841 NDR_PULL_ALLOC(ndr, r->help_file);
5843 r->help_file = NULL;
5845 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
5846 if (_ptr_monitor_name) {
5847 NDR_PULL_ALLOC(ndr, r->monitor_name);
5849 r->monitor_name = NULL;
5851 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
5852 if (_ptr_default_datatype) {
5853 NDR_PULL_ALLOC(ndr, r->default_datatype);
5855 r->default_datatype = NULL;
5857 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
5858 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
5859 if (_ptr_dependent_files) {
5860 NDR_PULL_ALLOC(ndr, r->dependent_files);
5862 r->dependent_files = NULL;
5864 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
5865 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
5866 if (_ptr_previous_names) {
5867 NDR_PULL_ALLOC(ndr, r->previous_names);
5869 r->previous_names = NULL;
5871 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
5872 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
5873 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
5874 if (_ptr_manufacturer_name) {
5875 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
5877 r->manufacturer_name = NULL;
5879 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
5880 if (_ptr_manufacturer_url) {
5881 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
5883 r->manufacturer_url = NULL;
5885 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
5886 if (_ptr_hardware_id) {
5887 NDR_PULL_ALLOC(ndr, r->hardware_id);
5889 r->hardware_id = NULL;
5891 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
5892 if (_ptr_provider) {
5893 NDR_PULL_ALLOC(ndr, r->provider);
5898 if (ndr_flags & NDR_BUFFERS) {
5899 if (r->driver_name) {
5900 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5901 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5902 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5903 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5904 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5905 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
5907 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5908 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5909 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5911 if (r->architecture) {
5912 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
5913 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
5914 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
5915 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
5916 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
5917 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
5919 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
5920 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
5921 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
5923 if (r->driver_path) {
5924 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
5925 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
5926 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
5927 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
5928 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
5929 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
5931 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
5932 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
5933 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
5936 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5937 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
5938 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
5939 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
5940 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
5941 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
5943 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
5944 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
5945 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
5947 if (r->config_file) {
5948 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5949 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
5950 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
5951 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
5952 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
5953 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));
5955 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
5956 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
5957 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
5960 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5961 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
5962 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
5963 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
5964 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
5965 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));
5967 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
5968 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
5969 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
5971 if (r->monitor_name) {
5972 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5973 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
5974 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
5975 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
5976 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
5977 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));
5979 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
5980 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
5981 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
5983 if (r->default_datatype) {
5984 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
5985 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
5986 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
5987 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
5988 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
5989 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));
5991 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
5992 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
5993 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
5995 if (r->dependent_files) {
5996 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
5997 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
5998 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
5999 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
6001 if (r->previous_names) {
6002 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
6003 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
6004 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
6005 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
6007 if (r->manufacturer_name) {
6008 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6009 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
6010 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
6011 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
6012 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
6013 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));
6015 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
6016 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
6017 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
6019 if (r->manufacturer_url) {
6020 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
6021 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
6022 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
6023 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
6024 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
6025 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));
6027 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
6028 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
6029 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
6031 if (r->hardware_id) {
6032 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
6033 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
6034 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
6035 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
6036 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
6037 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));
6039 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
6040 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
6041 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
6044 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
6045 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
6046 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
6047 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
6048 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
6049 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));
6051 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
6052 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
6053 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
6056 return NDR_ERR_SUCCESS;
6059 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo6 *r)
6061 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo6");
6063 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
6064 ndr_print_ptr(ndr, "driver_name", r->driver_name);
6066 if (r->driver_name) {
6067 ndr_print_string(ndr, "driver_name", r->driver_name);
6070 ndr_print_ptr(ndr, "architecture", r->architecture);
6072 if (r->architecture) {
6073 ndr_print_string(ndr, "architecture", r->architecture);
6076 ndr_print_ptr(ndr, "driver_path", r->driver_path);
6078 if (r->driver_path) {
6079 ndr_print_string(ndr, "driver_path", r->driver_path);
6082 ndr_print_ptr(ndr, "data_file", r->data_file);
6085 ndr_print_string(ndr, "data_file", r->data_file);
6088 ndr_print_ptr(ndr, "config_file", r->config_file);
6090 if (r->config_file) {
6091 ndr_print_string(ndr, "config_file", r->config_file);
6094 ndr_print_ptr(ndr, "help_file", r->help_file);
6097 ndr_print_string(ndr, "help_file", r->help_file);
6100 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
6102 if (r->monitor_name) {
6103 ndr_print_string(ndr, "monitor_name", r->monitor_name);
6106 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
6108 if (r->default_datatype) {
6109 ndr_print_string(ndr, "default_datatype", r->default_datatype);
6112 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);
6113 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
6115 if (r->dependent_files) {
6116 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
6119 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);
6120 ndr_print_ptr(ndr, "previous_names", r->previous_names);
6122 if (r->previous_names) {
6123 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
6126 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
6127 ndr_print_hyper(ndr, "driver_version", r->driver_version);
6128 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
6130 if (r->manufacturer_name) {
6131 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
6134 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
6136 if (r->manufacturer_url) {
6137 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
6140 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
6142 if (r->hardware_id) {
6143 ndr_print_string(ndr, "hardware_id", r->hardware_id);
6146 ndr_print_ptr(ndr, "provider", r->provider);
6149 ndr_print_string(ndr, "provider", r->provider);
6155 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo8 *r)
6157 if (ndr_flags & NDR_SCALARS) {
6158 NDR_CHECK(ndr_push_align(ndr, 8));
6159 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
6160 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
6161 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
6162 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
6163 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
6164 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
6165 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
6166 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
6167 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
6168 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
6169 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
6170 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
6171 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
6172 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
6173 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
6174 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
6175 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
6176 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
6177 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
6178 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
6179 NDR_CHECK(ndr_push_unique_ptr(ndr, r->vendor_setup));
6180 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->color_profiles, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
6181 NDR_CHECK(ndr_push_unique_ptr(ndr, r->color_profiles));
6182 NDR_CHECK(ndr_push_unique_ptr(ndr, r->inf_path));
6183 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
6184 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
6185 NDR_CHECK(ndr_push_unique_ptr(ndr, r->core_driver_dependencies));
6186 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
6187 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
6189 if (ndr_flags & NDR_BUFFERS) {
6190 if (r->driver_name) {
6191 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
6192 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6193 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
6194 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6196 if (r->architecture) {
6197 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
6198 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6199 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
6200 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6202 if (r->driver_path) {
6203 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
6204 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6205 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
6206 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6209 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
6210 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6211 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
6212 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6214 if (r->config_file) {
6215 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
6216 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6217 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
6218 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6221 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
6222 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6223 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
6224 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6226 if (r->monitor_name) {
6227 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
6228 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6229 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
6230 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6232 if (r->default_datatype) {
6233 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
6234 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6235 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
6236 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6238 if (r->dependent_files) {
6239 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
6241 if (r->previous_names) {
6242 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
6244 if (r->manufacturer_name) {
6245 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
6246 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6247 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
6248 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6250 if (r->manufacturer_url) {
6251 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
6252 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6253 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
6254 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6256 if (r->hardware_id) {
6257 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
6258 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6259 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
6260 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6263 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
6264 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6265 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
6266 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6268 if (r->print_processor) {
6269 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
6270 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6271 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
6272 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6274 if (r->vendor_setup) {
6275 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
6276 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6277 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
6278 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->vendor_setup, ndr_charset_length(r->vendor_setup, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6280 if (r->color_profiles) {
6281 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
6284 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, 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->inf_path, CH_UTF16)));
6287 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->inf_path, ndr_charset_length(r->inf_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6289 if (r->core_driver_dependencies) {
6290 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
6293 return NDR_ERR_SUCCESS;
6296 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo8 *r)
6298 uint32_t _ptr_driver_name;
6299 TALLOC_CTX *_mem_save_driver_name_0;
6300 uint32_t _ptr_architecture;
6301 TALLOC_CTX *_mem_save_architecture_0;
6302 uint32_t _ptr_driver_path;
6303 TALLOC_CTX *_mem_save_driver_path_0;
6304 uint32_t _ptr_data_file;
6305 TALLOC_CTX *_mem_save_data_file_0;
6306 uint32_t _ptr_config_file;
6307 TALLOC_CTX *_mem_save_config_file_0;
6308 uint32_t _ptr_help_file;
6309 TALLOC_CTX *_mem_save_help_file_0;
6310 uint32_t _ptr_monitor_name;
6311 TALLOC_CTX *_mem_save_monitor_name_0;
6312 uint32_t _ptr_default_datatype;
6313 TALLOC_CTX *_mem_save_default_datatype_0;
6314 uint32_t _ptr_dependent_files;
6315 TALLOC_CTX *_mem_save_dependent_files_0;
6316 uint32_t _ptr_previous_names;
6317 TALLOC_CTX *_mem_save_previous_names_0;
6318 uint32_t _ptr_manufacturer_name;
6319 TALLOC_CTX *_mem_save_manufacturer_name_0;
6320 uint32_t _ptr_manufacturer_url;
6321 TALLOC_CTX *_mem_save_manufacturer_url_0;
6322 uint32_t _ptr_hardware_id;
6323 TALLOC_CTX *_mem_save_hardware_id_0;
6324 uint32_t _ptr_provider;
6325 TALLOC_CTX *_mem_save_provider_0;
6326 uint32_t _ptr_print_processor;
6327 TALLOC_CTX *_mem_save_print_processor_0;
6328 uint32_t _ptr_vendor_setup;
6329 TALLOC_CTX *_mem_save_vendor_setup_0;
6330 uint32_t _ptr_color_profiles;
6331 TALLOC_CTX *_mem_save_color_profiles_0;
6332 uint32_t _ptr_inf_path;
6333 TALLOC_CTX *_mem_save_inf_path_0;
6334 uint32_t _ptr_core_driver_dependencies;
6335 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
6336 if (ndr_flags & NDR_SCALARS) {
6337 NDR_CHECK(ndr_pull_align(ndr, 8));
6338 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
6339 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
6340 if (_ptr_driver_name) {
6341 NDR_PULL_ALLOC(ndr, r->driver_name);
6343 r->driver_name = NULL;
6345 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
6346 if (_ptr_architecture) {
6347 NDR_PULL_ALLOC(ndr, r->architecture);
6349 r->architecture = NULL;
6351 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
6352 if (_ptr_driver_path) {
6353 NDR_PULL_ALLOC(ndr, r->driver_path);
6355 r->driver_path = NULL;
6357 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
6358 if (_ptr_data_file) {
6359 NDR_PULL_ALLOC(ndr, r->data_file);
6361 r->data_file = NULL;
6363 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
6364 if (_ptr_config_file) {
6365 NDR_PULL_ALLOC(ndr, r->config_file);
6367 r->config_file = NULL;
6369 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
6370 if (_ptr_help_file) {
6371 NDR_PULL_ALLOC(ndr, r->help_file);
6373 r->help_file = NULL;
6375 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
6376 if (_ptr_monitor_name) {
6377 NDR_PULL_ALLOC(ndr, r->monitor_name);
6379 r->monitor_name = NULL;
6381 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
6382 if (_ptr_default_datatype) {
6383 NDR_PULL_ALLOC(ndr, r->default_datatype);
6385 r->default_datatype = NULL;
6387 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
6388 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
6389 if (_ptr_dependent_files) {
6390 NDR_PULL_ALLOC(ndr, r->dependent_files);
6392 r->dependent_files = NULL;
6394 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
6395 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
6396 if (_ptr_previous_names) {
6397 NDR_PULL_ALLOC(ndr, r->previous_names);
6399 r->previous_names = NULL;
6401 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
6402 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
6403 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
6404 if (_ptr_manufacturer_name) {
6405 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
6407 r->manufacturer_name = NULL;
6409 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
6410 if (_ptr_manufacturer_url) {
6411 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
6413 r->manufacturer_url = NULL;
6415 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
6416 if (_ptr_hardware_id) {
6417 NDR_PULL_ALLOC(ndr, r->hardware_id);
6419 r->hardware_id = NULL;
6421 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
6422 if (_ptr_provider) {
6423 NDR_PULL_ALLOC(ndr, r->provider);
6427 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
6428 if (_ptr_print_processor) {
6429 NDR_PULL_ALLOC(ndr, r->print_processor);
6431 r->print_processor = NULL;
6433 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
6434 if (_ptr_vendor_setup) {
6435 NDR_PULL_ALLOC(ndr, r->vendor_setup);
6437 r->vendor_setup = NULL;
6439 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_color_profiles));
6440 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
6441 if (_ptr_color_profiles) {
6442 NDR_PULL_ALLOC(ndr, r->color_profiles);
6444 r->color_profiles = NULL;
6446 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
6447 if (_ptr_inf_path) {
6448 NDR_PULL_ALLOC(ndr, r->inf_path);
6452 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
6453 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_core_driver_dependencies));
6454 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
6455 if (_ptr_core_driver_dependencies) {
6456 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
6458 r->core_driver_dependencies = NULL;
6460 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
6461 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
6463 if (ndr_flags & NDR_BUFFERS) {
6464 if (r->driver_name) {
6465 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6466 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
6467 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
6468 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
6469 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
6470 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));
6472 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
6473 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
6474 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
6476 if (r->architecture) {
6477 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
6478 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
6479 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
6480 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
6481 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
6482 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));
6484 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
6485 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
6486 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
6488 if (r->driver_path) {
6489 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
6490 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
6491 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
6492 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
6493 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
6494 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));
6496 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
6497 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
6498 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
6501 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
6502 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
6503 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
6504 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
6505 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
6506 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));
6508 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
6509 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
6510 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
6512 if (r->config_file) {
6513 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
6514 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
6515 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
6516 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
6517 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
6518 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));
6520 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
6521 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
6522 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
6525 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
6526 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
6527 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
6528 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
6529 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
6530 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));
6532 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
6533 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
6534 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
6536 if (r->monitor_name) {
6537 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6538 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
6539 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
6540 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
6541 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
6542 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));
6544 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
6545 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
6546 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
6548 if (r->default_datatype) {
6549 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
6550 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
6551 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
6552 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
6553 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
6554 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));
6556 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
6557 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
6558 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
6560 if (r->dependent_files) {
6561 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
6562 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
6563 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
6564 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
6566 if (r->previous_names) {
6567 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
6568 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
6569 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
6570 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
6572 if (r->manufacturer_name) {
6573 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6574 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
6575 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
6576 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
6577 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
6578 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));
6580 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
6581 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
6582 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
6584 if (r->manufacturer_url) {
6585 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
6586 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
6587 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
6588 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
6589 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
6590 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));
6592 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
6593 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
6594 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
6596 if (r->hardware_id) {
6597 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
6598 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
6599 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
6600 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
6601 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
6602 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));
6604 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
6605 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
6606 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
6609 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
6610 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
6611 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
6612 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
6613 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
6614 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));
6616 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
6617 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
6618 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
6620 if (r->print_processor) {
6621 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
6622 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
6623 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
6624 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
6625 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
6626 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));
6628 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
6629 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
6630 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
6632 if (r->vendor_setup) {
6633 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
6634 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
6635 NDR_CHECK(ndr_pull_array_size(ndr, &r->vendor_setup));
6636 NDR_CHECK(ndr_pull_array_length(ndr, &r->vendor_setup));
6637 if (ndr_get_array_length(ndr, &r->vendor_setup) > ndr_get_array_size(ndr, &r->vendor_setup)) {
6638 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));
6640 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t)));
6641 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->vendor_setup, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t), CH_UTF16));
6642 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
6644 if (r->color_profiles) {
6645 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
6646 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
6647 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
6648 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
6651 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
6652 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
6653 NDR_CHECK(ndr_pull_array_size(ndr, &r->inf_path));
6654 NDR_CHECK(ndr_pull_array_length(ndr, &r->inf_path));
6655 if (ndr_get_array_length(ndr, &r->inf_path) > ndr_get_array_size(ndr, &r->inf_path)) {
6656 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->inf_path), ndr_get_array_length(ndr, &r->inf_path));
6658 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t)));
6659 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->inf_path, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t), CH_UTF16));
6660 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
6662 if (r->core_driver_dependencies) {
6663 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
6664 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
6665 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
6666 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
6669 return NDR_ERR_SUCCESS;
6672 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo8 *r)
6674 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo8");
6676 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
6677 ndr_print_ptr(ndr, "driver_name", r->driver_name);
6679 if (r->driver_name) {
6680 ndr_print_string(ndr, "driver_name", r->driver_name);
6683 ndr_print_ptr(ndr, "architecture", r->architecture);
6685 if (r->architecture) {
6686 ndr_print_string(ndr, "architecture", r->architecture);
6689 ndr_print_ptr(ndr, "driver_path", r->driver_path);
6691 if (r->driver_path) {
6692 ndr_print_string(ndr, "driver_path", r->driver_path);
6695 ndr_print_ptr(ndr, "data_file", r->data_file);
6698 ndr_print_string(ndr, "data_file", r->data_file);
6701 ndr_print_ptr(ndr, "config_file", r->config_file);
6703 if (r->config_file) {
6704 ndr_print_string(ndr, "config_file", r->config_file);
6707 ndr_print_ptr(ndr, "help_file", r->help_file);
6710 ndr_print_string(ndr, "help_file", r->help_file);
6713 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
6715 if (r->monitor_name) {
6716 ndr_print_string(ndr, "monitor_name", r->monitor_name);
6719 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
6721 if (r->default_datatype) {
6722 ndr_print_string(ndr, "default_datatype", r->default_datatype);
6725 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);
6726 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
6728 if (r->dependent_files) {
6729 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
6732 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);
6733 ndr_print_ptr(ndr, "previous_names", r->previous_names);
6735 if (r->previous_names) {
6736 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
6739 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
6740 ndr_print_hyper(ndr, "driver_version", r->driver_version);
6741 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
6743 if (r->manufacturer_name) {
6744 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
6747 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
6749 if (r->manufacturer_url) {
6750 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
6753 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
6755 if (r->hardware_id) {
6756 ndr_print_string(ndr, "hardware_id", r->hardware_id);
6759 ndr_print_ptr(ndr, "provider", r->provider);
6762 ndr_print_string(ndr, "provider", r->provider);
6765 ndr_print_ptr(ndr, "print_processor", r->print_processor);
6767 if (r->print_processor) {
6768 ndr_print_string(ndr, "print_processor", r->print_processor);
6771 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
6773 if (r->vendor_setup) {
6774 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
6777 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);
6778 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
6780 if (r->color_profiles) {
6781 ndr_print_spoolss_StringArray(ndr, "color_profiles", r->color_profiles);
6784 ndr_print_ptr(ndr, "inf_path", r->inf_path);
6787 ndr_print_string(ndr, "inf_path", r->inf_path);
6790 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
6791 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);
6792 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
6794 if (r->core_driver_dependencies) {
6795 ndr_print_spoolss_StringArray(ndr, "core_driver_dependencies", r->core_driver_dependencies);
6798 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
6799 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
6803 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddDriverInfo *r)
6805 if (ndr_flags & NDR_SCALARS) {
6806 int level = ndr_push_get_switch_value(ndr, r);
6807 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6810 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
6814 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
6818 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
6822 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
6826 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
6830 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
6834 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6837 if (ndr_flags & NDR_BUFFERS) {
6838 int level = ndr_push_get_switch_value(ndr, r);
6842 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6848 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6854 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
6860 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6866 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
6872 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
6877 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6880 return NDR_ERR_SUCCESS;
6883 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddDriverInfo *r)
6887 TALLOC_CTX *_mem_save_info1_0;
6888 TALLOC_CTX *_mem_save_info2_0;
6889 TALLOC_CTX *_mem_save_info3_0;
6890 TALLOC_CTX *_mem_save_info4_0;
6891 TALLOC_CTX *_mem_save_info6_0;
6892 TALLOC_CTX *_mem_save_info8_0;
6893 level = ndr_pull_get_switch_value(ndr, r);
6894 if (ndr_flags & NDR_SCALARS) {
6895 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6896 if (_level != level) {
6897 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
6901 uint32_t _ptr_info1;
6902 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
6904 NDR_PULL_ALLOC(ndr, r->info1);
6911 uint32_t _ptr_info2;
6912 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
6914 NDR_PULL_ALLOC(ndr, r->info2);
6921 uint32_t _ptr_info3;
6922 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
6924 NDR_PULL_ALLOC(ndr, r->info3);
6931 uint32_t _ptr_info4;
6932 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
6934 NDR_PULL_ALLOC(ndr, r->info4);
6941 uint32_t _ptr_info6;
6942 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
6944 NDR_PULL_ALLOC(ndr, r->info6);
6951 uint32_t _ptr_info8;
6952 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
6954 NDR_PULL_ALLOC(ndr, r->info8);
6961 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6964 if (ndr_flags & NDR_BUFFERS) {
6968 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6969 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
6970 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6971 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
6977 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
6978 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
6979 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6980 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
6986 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
6987 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
6988 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
6989 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
6995 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
6996 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
6997 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6998 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
7004 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
7005 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
7006 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
7007 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
7013 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
7014 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
7015 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
7016 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
7021 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7024 return NDR_ERR_SUCCESS;
7027 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddDriverInfo *r)
7030 level = ndr_print_get_switch_value(ndr, r);
7031 ndr_print_union(ndr, name, level, "spoolss_AddDriverInfo");
7034 ndr_print_ptr(ndr, "info1", r->info1);
7037 ndr_print_spoolss_AddDriverInfo1(ndr, "info1", r->info1);
7043 ndr_print_ptr(ndr, "info2", r->info2);
7046 ndr_print_spoolss_AddDriverInfo2(ndr, "info2", r->info2);
7052 ndr_print_ptr(ndr, "info3", r->info3);
7055 ndr_print_spoolss_AddDriverInfo3(ndr, "info3", r->info3);
7061 ndr_print_ptr(ndr, "info4", r->info4);
7064 ndr_print_spoolss_AddDriverInfo4(ndr, "info4", r->info4);
7070 ndr_print_ptr(ndr, "info6", r->info6);
7073 ndr_print_spoolss_AddDriverInfo6(ndr, "info6", r->info6);
7079 ndr_print_ptr(ndr, "info8", r->info8);
7082 ndr_print_spoolss_AddDriverInfo8(ndr, "info8", r->info8);
7088 ndr_print_bad_level(ndr, name, level);
7092 static enum ndr_err_code ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfoCtr *r)
7094 if (ndr_flags & NDR_SCALARS) {
7095 NDR_CHECK(ndr_push_align(ndr, 4));
7096 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
7097 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
7098 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
7100 if (ndr_flags & NDR_BUFFERS) {
7101 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
7103 return NDR_ERR_SUCCESS;
7106 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfoCtr *r)
7108 if (ndr_flags & NDR_SCALARS) {
7109 NDR_CHECK(ndr_pull_align(ndr, 4));
7110 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
7111 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
7112 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
7114 if (ndr_flags & NDR_BUFFERS) {
7115 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
7117 return NDR_ERR_SUCCESS;
7120 _PUBLIC_ void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfoCtr *r)
7122 ndr_print_struct(ndr, name, "spoolss_AddDriverInfoCtr");
7124 ndr_print_uint32(ndr, "level", r->level);
7125 ndr_print_set_switch_value(ndr, &r->info, r->level);
7126 ndr_print_spoolss_AddDriverInfo(ndr, "info", &r->info);
7130 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo1 *r)
7132 if (ndr_flags & NDR_SCALARS) {
7133 NDR_CHECK(ndr_push_align(ndr, 4));
7135 uint32_t _flags_save_string = ndr->flags;
7136 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7137 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
7138 ndr->flags = _flags_save_string;
7141 if (ndr_flags & NDR_BUFFERS) {
7143 uint32_t _flags_save_string = ndr->flags;
7144 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7145 if (r->driver_name) {
7146 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
7147 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
7149 ndr->flags = _flags_save_string;
7152 return NDR_ERR_SUCCESS;
7155 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo1 *r)
7157 uint32_t _ptr_driver_name;
7158 TALLOC_CTX *_mem_save_driver_name_0;
7159 if (ndr_flags & NDR_SCALARS) {
7160 NDR_CHECK(ndr_pull_align(ndr, 4));
7162 uint32_t _flags_save_string = ndr->flags;
7163 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7164 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7165 if (_ptr_driver_name) {
7166 NDR_PULL_ALLOC(ndr, r->driver_name);
7167 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
7169 r->driver_name = NULL;
7171 ndr->flags = _flags_save_string;
7174 if (ndr_flags & NDR_BUFFERS) {
7176 uint32_t _flags_save_string = ndr->flags;
7177 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7178 if (r->driver_name) {
7179 uint32_t _relative_save_offset;
7180 _relative_save_offset = ndr->offset;
7181 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
7182 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7183 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7184 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
7185 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7186 ndr->offset = _relative_save_offset;
7188 ndr->flags = _flags_save_string;
7191 return NDR_ERR_SUCCESS;
7194 _PUBLIC_ void ndr_print_spoolss_DriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo1 *r)
7196 ndr_print_struct(ndr, name, "spoolss_DriverInfo1");
7198 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7200 if (r->driver_name) {
7201 ndr_print_string(ndr, "driver_name", r->driver_name);
7207 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1 *r, struct smb_iconv_convenience *ic, int flags)
7209 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo1, ic);
7212 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo2 *r)
7214 if (ndr_flags & NDR_SCALARS) {
7215 NDR_CHECK(ndr_push_align(ndr, 4));
7216 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7218 uint32_t _flags_save_string = ndr->flags;
7219 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7220 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
7221 ndr->flags = _flags_save_string;
7224 uint32_t _flags_save_string = ndr->flags;
7225 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7226 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
7227 ndr->flags = _flags_save_string;
7230 uint32_t _flags_save_string = ndr->flags;
7231 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7232 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
7233 ndr->flags = _flags_save_string;
7236 uint32_t _flags_save_string = ndr->flags;
7237 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7238 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
7239 ndr->flags = _flags_save_string;
7242 uint32_t _flags_save_string = ndr->flags;
7243 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7244 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
7245 ndr->flags = _flags_save_string;
7248 if (ndr_flags & NDR_BUFFERS) {
7250 uint32_t _flags_save_string = ndr->flags;
7251 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7252 if (r->driver_name) {
7253 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
7254 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
7256 ndr->flags = _flags_save_string;
7259 uint32_t _flags_save_string = ndr->flags;
7260 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7261 if (r->architecture) {
7262 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
7263 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
7265 ndr->flags = _flags_save_string;
7268 uint32_t _flags_save_string = ndr->flags;
7269 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7270 if (r->driver_path) {
7271 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
7272 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
7274 ndr->flags = _flags_save_string;
7277 uint32_t _flags_save_string = ndr->flags;
7278 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7280 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
7281 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
7283 ndr->flags = _flags_save_string;
7286 uint32_t _flags_save_string = ndr->flags;
7287 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7288 if (r->config_file) {
7289 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
7290 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
7292 ndr->flags = _flags_save_string;
7295 return NDR_ERR_SUCCESS;
7298 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo2 *r)
7300 uint32_t _ptr_driver_name;
7301 TALLOC_CTX *_mem_save_driver_name_0;
7302 uint32_t _ptr_architecture;
7303 TALLOC_CTX *_mem_save_architecture_0;
7304 uint32_t _ptr_driver_path;
7305 TALLOC_CTX *_mem_save_driver_path_0;
7306 uint32_t _ptr_data_file;
7307 TALLOC_CTX *_mem_save_data_file_0;
7308 uint32_t _ptr_config_file;
7309 TALLOC_CTX *_mem_save_config_file_0;
7310 if (ndr_flags & NDR_SCALARS) {
7311 NDR_CHECK(ndr_pull_align(ndr, 4));
7312 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
7314 uint32_t _flags_save_string = ndr->flags;
7315 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7316 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7317 if (_ptr_driver_name) {
7318 NDR_PULL_ALLOC(ndr, r->driver_name);
7319 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
7321 r->driver_name = NULL;
7323 ndr->flags = _flags_save_string;
7326 uint32_t _flags_save_string = ndr->flags;
7327 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7328 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
7329 if (_ptr_architecture) {
7330 NDR_PULL_ALLOC(ndr, r->architecture);
7331 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
7333 r->architecture = NULL;
7335 ndr->flags = _flags_save_string;
7338 uint32_t _flags_save_string = ndr->flags;
7339 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7340 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
7341 if (_ptr_driver_path) {
7342 NDR_PULL_ALLOC(ndr, r->driver_path);
7343 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
7345 r->driver_path = NULL;
7347 ndr->flags = _flags_save_string;
7350 uint32_t _flags_save_string = ndr->flags;
7351 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7352 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
7353 if (_ptr_data_file) {
7354 NDR_PULL_ALLOC(ndr, r->data_file);
7355 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
7357 r->data_file = NULL;
7359 ndr->flags = _flags_save_string;
7362 uint32_t _flags_save_string = ndr->flags;
7363 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7364 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
7365 if (_ptr_config_file) {
7366 NDR_PULL_ALLOC(ndr, r->config_file);
7367 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
7369 r->config_file = NULL;
7371 ndr->flags = _flags_save_string;
7374 if (ndr_flags & NDR_BUFFERS) {
7376 uint32_t _flags_save_string = ndr->flags;
7377 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7378 if (r->driver_name) {
7379 uint32_t _relative_save_offset;
7380 _relative_save_offset = ndr->offset;
7381 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
7382 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7383 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7384 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
7385 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7386 ndr->offset = _relative_save_offset;
7388 ndr->flags = _flags_save_string;
7391 uint32_t _flags_save_string = ndr->flags;
7392 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7393 if (r->architecture) {
7394 uint32_t _relative_save_offset;
7395 _relative_save_offset = ndr->offset;
7396 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
7397 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
7398 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
7399 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
7400 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
7401 ndr->offset = _relative_save_offset;
7403 ndr->flags = _flags_save_string;
7406 uint32_t _flags_save_string = ndr->flags;
7407 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7408 if (r->driver_path) {
7409 uint32_t _relative_save_offset;
7410 _relative_save_offset = ndr->offset;
7411 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
7412 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
7413 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
7414 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
7415 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
7416 ndr->offset = _relative_save_offset;
7418 ndr->flags = _flags_save_string;
7421 uint32_t _flags_save_string = ndr->flags;
7422 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7424 uint32_t _relative_save_offset;
7425 _relative_save_offset = ndr->offset;
7426 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
7427 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7428 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
7429 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
7430 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
7431 ndr->offset = _relative_save_offset;
7433 ndr->flags = _flags_save_string;
7436 uint32_t _flags_save_string = ndr->flags;
7437 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7438 if (r->config_file) {
7439 uint32_t _relative_save_offset;
7440 _relative_save_offset = ndr->offset;
7441 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
7442 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7443 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
7444 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
7445 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
7446 ndr->offset = _relative_save_offset;
7448 ndr->flags = _flags_save_string;
7451 return NDR_ERR_SUCCESS;
7454 _PUBLIC_ void ndr_print_spoolss_DriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo2 *r)
7456 ndr_print_struct(ndr, name, "spoolss_DriverInfo2");
7458 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
7459 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7461 if (r->driver_name) {
7462 ndr_print_string(ndr, "driver_name", r->driver_name);
7465 ndr_print_ptr(ndr, "architecture", r->architecture);
7467 if (r->architecture) {
7468 ndr_print_string(ndr, "architecture", r->architecture);
7471 ndr_print_ptr(ndr, "driver_path", r->driver_path);
7473 if (r->driver_path) {
7474 ndr_print_string(ndr, "driver_path", r->driver_path);
7477 ndr_print_ptr(ndr, "data_file", r->data_file);
7480 ndr_print_string(ndr, "data_file", r->data_file);
7483 ndr_print_ptr(ndr, "config_file", r->config_file);
7485 if (r->config_file) {
7486 ndr_print_string(ndr, "config_file", r->config_file);
7492 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2 *r, struct smb_iconv_convenience *ic, int flags)
7494 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo2, ic);
7497 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo3 *r)
7499 if (ndr_flags & NDR_SCALARS) {
7500 NDR_CHECK(ndr_push_align(ndr, 4));
7501 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7503 uint32_t _flags_save_string = ndr->flags;
7504 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7505 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
7506 ndr->flags = _flags_save_string;
7509 uint32_t _flags_save_string = ndr->flags;
7510 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7511 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
7512 ndr->flags = _flags_save_string;
7515 uint32_t _flags_save_string = ndr->flags;
7516 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7517 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
7518 ndr->flags = _flags_save_string;
7521 uint32_t _flags_save_string = ndr->flags;
7522 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7523 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
7524 ndr->flags = _flags_save_string;
7527 uint32_t _flags_save_string = ndr->flags;
7528 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7529 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
7530 ndr->flags = _flags_save_string;
7533 uint32_t _flags_save_string = ndr->flags;
7534 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7535 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
7536 ndr->flags = _flags_save_string;
7539 uint32_t _flags_save_string_array = ndr->flags;
7540 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7541 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
7542 ndr->flags = _flags_save_string_array;
7545 uint32_t _flags_save_string = ndr->flags;
7546 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7547 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
7548 ndr->flags = _flags_save_string;
7551 uint32_t _flags_save_string = ndr->flags;
7552 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7553 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
7554 ndr->flags = _flags_save_string;
7557 if (ndr_flags & NDR_BUFFERS) {
7559 uint32_t _flags_save_string = ndr->flags;
7560 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7561 if (r->driver_name) {
7562 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
7563 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
7565 ndr->flags = _flags_save_string;
7568 uint32_t _flags_save_string = ndr->flags;
7569 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7570 if (r->architecture) {
7571 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
7572 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
7574 ndr->flags = _flags_save_string;
7577 uint32_t _flags_save_string = ndr->flags;
7578 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7579 if (r->driver_path) {
7580 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
7581 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
7583 ndr->flags = _flags_save_string;
7586 uint32_t _flags_save_string = ndr->flags;
7587 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7589 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
7590 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
7592 ndr->flags = _flags_save_string;
7595 uint32_t _flags_save_string = ndr->flags;
7596 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7597 if (r->config_file) {
7598 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
7599 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
7601 ndr->flags = _flags_save_string;
7604 uint32_t _flags_save_string = ndr->flags;
7605 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7607 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
7608 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
7610 ndr->flags = _flags_save_string;
7613 uint32_t _flags_save_string_array = ndr->flags;
7614 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7615 if (r->dependent_files) {
7616 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
7617 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
7619 ndr->flags = _flags_save_string_array;
7622 uint32_t _flags_save_string = ndr->flags;
7623 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7624 if (r->monitor_name) {
7625 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
7626 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
7628 ndr->flags = _flags_save_string;
7631 uint32_t _flags_save_string = ndr->flags;
7632 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7633 if (r->default_datatype) {
7634 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
7635 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
7637 ndr->flags = _flags_save_string;
7640 return NDR_ERR_SUCCESS;
7643 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo3 *r)
7645 uint32_t _ptr_driver_name;
7646 TALLOC_CTX *_mem_save_driver_name_0;
7647 uint32_t _ptr_architecture;
7648 TALLOC_CTX *_mem_save_architecture_0;
7649 uint32_t _ptr_driver_path;
7650 TALLOC_CTX *_mem_save_driver_path_0;
7651 uint32_t _ptr_data_file;
7652 TALLOC_CTX *_mem_save_data_file_0;
7653 uint32_t _ptr_config_file;
7654 TALLOC_CTX *_mem_save_config_file_0;
7655 uint32_t _ptr_help_file;
7656 TALLOC_CTX *_mem_save_help_file_0;
7657 uint32_t _ptr_dependent_files;
7658 TALLOC_CTX *_mem_save_dependent_files_0;
7659 uint32_t _ptr_monitor_name;
7660 TALLOC_CTX *_mem_save_monitor_name_0;
7661 uint32_t _ptr_default_datatype;
7662 TALLOC_CTX *_mem_save_default_datatype_0;
7663 if (ndr_flags & NDR_SCALARS) {
7664 NDR_CHECK(ndr_pull_align(ndr, 4));
7665 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
7667 uint32_t _flags_save_string = ndr->flags;
7668 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7669 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7670 if (_ptr_driver_name) {
7671 NDR_PULL_ALLOC(ndr, r->driver_name);
7672 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
7674 r->driver_name = NULL;
7676 ndr->flags = _flags_save_string;
7679 uint32_t _flags_save_string = ndr->flags;
7680 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7681 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
7682 if (_ptr_architecture) {
7683 NDR_PULL_ALLOC(ndr, r->architecture);
7684 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
7686 r->architecture = NULL;
7688 ndr->flags = _flags_save_string;
7691 uint32_t _flags_save_string = ndr->flags;
7692 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7693 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
7694 if (_ptr_driver_path) {
7695 NDR_PULL_ALLOC(ndr, r->driver_path);
7696 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
7698 r->driver_path = NULL;
7700 ndr->flags = _flags_save_string;
7703 uint32_t _flags_save_string = ndr->flags;
7704 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7705 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
7706 if (_ptr_data_file) {
7707 NDR_PULL_ALLOC(ndr, r->data_file);
7708 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
7710 r->data_file = NULL;
7712 ndr->flags = _flags_save_string;
7715 uint32_t _flags_save_string = ndr->flags;
7716 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7717 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
7718 if (_ptr_config_file) {
7719 NDR_PULL_ALLOC(ndr, r->config_file);
7720 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
7722 r->config_file = NULL;
7724 ndr->flags = _flags_save_string;
7727 uint32_t _flags_save_string = ndr->flags;
7728 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7729 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
7730 if (_ptr_help_file) {
7731 NDR_PULL_ALLOC(ndr, r->help_file);
7732 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
7734 r->help_file = NULL;
7736 ndr->flags = _flags_save_string;
7739 uint32_t _flags_save_string_array = ndr->flags;
7740 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7741 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
7742 if (_ptr_dependent_files) {
7743 NDR_PULL_ALLOC(ndr, r->dependent_files);
7744 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
7746 r->dependent_files = NULL;
7748 ndr->flags = _flags_save_string_array;
7751 uint32_t _flags_save_string = ndr->flags;
7752 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7753 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
7754 if (_ptr_monitor_name) {
7755 NDR_PULL_ALLOC(ndr, r->monitor_name);
7756 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
7758 r->monitor_name = NULL;
7760 ndr->flags = _flags_save_string;
7763 uint32_t _flags_save_string = ndr->flags;
7764 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7765 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
7766 if (_ptr_default_datatype) {
7767 NDR_PULL_ALLOC(ndr, r->default_datatype);
7768 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
7770 r->default_datatype = NULL;
7772 ndr->flags = _flags_save_string;
7775 if (ndr_flags & NDR_BUFFERS) {
7777 uint32_t _flags_save_string = ndr->flags;
7778 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7779 if (r->driver_name) {
7780 uint32_t _relative_save_offset;
7781 _relative_save_offset = ndr->offset;
7782 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
7783 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7784 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7785 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
7786 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7787 ndr->offset = _relative_save_offset;
7789 ndr->flags = _flags_save_string;
7792 uint32_t _flags_save_string = ndr->flags;
7793 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7794 if (r->architecture) {
7795 uint32_t _relative_save_offset;
7796 _relative_save_offset = ndr->offset;
7797 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
7798 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
7799 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
7800 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
7801 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
7802 ndr->offset = _relative_save_offset;
7804 ndr->flags = _flags_save_string;
7807 uint32_t _flags_save_string = ndr->flags;
7808 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7809 if (r->driver_path) {
7810 uint32_t _relative_save_offset;
7811 _relative_save_offset = ndr->offset;
7812 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
7813 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
7814 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
7815 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
7816 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
7817 ndr->offset = _relative_save_offset;
7819 ndr->flags = _flags_save_string;
7822 uint32_t _flags_save_string = ndr->flags;
7823 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7825 uint32_t _relative_save_offset;
7826 _relative_save_offset = ndr->offset;
7827 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
7828 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7829 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
7830 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
7831 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
7832 ndr->offset = _relative_save_offset;
7834 ndr->flags = _flags_save_string;
7837 uint32_t _flags_save_string = ndr->flags;
7838 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7839 if (r->config_file) {
7840 uint32_t _relative_save_offset;
7841 _relative_save_offset = ndr->offset;
7842 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
7843 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7844 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
7845 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
7846 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
7847 ndr->offset = _relative_save_offset;
7849 ndr->flags = _flags_save_string;
7852 uint32_t _flags_save_string = ndr->flags;
7853 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7855 uint32_t _relative_save_offset;
7856 _relative_save_offset = ndr->offset;
7857 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
7858 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7859 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
7860 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
7861 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
7862 ndr->offset = _relative_save_offset;
7864 ndr->flags = _flags_save_string;
7867 uint32_t _flags_save_string_array = ndr->flags;
7868 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7869 if (r->dependent_files) {
7870 uint32_t _relative_save_offset;
7871 _relative_save_offset = ndr->offset;
7872 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
7873 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
7874 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
7875 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
7876 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
7877 ndr->offset = _relative_save_offset;
7879 ndr->flags = _flags_save_string_array;
7882 uint32_t _flags_save_string = ndr->flags;
7883 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7884 if (r->monitor_name) {
7885 uint32_t _relative_save_offset;
7886 _relative_save_offset = ndr->offset;
7887 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
7888 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7889 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
7890 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
7891 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
7892 ndr->offset = _relative_save_offset;
7894 ndr->flags = _flags_save_string;
7897 uint32_t _flags_save_string = ndr->flags;
7898 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7899 if (r->default_datatype) {
7900 uint32_t _relative_save_offset;
7901 _relative_save_offset = ndr->offset;
7902 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
7903 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
7904 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
7905 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
7906 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
7907 ndr->offset = _relative_save_offset;
7909 ndr->flags = _flags_save_string;
7912 return NDR_ERR_SUCCESS;
7915 _PUBLIC_ void ndr_print_spoolss_DriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo3 *r)
7917 ndr_print_struct(ndr, name, "spoolss_DriverInfo3");
7919 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
7920 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7922 if (r->driver_name) {
7923 ndr_print_string(ndr, "driver_name", r->driver_name);
7926 ndr_print_ptr(ndr, "architecture", r->architecture);
7928 if (r->architecture) {
7929 ndr_print_string(ndr, "architecture", r->architecture);
7932 ndr_print_ptr(ndr, "driver_path", r->driver_path);
7934 if (r->driver_path) {
7935 ndr_print_string(ndr, "driver_path", r->driver_path);
7938 ndr_print_ptr(ndr, "data_file", r->data_file);
7941 ndr_print_string(ndr, "data_file", r->data_file);
7944 ndr_print_ptr(ndr, "config_file", r->config_file);
7946 if (r->config_file) {
7947 ndr_print_string(ndr, "config_file", r->config_file);
7950 ndr_print_ptr(ndr, "help_file", r->help_file);
7953 ndr_print_string(ndr, "help_file", r->help_file);
7956 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
7958 if (r->dependent_files) {
7959 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
7962 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
7964 if (r->monitor_name) {
7965 ndr_print_string(ndr, "monitor_name", r->monitor_name);
7968 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
7970 if (r->default_datatype) {
7971 ndr_print_string(ndr, "default_datatype", r->default_datatype);
7977 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3 *r, struct smb_iconv_convenience *ic, int flags)
7979 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo3, ic);
7982 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo4 *r)
7984 if (ndr_flags & NDR_SCALARS) {
7985 NDR_CHECK(ndr_push_align(ndr, 4));
7986 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7988 uint32_t _flags_save_string = ndr->flags;
7989 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7990 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
7991 ndr->flags = _flags_save_string;
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->architecture));
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->driver_path));
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->data_file));
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->config_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->help_file));
8021 ndr->flags = _flags_save_string;
8024 uint32_t _flags_save_string_array = ndr->flags;
8025 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8026 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
8027 ndr->flags = _flags_save_string_array;
8030 uint32_t _flags_save_string = ndr->flags;
8031 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8032 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
8033 ndr->flags = _flags_save_string;
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->default_datatype));
8039 ndr->flags = _flags_save_string;
8042 uint32_t _flags_save_string_array = ndr->flags;
8043 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8044 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
8045 ndr->flags = _flags_save_string_array;
8048 if (ndr_flags & NDR_BUFFERS) {
8050 uint32_t _flags_save_string = ndr->flags;
8051 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8052 if (r->driver_name) {
8053 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
8054 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
8056 ndr->flags = _flags_save_string;
8059 uint32_t _flags_save_string = ndr->flags;
8060 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8061 if (r->architecture) {
8062 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
8063 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
8065 ndr->flags = _flags_save_string;
8068 uint32_t _flags_save_string = ndr->flags;
8069 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8070 if (r->driver_path) {
8071 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
8072 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
8074 ndr->flags = _flags_save_string;
8077 uint32_t _flags_save_string = ndr->flags;
8078 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8080 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
8081 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
8083 ndr->flags = _flags_save_string;
8086 uint32_t _flags_save_string = ndr->flags;
8087 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8088 if (r->config_file) {
8089 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
8090 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
8092 ndr->flags = _flags_save_string;
8095 uint32_t _flags_save_string = ndr->flags;
8096 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8098 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
8099 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
8101 ndr->flags = _flags_save_string;
8104 uint32_t _flags_save_string_array = ndr->flags;
8105 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8106 if (r->dependent_files) {
8107 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
8108 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
8110 ndr->flags = _flags_save_string_array;
8113 uint32_t _flags_save_string = ndr->flags;
8114 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8115 if (r->monitor_name) {
8116 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
8117 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
8119 ndr->flags = _flags_save_string;
8122 uint32_t _flags_save_string = ndr->flags;
8123 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8124 if (r->default_datatype) {
8125 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
8126 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
8128 ndr->flags = _flags_save_string;
8131 uint32_t _flags_save_string_array = ndr->flags;
8132 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8133 if (r->previous_names) {
8134 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
8135 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
8137 ndr->flags = _flags_save_string_array;
8140 return NDR_ERR_SUCCESS;
8143 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo4 *r)
8145 uint32_t _ptr_driver_name;
8146 TALLOC_CTX *_mem_save_driver_name_0;
8147 uint32_t _ptr_architecture;
8148 TALLOC_CTX *_mem_save_architecture_0;
8149 uint32_t _ptr_driver_path;
8150 TALLOC_CTX *_mem_save_driver_path_0;
8151 uint32_t _ptr_data_file;
8152 TALLOC_CTX *_mem_save_data_file_0;
8153 uint32_t _ptr_config_file;
8154 TALLOC_CTX *_mem_save_config_file_0;
8155 uint32_t _ptr_help_file;
8156 TALLOC_CTX *_mem_save_help_file_0;
8157 uint32_t _ptr_dependent_files;
8158 TALLOC_CTX *_mem_save_dependent_files_0;
8159 uint32_t _ptr_monitor_name;
8160 TALLOC_CTX *_mem_save_monitor_name_0;
8161 uint32_t _ptr_default_datatype;
8162 TALLOC_CTX *_mem_save_default_datatype_0;
8163 uint32_t _ptr_previous_names;
8164 TALLOC_CTX *_mem_save_previous_names_0;
8165 if (ndr_flags & NDR_SCALARS) {
8166 NDR_CHECK(ndr_pull_align(ndr, 4));
8167 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8169 uint32_t _flags_save_string = ndr->flags;
8170 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8171 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8172 if (_ptr_driver_name) {
8173 NDR_PULL_ALLOC(ndr, r->driver_name);
8174 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
8176 r->driver_name = NULL;
8178 ndr->flags = _flags_save_string;
8181 uint32_t _flags_save_string = ndr->flags;
8182 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8183 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8184 if (_ptr_architecture) {
8185 NDR_PULL_ALLOC(ndr, r->architecture);
8186 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
8188 r->architecture = NULL;
8190 ndr->flags = _flags_save_string;
8193 uint32_t _flags_save_string = ndr->flags;
8194 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8195 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8196 if (_ptr_driver_path) {
8197 NDR_PULL_ALLOC(ndr, r->driver_path);
8198 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
8200 r->driver_path = NULL;
8202 ndr->flags = _flags_save_string;
8205 uint32_t _flags_save_string = ndr->flags;
8206 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8207 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8208 if (_ptr_data_file) {
8209 NDR_PULL_ALLOC(ndr, r->data_file);
8210 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
8212 r->data_file = NULL;
8214 ndr->flags = _flags_save_string;
8217 uint32_t _flags_save_string = ndr->flags;
8218 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8219 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8220 if (_ptr_config_file) {
8221 NDR_PULL_ALLOC(ndr, r->config_file);
8222 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
8224 r->config_file = NULL;
8226 ndr->flags = _flags_save_string;
8229 uint32_t _flags_save_string = ndr->flags;
8230 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8231 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8232 if (_ptr_help_file) {
8233 NDR_PULL_ALLOC(ndr, r->help_file);
8234 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
8236 r->help_file = NULL;
8238 ndr->flags = _flags_save_string;
8241 uint32_t _flags_save_string_array = ndr->flags;
8242 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8243 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8244 if (_ptr_dependent_files) {
8245 NDR_PULL_ALLOC(ndr, r->dependent_files);
8246 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
8248 r->dependent_files = NULL;
8250 ndr->flags = _flags_save_string_array;
8253 uint32_t _flags_save_string = ndr->flags;
8254 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8255 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8256 if (_ptr_monitor_name) {
8257 NDR_PULL_ALLOC(ndr, r->monitor_name);
8258 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
8260 r->monitor_name = NULL;
8262 ndr->flags = _flags_save_string;
8265 uint32_t _flags_save_string = ndr->flags;
8266 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8267 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8268 if (_ptr_default_datatype) {
8269 NDR_PULL_ALLOC(ndr, r->default_datatype);
8270 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
8272 r->default_datatype = NULL;
8274 ndr->flags = _flags_save_string;
8277 uint32_t _flags_save_string_array = ndr->flags;
8278 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8279 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
8280 if (_ptr_previous_names) {
8281 NDR_PULL_ALLOC(ndr, r->previous_names);
8282 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
8284 r->previous_names = NULL;
8286 ndr->flags = _flags_save_string_array;
8289 if (ndr_flags & NDR_BUFFERS) {
8291 uint32_t _flags_save_string = ndr->flags;
8292 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8293 if (r->driver_name) {
8294 uint32_t _relative_save_offset;
8295 _relative_save_offset = ndr->offset;
8296 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
8297 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8298 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8299 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
8300 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8301 ndr->offset = _relative_save_offset;
8303 ndr->flags = _flags_save_string;
8306 uint32_t _flags_save_string = ndr->flags;
8307 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8308 if (r->architecture) {
8309 uint32_t _relative_save_offset;
8310 _relative_save_offset = ndr->offset;
8311 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
8312 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8313 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8314 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
8315 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8316 ndr->offset = _relative_save_offset;
8318 ndr->flags = _flags_save_string;
8321 uint32_t _flags_save_string = ndr->flags;
8322 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8323 if (r->driver_path) {
8324 uint32_t _relative_save_offset;
8325 _relative_save_offset = ndr->offset;
8326 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
8327 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8328 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8329 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
8330 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8331 ndr->offset = _relative_save_offset;
8333 ndr->flags = _flags_save_string;
8336 uint32_t _flags_save_string = ndr->flags;
8337 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8339 uint32_t _relative_save_offset;
8340 _relative_save_offset = ndr->offset;
8341 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
8342 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8343 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8344 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
8345 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8346 ndr->offset = _relative_save_offset;
8348 ndr->flags = _flags_save_string;
8351 uint32_t _flags_save_string = ndr->flags;
8352 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8353 if (r->config_file) {
8354 uint32_t _relative_save_offset;
8355 _relative_save_offset = ndr->offset;
8356 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
8357 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8358 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8359 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
8360 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8361 ndr->offset = _relative_save_offset;
8363 ndr->flags = _flags_save_string;
8366 uint32_t _flags_save_string = ndr->flags;
8367 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8369 uint32_t _relative_save_offset;
8370 _relative_save_offset = ndr->offset;
8371 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
8372 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8373 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8374 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
8375 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8376 ndr->offset = _relative_save_offset;
8378 ndr->flags = _flags_save_string;
8381 uint32_t _flags_save_string_array = ndr->flags;
8382 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8383 if (r->dependent_files) {
8384 uint32_t _relative_save_offset;
8385 _relative_save_offset = ndr->offset;
8386 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
8387 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8388 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8389 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
8390 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8391 ndr->offset = _relative_save_offset;
8393 ndr->flags = _flags_save_string_array;
8396 uint32_t _flags_save_string = ndr->flags;
8397 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8398 if (r->monitor_name) {
8399 uint32_t _relative_save_offset;
8400 _relative_save_offset = ndr->offset;
8401 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
8402 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8403 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8404 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
8405 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8406 ndr->offset = _relative_save_offset;
8408 ndr->flags = _flags_save_string;
8411 uint32_t _flags_save_string = ndr->flags;
8412 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8413 if (r->default_datatype) {
8414 uint32_t _relative_save_offset;
8415 _relative_save_offset = ndr->offset;
8416 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
8417 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8418 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8419 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
8420 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8421 ndr->offset = _relative_save_offset;
8423 ndr->flags = _flags_save_string;
8426 uint32_t _flags_save_string_array = ndr->flags;
8427 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8428 if (r->previous_names) {
8429 uint32_t _relative_save_offset;
8430 _relative_save_offset = ndr->offset;
8431 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
8432 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
8433 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
8434 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
8435 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
8436 ndr->offset = _relative_save_offset;
8438 ndr->flags = _flags_save_string_array;
8441 return NDR_ERR_SUCCESS;
8444 _PUBLIC_ void ndr_print_spoolss_DriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo4 *r)
8446 ndr_print_struct(ndr, name, "spoolss_DriverInfo4");
8448 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8449 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8451 if (r->driver_name) {
8452 ndr_print_string(ndr, "driver_name", r->driver_name);
8455 ndr_print_ptr(ndr, "architecture", r->architecture);
8457 if (r->architecture) {
8458 ndr_print_string(ndr, "architecture", r->architecture);
8461 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8463 if (r->driver_path) {
8464 ndr_print_string(ndr, "driver_path", r->driver_path);
8467 ndr_print_ptr(ndr, "data_file", r->data_file);
8470 ndr_print_string(ndr, "data_file", r->data_file);
8473 ndr_print_ptr(ndr, "config_file", r->config_file);
8475 if (r->config_file) {
8476 ndr_print_string(ndr, "config_file", r->config_file);
8479 ndr_print_ptr(ndr, "help_file", r->help_file);
8482 ndr_print_string(ndr, "help_file", r->help_file);
8485 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8487 if (r->dependent_files) {
8488 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
8491 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8493 if (r->monitor_name) {
8494 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8497 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8499 if (r->default_datatype) {
8500 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8503 ndr_print_ptr(ndr, "previous_names", r->previous_names);
8505 if (r->previous_names) {
8506 ndr_print_string_array(ndr, "previous_names", r->previous_names);
8512 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4 *r, struct smb_iconv_convenience *ic, int flags)
8514 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo4, ic);
8517 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo5 *r)
8519 if (ndr_flags & NDR_SCALARS) {
8520 NDR_CHECK(ndr_push_align(ndr, 4));
8521 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8523 uint32_t _flags_save_string = ndr->flags;
8524 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8525 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
8526 ndr->flags = _flags_save_string;
8529 uint32_t _flags_save_string = ndr->flags;
8530 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8531 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
8532 ndr->flags = _flags_save_string;
8535 uint32_t _flags_save_string = ndr->flags;
8536 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8537 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
8538 ndr->flags = _flags_save_string;
8541 uint32_t _flags_save_string = ndr->flags;
8542 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8543 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
8544 ndr->flags = _flags_save_string;
8547 uint32_t _flags_save_string = ndr->flags;
8548 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8549 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
8550 ndr->flags = _flags_save_string;
8552 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_attributes));
8553 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->config_version));
8554 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_version));
8556 if (ndr_flags & NDR_BUFFERS) {
8558 uint32_t _flags_save_string = ndr->flags;
8559 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8560 if (r->driver_name) {
8561 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
8562 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
8564 ndr->flags = _flags_save_string;
8567 uint32_t _flags_save_string = ndr->flags;
8568 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8569 if (r->architecture) {
8570 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
8571 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
8573 ndr->flags = _flags_save_string;
8576 uint32_t _flags_save_string = ndr->flags;
8577 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8578 if (r->driver_path) {
8579 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
8580 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
8582 ndr->flags = _flags_save_string;
8585 uint32_t _flags_save_string = ndr->flags;
8586 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8588 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
8589 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
8591 ndr->flags = _flags_save_string;
8594 uint32_t _flags_save_string = ndr->flags;
8595 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8596 if (r->config_file) {
8597 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
8598 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
8600 ndr->flags = _flags_save_string;
8603 return NDR_ERR_SUCCESS;
8606 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo5 *r)
8608 uint32_t _ptr_driver_name;
8609 TALLOC_CTX *_mem_save_driver_name_0;
8610 uint32_t _ptr_architecture;
8611 TALLOC_CTX *_mem_save_architecture_0;
8612 uint32_t _ptr_driver_path;
8613 TALLOC_CTX *_mem_save_driver_path_0;
8614 uint32_t _ptr_data_file;
8615 TALLOC_CTX *_mem_save_data_file_0;
8616 uint32_t _ptr_config_file;
8617 TALLOC_CTX *_mem_save_config_file_0;
8618 if (ndr_flags & NDR_SCALARS) {
8619 NDR_CHECK(ndr_pull_align(ndr, 4));
8620 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8622 uint32_t _flags_save_string = ndr->flags;
8623 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8624 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8625 if (_ptr_driver_name) {
8626 NDR_PULL_ALLOC(ndr, r->driver_name);
8627 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
8629 r->driver_name = NULL;
8631 ndr->flags = _flags_save_string;
8634 uint32_t _flags_save_string = ndr->flags;
8635 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8636 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8637 if (_ptr_architecture) {
8638 NDR_PULL_ALLOC(ndr, r->architecture);
8639 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
8641 r->architecture = NULL;
8643 ndr->flags = _flags_save_string;
8646 uint32_t _flags_save_string = ndr->flags;
8647 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8648 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8649 if (_ptr_driver_path) {
8650 NDR_PULL_ALLOC(ndr, r->driver_path);
8651 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
8653 r->driver_path = NULL;
8655 ndr->flags = _flags_save_string;
8658 uint32_t _flags_save_string = ndr->flags;
8659 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8660 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8661 if (_ptr_data_file) {
8662 NDR_PULL_ALLOC(ndr, r->data_file);
8663 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
8665 r->data_file = NULL;
8667 ndr->flags = _flags_save_string;
8670 uint32_t _flags_save_string = ndr->flags;
8671 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8672 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8673 if (_ptr_config_file) {
8674 NDR_PULL_ALLOC(ndr, r->config_file);
8675 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
8677 r->config_file = NULL;
8679 ndr->flags = _flags_save_string;
8681 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_attributes));
8682 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->config_version));
8683 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_version));
8685 if (ndr_flags & NDR_BUFFERS) {
8687 uint32_t _flags_save_string = ndr->flags;
8688 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8689 if (r->driver_name) {
8690 uint32_t _relative_save_offset;
8691 _relative_save_offset = ndr->offset;
8692 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
8693 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8694 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8695 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
8696 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8697 ndr->offset = _relative_save_offset;
8699 ndr->flags = _flags_save_string;
8702 uint32_t _flags_save_string = ndr->flags;
8703 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8704 if (r->architecture) {
8705 uint32_t _relative_save_offset;
8706 _relative_save_offset = ndr->offset;
8707 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
8708 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8709 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8710 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
8711 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8712 ndr->offset = _relative_save_offset;
8714 ndr->flags = _flags_save_string;
8717 uint32_t _flags_save_string = ndr->flags;
8718 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8719 if (r->driver_path) {
8720 uint32_t _relative_save_offset;
8721 _relative_save_offset = ndr->offset;
8722 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
8723 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8724 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8725 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
8726 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8727 ndr->offset = _relative_save_offset;
8729 ndr->flags = _flags_save_string;
8732 uint32_t _flags_save_string = ndr->flags;
8733 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8735 uint32_t _relative_save_offset;
8736 _relative_save_offset = ndr->offset;
8737 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
8738 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8739 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8740 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
8741 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8742 ndr->offset = _relative_save_offset;
8744 ndr->flags = _flags_save_string;
8747 uint32_t _flags_save_string = ndr->flags;
8748 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8749 if (r->config_file) {
8750 uint32_t _relative_save_offset;
8751 _relative_save_offset = ndr->offset;
8752 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
8753 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8754 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8755 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
8756 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8757 ndr->offset = _relative_save_offset;
8759 ndr->flags = _flags_save_string;
8762 return NDR_ERR_SUCCESS;
8765 _PUBLIC_ void ndr_print_spoolss_DriverInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo5 *r)
8767 ndr_print_struct(ndr, name, "spoolss_DriverInfo5");
8769 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8770 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8772 if (r->driver_name) {
8773 ndr_print_string(ndr, "driver_name", r->driver_name);
8776 ndr_print_ptr(ndr, "architecture", r->architecture);
8778 if (r->architecture) {
8779 ndr_print_string(ndr, "architecture", r->architecture);
8782 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8784 if (r->driver_path) {
8785 ndr_print_string(ndr, "driver_path", r->driver_path);
8788 ndr_print_ptr(ndr, "data_file", r->data_file);
8791 ndr_print_string(ndr, "data_file", r->data_file);
8794 ndr_print_ptr(ndr, "config_file", r->config_file);
8796 if (r->config_file) {
8797 ndr_print_string(ndr, "config_file", r->config_file);
8800 ndr_print_uint32(ndr, "driver_attributes", r->driver_attributes);
8801 ndr_print_uint32(ndr, "config_version", r->config_version);
8802 ndr_print_uint32(ndr, "driver_version", r->driver_version);
8806 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5 *r, struct smb_iconv_convenience *ic, int flags)
8808 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo5, ic);
8811 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo6 *r)
8813 if (ndr_flags & NDR_SCALARS) {
8814 NDR_CHECK(ndr_push_align(ndr, 8));
8815 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8817 uint32_t _flags_save_string = ndr->flags;
8818 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8819 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
8820 ndr->flags = _flags_save_string;
8823 uint32_t _flags_save_string = ndr->flags;
8824 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8825 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
8826 ndr->flags = _flags_save_string;
8829 uint32_t _flags_save_string = ndr->flags;
8830 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8831 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
8832 ndr->flags = _flags_save_string;
8835 uint32_t _flags_save_string = ndr->flags;
8836 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8837 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
8838 ndr->flags = _flags_save_string;
8841 uint32_t _flags_save_string = ndr->flags;
8842 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8843 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
8844 ndr->flags = _flags_save_string;
8847 uint32_t _flags_save_string = ndr->flags;
8848 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8849 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
8850 ndr->flags = _flags_save_string;
8853 uint32_t _flags_save_string_array = ndr->flags;
8854 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8855 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
8856 ndr->flags = _flags_save_string_array;
8859 uint32_t _flags_save_string = ndr->flags;
8860 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8861 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
8862 ndr->flags = _flags_save_string;
8865 uint32_t _flags_save_string = ndr->flags;
8866 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8867 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
8868 ndr->flags = _flags_save_string;
8871 uint32_t _flags_save_string_array = ndr->flags;
8872 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8873 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
8874 ndr->flags = _flags_save_string_array;
8876 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
8877 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
8879 uint32_t _flags_save_string = ndr->flags;
8880 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8881 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
8882 ndr->flags = _flags_save_string;
8885 uint32_t _flags_save_string = ndr->flags;
8886 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8887 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
8888 ndr->flags = _flags_save_string;
8891 uint32_t _flags_save_string = ndr->flags;
8892 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8893 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
8894 ndr->flags = _flags_save_string;
8897 uint32_t _flags_save_string = ndr->flags;
8898 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8899 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
8900 ndr->flags = _flags_save_string;
8903 if (ndr_flags & NDR_BUFFERS) {
8905 uint32_t _flags_save_string = ndr->flags;
8906 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8907 if (r->driver_name) {
8908 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
8909 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
8911 ndr->flags = _flags_save_string;
8914 uint32_t _flags_save_string = ndr->flags;
8915 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8916 if (r->architecture) {
8917 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
8918 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
8920 ndr->flags = _flags_save_string;
8923 uint32_t _flags_save_string = ndr->flags;
8924 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8925 if (r->driver_path) {
8926 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
8927 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
8929 ndr->flags = _flags_save_string;
8932 uint32_t _flags_save_string = ndr->flags;
8933 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8935 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
8936 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
8938 ndr->flags = _flags_save_string;
8941 uint32_t _flags_save_string = ndr->flags;
8942 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8943 if (r->config_file) {
8944 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
8945 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
8947 ndr->flags = _flags_save_string;
8950 uint32_t _flags_save_string = ndr->flags;
8951 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8953 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
8954 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
8956 ndr->flags = _flags_save_string;
8959 uint32_t _flags_save_string_array = ndr->flags;
8960 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8961 if (r->dependent_files) {
8962 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
8963 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
8965 ndr->flags = _flags_save_string_array;
8968 uint32_t _flags_save_string = ndr->flags;
8969 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8970 if (r->monitor_name) {
8971 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
8972 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
8974 ndr->flags = _flags_save_string;
8977 uint32_t _flags_save_string = ndr->flags;
8978 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8979 if (r->default_datatype) {
8980 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
8981 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
8983 ndr->flags = _flags_save_string;
8986 uint32_t _flags_save_string_array = ndr->flags;
8987 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8988 if (r->previous_names) {
8989 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
8990 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
8992 ndr->flags = _flags_save_string_array;
8995 uint32_t _flags_save_string = ndr->flags;
8996 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8997 if (r->manufacturer_name) {
8998 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
8999 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
9001 ndr->flags = _flags_save_string;
9004 uint32_t _flags_save_string = ndr->flags;
9005 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9006 if (r->manufacturer_url) {
9007 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
9008 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
9010 ndr->flags = _flags_save_string;
9013 uint32_t _flags_save_string = ndr->flags;
9014 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9015 if (r->hardware_id) {
9016 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
9017 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
9019 ndr->flags = _flags_save_string;
9022 uint32_t _flags_save_string = ndr->flags;
9023 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9025 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
9026 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
9028 ndr->flags = _flags_save_string;
9031 return NDR_ERR_SUCCESS;
9034 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo6 *r)
9036 uint32_t _ptr_driver_name;
9037 TALLOC_CTX *_mem_save_driver_name_0;
9038 uint32_t _ptr_architecture;
9039 TALLOC_CTX *_mem_save_architecture_0;
9040 uint32_t _ptr_driver_path;
9041 TALLOC_CTX *_mem_save_driver_path_0;
9042 uint32_t _ptr_data_file;
9043 TALLOC_CTX *_mem_save_data_file_0;
9044 uint32_t _ptr_config_file;
9045 TALLOC_CTX *_mem_save_config_file_0;
9046 uint32_t _ptr_help_file;
9047 TALLOC_CTX *_mem_save_help_file_0;
9048 uint32_t _ptr_dependent_files;
9049 TALLOC_CTX *_mem_save_dependent_files_0;
9050 uint32_t _ptr_monitor_name;
9051 TALLOC_CTX *_mem_save_monitor_name_0;
9052 uint32_t _ptr_default_datatype;
9053 TALLOC_CTX *_mem_save_default_datatype_0;
9054 uint32_t _ptr_previous_names;
9055 TALLOC_CTX *_mem_save_previous_names_0;
9056 uint32_t _ptr_manufacturer_name;
9057 TALLOC_CTX *_mem_save_manufacturer_name_0;
9058 uint32_t _ptr_manufacturer_url;
9059 TALLOC_CTX *_mem_save_manufacturer_url_0;
9060 uint32_t _ptr_hardware_id;
9061 TALLOC_CTX *_mem_save_hardware_id_0;
9062 uint32_t _ptr_provider;
9063 TALLOC_CTX *_mem_save_provider_0;
9064 if (ndr_flags & NDR_SCALARS) {
9065 NDR_CHECK(ndr_pull_align(ndr, 8));
9066 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9068 uint32_t _flags_save_string = ndr->flags;
9069 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9070 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9071 if (_ptr_driver_name) {
9072 NDR_PULL_ALLOC(ndr, r->driver_name);
9073 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
9075 r->driver_name = NULL;
9077 ndr->flags = _flags_save_string;
9080 uint32_t _flags_save_string = ndr->flags;
9081 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9082 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9083 if (_ptr_architecture) {
9084 NDR_PULL_ALLOC(ndr, r->architecture);
9085 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
9087 r->architecture = NULL;
9089 ndr->flags = _flags_save_string;
9092 uint32_t _flags_save_string = ndr->flags;
9093 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9094 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9095 if (_ptr_driver_path) {
9096 NDR_PULL_ALLOC(ndr, r->driver_path);
9097 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
9099 r->driver_path = NULL;
9101 ndr->flags = _flags_save_string;
9104 uint32_t _flags_save_string = ndr->flags;
9105 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9106 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9107 if (_ptr_data_file) {
9108 NDR_PULL_ALLOC(ndr, r->data_file);
9109 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
9111 r->data_file = NULL;
9113 ndr->flags = _flags_save_string;
9116 uint32_t _flags_save_string = ndr->flags;
9117 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9118 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9119 if (_ptr_config_file) {
9120 NDR_PULL_ALLOC(ndr, r->config_file);
9121 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
9123 r->config_file = NULL;
9125 ndr->flags = _flags_save_string;
9128 uint32_t _flags_save_string = ndr->flags;
9129 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9130 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9131 if (_ptr_help_file) {
9132 NDR_PULL_ALLOC(ndr, r->help_file);
9133 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
9135 r->help_file = NULL;
9137 ndr->flags = _flags_save_string;
9140 uint32_t _flags_save_string_array = ndr->flags;
9141 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9142 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9143 if (_ptr_dependent_files) {
9144 NDR_PULL_ALLOC(ndr, r->dependent_files);
9145 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
9147 r->dependent_files = NULL;
9149 ndr->flags = _flags_save_string_array;
9152 uint32_t _flags_save_string = ndr->flags;
9153 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9154 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9155 if (_ptr_monitor_name) {
9156 NDR_PULL_ALLOC(ndr, r->monitor_name);
9157 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
9159 r->monitor_name = NULL;
9161 ndr->flags = _flags_save_string;
9164 uint32_t _flags_save_string = ndr->flags;
9165 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9166 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9167 if (_ptr_default_datatype) {
9168 NDR_PULL_ALLOC(ndr, r->default_datatype);
9169 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
9171 r->default_datatype = NULL;
9173 ndr->flags = _flags_save_string;
9176 uint32_t _flags_save_string_array = ndr->flags;
9177 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9178 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9179 if (_ptr_previous_names) {
9180 NDR_PULL_ALLOC(ndr, r->previous_names);
9181 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
9183 r->previous_names = NULL;
9185 ndr->flags = _flags_save_string_array;
9187 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
9188 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9190 uint32_t _flags_save_string = ndr->flags;
9191 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9192 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9193 if (_ptr_manufacturer_name) {
9194 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9195 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
9197 r->manufacturer_name = NULL;
9199 ndr->flags = _flags_save_string;
9202 uint32_t _flags_save_string = ndr->flags;
9203 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9204 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9205 if (_ptr_manufacturer_url) {
9206 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9207 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
9209 r->manufacturer_url = NULL;
9211 ndr->flags = _flags_save_string;
9214 uint32_t _flags_save_string = ndr->flags;
9215 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9216 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9217 if (_ptr_hardware_id) {
9218 NDR_PULL_ALLOC(ndr, r->hardware_id);
9219 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
9221 r->hardware_id = NULL;
9223 ndr->flags = _flags_save_string;
9226 uint32_t _flags_save_string = ndr->flags;
9227 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9228 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9229 if (_ptr_provider) {
9230 NDR_PULL_ALLOC(ndr, r->provider);
9231 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
9235 ndr->flags = _flags_save_string;
9238 if (ndr_flags & NDR_BUFFERS) {
9240 uint32_t _flags_save_string = ndr->flags;
9241 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9242 if (r->driver_name) {
9243 uint32_t _relative_save_offset;
9244 _relative_save_offset = ndr->offset;
9245 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
9246 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9247 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9248 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
9249 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9250 ndr->offset = _relative_save_offset;
9252 ndr->flags = _flags_save_string;
9255 uint32_t _flags_save_string = ndr->flags;
9256 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9257 if (r->architecture) {
9258 uint32_t _relative_save_offset;
9259 _relative_save_offset = ndr->offset;
9260 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
9261 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9262 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9263 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
9264 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9265 ndr->offset = _relative_save_offset;
9267 ndr->flags = _flags_save_string;
9270 uint32_t _flags_save_string = ndr->flags;
9271 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9272 if (r->driver_path) {
9273 uint32_t _relative_save_offset;
9274 _relative_save_offset = ndr->offset;
9275 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
9276 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9277 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9278 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
9279 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9280 ndr->offset = _relative_save_offset;
9282 ndr->flags = _flags_save_string;
9285 uint32_t _flags_save_string = ndr->flags;
9286 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9288 uint32_t _relative_save_offset;
9289 _relative_save_offset = ndr->offset;
9290 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
9291 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9292 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9293 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
9294 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9295 ndr->offset = _relative_save_offset;
9297 ndr->flags = _flags_save_string;
9300 uint32_t _flags_save_string = ndr->flags;
9301 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9302 if (r->config_file) {
9303 uint32_t _relative_save_offset;
9304 _relative_save_offset = ndr->offset;
9305 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
9306 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9307 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9308 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
9309 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9310 ndr->offset = _relative_save_offset;
9312 ndr->flags = _flags_save_string;
9315 uint32_t _flags_save_string = ndr->flags;
9316 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9318 uint32_t _relative_save_offset;
9319 _relative_save_offset = ndr->offset;
9320 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
9321 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9322 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9323 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
9324 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9325 ndr->offset = _relative_save_offset;
9327 ndr->flags = _flags_save_string;
9330 uint32_t _flags_save_string_array = ndr->flags;
9331 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9332 if (r->dependent_files) {
9333 uint32_t _relative_save_offset;
9334 _relative_save_offset = ndr->offset;
9335 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
9336 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9337 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9338 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
9339 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9340 ndr->offset = _relative_save_offset;
9342 ndr->flags = _flags_save_string_array;
9345 uint32_t _flags_save_string = ndr->flags;
9346 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9347 if (r->monitor_name) {
9348 uint32_t _relative_save_offset;
9349 _relative_save_offset = ndr->offset;
9350 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
9351 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9352 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9353 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
9354 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9355 ndr->offset = _relative_save_offset;
9357 ndr->flags = _flags_save_string;
9360 uint32_t _flags_save_string = ndr->flags;
9361 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9362 if (r->default_datatype) {
9363 uint32_t _relative_save_offset;
9364 _relative_save_offset = ndr->offset;
9365 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
9366 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9367 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9368 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
9369 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9370 ndr->offset = _relative_save_offset;
9372 ndr->flags = _flags_save_string;
9375 uint32_t _flags_save_string_array = ndr->flags;
9376 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9377 if (r->previous_names) {
9378 uint32_t _relative_save_offset;
9379 _relative_save_offset = ndr->offset;
9380 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
9381 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9382 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9383 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
9384 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9385 ndr->offset = _relative_save_offset;
9387 ndr->flags = _flags_save_string_array;
9390 uint32_t _flags_save_string = ndr->flags;
9391 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9392 if (r->manufacturer_name) {
9393 uint32_t _relative_save_offset;
9394 _relative_save_offset = ndr->offset;
9395 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
9396 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9397 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
9398 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
9399 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
9400 ndr->offset = _relative_save_offset;
9402 ndr->flags = _flags_save_string;
9405 uint32_t _flags_save_string = ndr->flags;
9406 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9407 if (r->manufacturer_url) {
9408 uint32_t _relative_save_offset;
9409 _relative_save_offset = ndr->offset;
9410 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
9411 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
9412 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
9413 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
9414 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
9415 ndr->offset = _relative_save_offset;
9417 ndr->flags = _flags_save_string;
9420 uint32_t _flags_save_string = ndr->flags;
9421 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9422 if (r->hardware_id) {
9423 uint32_t _relative_save_offset;
9424 _relative_save_offset = ndr->offset;
9425 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
9426 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9427 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
9428 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
9429 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
9430 ndr->offset = _relative_save_offset;
9432 ndr->flags = _flags_save_string;
9435 uint32_t _flags_save_string = ndr->flags;
9436 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9438 uint32_t _relative_save_offset;
9439 _relative_save_offset = ndr->offset;
9440 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
9441 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
9442 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
9443 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
9444 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
9445 ndr->offset = _relative_save_offset;
9447 ndr->flags = _flags_save_string;
9450 return NDR_ERR_SUCCESS;
9453 _PUBLIC_ void ndr_print_spoolss_DriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo6 *r)
9455 ndr_print_struct(ndr, name, "spoolss_DriverInfo6");
9457 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9458 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9460 if (r->driver_name) {
9461 ndr_print_string(ndr, "driver_name", r->driver_name);
9464 ndr_print_ptr(ndr, "architecture", r->architecture);
9466 if (r->architecture) {
9467 ndr_print_string(ndr, "architecture", r->architecture);
9470 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9472 if (r->driver_path) {
9473 ndr_print_string(ndr, "driver_path", r->driver_path);
9476 ndr_print_ptr(ndr, "data_file", r->data_file);
9479 ndr_print_string(ndr, "data_file", r->data_file);
9482 ndr_print_ptr(ndr, "config_file", r->config_file);
9484 if (r->config_file) {
9485 ndr_print_string(ndr, "config_file", r->config_file);
9488 ndr_print_ptr(ndr, "help_file", r->help_file);
9491 ndr_print_string(ndr, "help_file", r->help_file);
9494 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9496 if (r->dependent_files) {
9497 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
9500 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9502 if (r->monitor_name) {
9503 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9506 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9508 if (r->default_datatype) {
9509 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9512 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9514 if (r->previous_names) {
9515 ndr_print_string_array(ndr, "previous_names", r->previous_names);
9518 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
9519 ndr_print_hyper(ndr, "driver_version", r->driver_version);
9520 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
9522 if (r->manufacturer_name) {
9523 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
9526 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
9528 if (r->manufacturer_url) {
9529 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
9532 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
9534 if (r->hardware_id) {
9535 ndr_print_string(ndr, "hardware_id", r->hardware_id);
9538 ndr_print_ptr(ndr, "provider", r->provider);
9541 ndr_print_string(ndr, "provider", r->provider);
9547 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6 *r, struct smb_iconv_convenience *ic, int flags)
9549 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo6, ic);
9552 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo8 *r)
9554 if (ndr_flags & NDR_SCALARS) {
9555 NDR_CHECK(ndr_push_align(ndr, 8));
9556 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9558 uint32_t _flags_save_string = ndr->flags;
9559 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9560 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
9561 ndr->flags = _flags_save_string;
9564 uint32_t _flags_save_string = ndr->flags;
9565 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9566 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
9567 ndr->flags = _flags_save_string;
9570 uint32_t _flags_save_string = ndr->flags;
9571 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9572 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
9573 ndr->flags = _flags_save_string;
9576 uint32_t _flags_save_string = ndr->flags;
9577 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9578 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
9579 ndr->flags = _flags_save_string;
9582 uint32_t _flags_save_string = ndr->flags;
9583 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9584 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
9585 ndr->flags = _flags_save_string;
9588 uint32_t _flags_save_string = ndr->flags;
9589 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9590 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
9591 ndr->flags = _flags_save_string;
9594 uint32_t _flags_save_string = ndr->flags;
9595 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9596 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
9597 ndr->flags = _flags_save_string;
9600 uint32_t _flags_save_string = ndr->flags;
9601 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9602 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
9603 ndr->flags = _flags_save_string;
9606 uint32_t _flags_save_string_array = ndr->flags;
9607 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9608 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
9609 ndr->flags = _flags_save_string_array;
9612 uint32_t _flags_save_string_array = ndr->flags;
9613 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9614 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
9615 ndr->flags = _flags_save_string_array;
9617 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
9618 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
9620 uint32_t _flags_save_string = ndr->flags;
9621 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9622 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
9623 ndr->flags = _flags_save_string;
9626 uint32_t _flags_save_string = ndr->flags;
9627 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9628 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
9629 ndr->flags = _flags_save_string;
9632 uint32_t _flags_save_string = ndr->flags;
9633 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9634 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
9635 ndr->flags = _flags_save_string;
9638 uint32_t _flags_save_string = ndr->flags;
9639 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9640 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
9641 ndr->flags = _flags_save_string;
9644 uint32_t _flags_save_string = ndr->flags;
9645 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9646 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
9647 ndr->flags = _flags_save_string;
9650 uint32_t _flags_save_string = ndr->flags;
9651 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9652 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->vendor_setup));
9653 ndr->flags = _flags_save_string;
9656 uint32_t _flags_save_string_array = ndr->flags;
9657 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9658 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->color_profiles));
9659 ndr->flags = _flags_save_string_array;
9662 uint32_t _flags_save_string = ndr->flags;
9663 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9664 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_path));
9665 ndr->flags = _flags_save_string;
9667 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
9669 uint32_t _flags_save_string_array = ndr->flags;
9670 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9671 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->core_driver_dependencies));
9672 ndr->flags = _flags_save_string_array;
9674 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
9675 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
9677 if (ndr_flags & NDR_BUFFERS) {
9679 uint32_t _flags_save_string = ndr->flags;
9680 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9681 if (r->driver_name) {
9682 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
9683 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
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->architecture) {
9691 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
9692 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
9694 ndr->flags = _flags_save_string;
9697 uint32_t _flags_save_string = ndr->flags;
9698 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9699 if (r->driver_path) {
9700 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
9701 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
9703 ndr->flags = _flags_save_string;
9706 uint32_t _flags_save_string = ndr->flags;
9707 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9709 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
9710 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_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);
9717 if (r->config_file) {
9718 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
9719 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_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);
9727 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
9728 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
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->monitor_name) {
9736 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
9737 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
9739 ndr->flags = _flags_save_string;
9742 uint32_t _flags_save_string = ndr->flags;
9743 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9744 if (r->default_datatype) {
9745 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
9746 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
9748 ndr->flags = _flags_save_string;
9751 uint32_t _flags_save_string_array = ndr->flags;
9752 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9753 if (r->dependent_files) {
9754 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
9755 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
9757 ndr->flags = _flags_save_string_array;
9760 uint32_t _flags_save_string_array = ndr->flags;
9761 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9762 if (r->previous_names) {
9763 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
9764 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
9766 ndr->flags = _flags_save_string_array;
9769 uint32_t _flags_save_string = ndr->flags;
9770 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9771 if (r->manufacturer_name) {
9772 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
9773 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
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->manufacturer_url) {
9781 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
9782 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
9784 ndr->flags = _flags_save_string;
9787 uint32_t _flags_save_string = ndr->flags;
9788 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9789 if (r->hardware_id) {
9790 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
9791 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
9793 ndr->flags = _flags_save_string;
9796 uint32_t _flags_save_string = ndr->flags;
9797 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9799 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
9800 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
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->print_processor) {
9808 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
9809 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
9811 ndr->flags = _flags_save_string;
9814 uint32_t _flags_save_string = ndr->flags;
9815 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9816 if (r->vendor_setup) {
9817 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->vendor_setup));
9818 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->vendor_setup));
9820 ndr->flags = _flags_save_string;
9823 uint32_t _flags_save_string_array = ndr->flags;
9824 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9825 if (r->color_profiles) {
9826 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->color_profiles));
9827 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->color_profiles));
9829 ndr->flags = _flags_save_string_array;
9832 uint32_t _flags_save_string = ndr->flags;
9833 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9835 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->inf_path));
9836 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_path));
9838 ndr->flags = _flags_save_string;
9841 uint32_t _flags_save_string_array = ndr->flags;
9842 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9843 if (r->core_driver_dependencies) {
9844 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->core_driver_dependencies));
9845 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->core_driver_dependencies));
9847 ndr->flags = _flags_save_string_array;
9850 return NDR_ERR_SUCCESS;
9853 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo8 *r)
9855 uint32_t _ptr_driver_name;
9856 TALLOC_CTX *_mem_save_driver_name_0;
9857 uint32_t _ptr_architecture;
9858 TALLOC_CTX *_mem_save_architecture_0;
9859 uint32_t _ptr_driver_path;
9860 TALLOC_CTX *_mem_save_driver_path_0;
9861 uint32_t _ptr_data_file;
9862 TALLOC_CTX *_mem_save_data_file_0;
9863 uint32_t _ptr_config_file;
9864 TALLOC_CTX *_mem_save_config_file_0;
9865 uint32_t _ptr_help_file;
9866 TALLOC_CTX *_mem_save_help_file_0;
9867 uint32_t _ptr_monitor_name;
9868 TALLOC_CTX *_mem_save_monitor_name_0;
9869 uint32_t _ptr_default_datatype;
9870 TALLOC_CTX *_mem_save_default_datatype_0;
9871 uint32_t _ptr_dependent_files;
9872 TALLOC_CTX *_mem_save_dependent_files_0;
9873 uint32_t _ptr_previous_names;
9874 TALLOC_CTX *_mem_save_previous_names_0;
9875 uint32_t _ptr_manufacturer_name;
9876 TALLOC_CTX *_mem_save_manufacturer_name_0;
9877 uint32_t _ptr_manufacturer_url;
9878 TALLOC_CTX *_mem_save_manufacturer_url_0;
9879 uint32_t _ptr_hardware_id;
9880 TALLOC_CTX *_mem_save_hardware_id_0;
9881 uint32_t _ptr_provider;
9882 TALLOC_CTX *_mem_save_provider_0;
9883 uint32_t _ptr_print_processor;
9884 TALLOC_CTX *_mem_save_print_processor_0;
9885 uint32_t _ptr_vendor_setup;
9886 TALLOC_CTX *_mem_save_vendor_setup_0;
9887 uint32_t _ptr_color_profiles;
9888 TALLOC_CTX *_mem_save_color_profiles_0;
9889 uint32_t _ptr_inf_path;
9890 TALLOC_CTX *_mem_save_inf_path_0;
9891 uint32_t _ptr_core_driver_dependencies;
9892 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
9893 if (ndr_flags & NDR_SCALARS) {
9894 NDR_CHECK(ndr_pull_align(ndr, 8));
9895 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9897 uint32_t _flags_save_string = ndr->flags;
9898 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9899 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9900 if (_ptr_driver_name) {
9901 NDR_PULL_ALLOC(ndr, r->driver_name);
9902 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
9904 r->driver_name = NULL;
9906 ndr->flags = _flags_save_string;
9909 uint32_t _flags_save_string = ndr->flags;
9910 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9911 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9912 if (_ptr_architecture) {
9913 NDR_PULL_ALLOC(ndr, r->architecture);
9914 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
9916 r->architecture = NULL;
9918 ndr->flags = _flags_save_string;
9921 uint32_t _flags_save_string = ndr->flags;
9922 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9923 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9924 if (_ptr_driver_path) {
9925 NDR_PULL_ALLOC(ndr, r->driver_path);
9926 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
9928 r->driver_path = NULL;
9930 ndr->flags = _flags_save_string;
9933 uint32_t _flags_save_string = ndr->flags;
9934 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9935 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9936 if (_ptr_data_file) {
9937 NDR_PULL_ALLOC(ndr, r->data_file);
9938 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
9940 r->data_file = NULL;
9942 ndr->flags = _flags_save_string;
9945 uint32_t _flags_save_string = ndr->flags;
9946 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9947 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9948 if (_ptr_config_file) {
9949 NDR_PULL_ALLOC(ndr, r->config_file);
9950 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
9952 r->config_file = NULL;
9954 ndr->flags = _flags_save_string;
9957 uint32_t _flags_save_string = ndr->flags;
9958 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9959 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9960 if (_ptr_help_file) {
9961 NDR_PULL_ALLOC(ndr, r->help_file);
9962 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
9964 r->help_file = NULL;
9966 ndr->flags = _flags_save_string;
9969 uint32_t _flags_save_string = ndr->flags;
9970 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9971 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9972 if (_ptr_monitor_name) {
9973 NDR_PULL_ALLOC(ndr, r->monitor_name);
9974 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
9976 r->monitor_name = NULL;
9978 ndr->flags = _flags_save_string;
9981 uint32_t _flags_save_string = ndr->flags;
9982 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9983 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9984 if (_ptr_default_datatype) {
9985 NDR_PULL_ALLOC(ndr, r->default_datatype);
9986 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
9988 r->default_datatype = NULL;
9990 ndr->flags = _flags_save_string;
9993 uint32_t _flags_save_string_array = ndr->flags;
9994 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9995 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9996 if (_ptr_dependent_files) {
9997 NDR_PULL_ALLOC(ndr, r->dependent_files);
9998 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
10000 r->dependent_files = NULL;
10002 ndr->flags = _flags_save_string_array;
10005 uint32_t _flags_save_string_array = ndr->flags;
10006 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10007 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
10008 if (_ptr_previous_names) {
10009 NDR_PULL_ALLOC(ndr, r->previous_names);
10010 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
10012 r->previous_names = NULL;
10014 ndr->flags = _flags_save_string_array;
10016 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
10017 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
10019 uint32_t _flags_save_string = ndr->flags;
10020 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10021 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
10022 if (_ptr_manufacturer_name) {
10023 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
10024 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
10026 r->manufacturer_name = NULL;
10028 ndr->flags = _flags_save_string;
10031 uint32_t _flags_save_string = ndr->flags;
10032 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10033 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
10034 if (_ptr_manufacturer_url) {
10035 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
10036 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
10038 r->manufacturer_url = NULL;
10040 ndr->flags = _flags_save_string;
10043 uint32_t _flags_save_string = ndr->flags;
10044 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10045 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
10046 if (_ptr_hardware_id) {
10047 NDR_PULL_ALLOC(ndr, r->hardware_id);
10048 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
10050 r->hardware_id = NULL;
10052 ndr->flags = _flags_save_string;
10055 uint32_t _flags_save_string = ndr->flags;
10056 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10057 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
10058 if (_ptr_provider) {
10059 NDR_PULL_ALLOC(ndr, r->provider);
10060 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
10062 r->provider = NULL;
10064 ndr->flags = _flags_save_string;
10067 uint32_t _flags_save_string = ndr->flags;
10068 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10069 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
10070 if (_ptr_print_processor) {
10071 NDR_PULL_ALLOC(ndr, r->print_processor);
10072 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
10074 r->print_processor = NULL;
10076 ndr->flags = _flags_save_string;
10079 uint32_t _flags_save_string = ndr->flags;
10080 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10081 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
10082 if (_ptr_vendor_setup) {
10083 NDR_PULL_ALLOC(ndr, r->vendor_setup);
10084 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->vendor_setup, _ptr_vendor_setup));
10086 r->vendor_setup = NULL;
10088 ndr->flags = _flags_save_string;
10091 uint32_t _flags_save_string_array = ndr->flags;
10092 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10093 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
10094 if (_ptr_color_profiles) {
10095 NDR_PULL_ALLOC(ndr, r->color_profiles);
10096 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->color_profiles, _ptr_color_profiles));
10098 r->color_profiles = NULL;
10100 ndr->flags = _flags_save_string_array;
10103 uint32_t _flags_save_string = ndr->flags;
10104 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10105 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
10106 if (_ptr_inf_path) {
10107 NDR_PULL_ALLOC(ndr, r->inf_path);
10108 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_path, _ptr_inf_path));
10110 r->inf_path = NULL;
10112 ndr->flags = _flags_save_string;
10114 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
10116 uint32_t _flags_save_string_array = ndr->flags;
10117 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10118 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
10119 if (_ptr_core_driver_dependencies) {
10120 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
10121 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->core_driver_dependencies, _ptr_core_driver_dependencies));
10123 r->core_driver_dependencies = NULL;
10125 ndr->flags = _flags_save_string_array;
10127 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
10128 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
10130 if (ndr_flags & NDR_BUFFERS) {
10132 uint32_t _flags_save_string = ndr->flags;
10133 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10134 if (r->driver_name) {
10135 uint32_t _relative_save_offset;
10136 _relative_save_offset = ndr->offset;
10137 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10138 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10139 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10140 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10141 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10142 ndr->offset = _relative_save_offset;
10144 ndr->flags = _flags_save_string;
10147 uint32_t _flags_save_string = ndr->flags;
10148 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10149 if (r->architecture) {
10150 uint32_t _relative_save_offset;
10151 _relative_save_offset = ndr->offset;
10152 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10153 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10154 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10155 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10156 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10157 ndr->offset = _relative_save_offset;
10159 ndr->flags = _flags_save_string;
10162 uint32_t _flags_save_string = ndr->flags;
10163 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10164 if (r->driver_path) {
10165 uint32_t _relative_save_offset;
10166 _relative_save_offset = ndr->offset;
10167 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
10168 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10169 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10170 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
10171 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10172 ndr->offset = _relative_save_offset;
10174 ndr->flags = _flags_save_string;
10177 uint32_t _flags_save_string = ndr->flags;
10178 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10179 if (r->data_file) {
10180 uint32_t _relative_save_offset;
10181 _relative_save_offset = ndr->offset;
10182 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
10183 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10184 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10185 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
10186 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10187 ndr->offset = _relative_save_offset;
10189 ndr->flags = _flags_save_string;
10192 uint32_t _flags_save_string = ndr->flags;
10193 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10194 if (r->config_file) {
10195 uint32_t _relative_save_offset;
10196 _relative_save_offset = ndr->offset;
10197 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
10198 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10199 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10200 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
10201 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10202 ndr->offset = _relative_save_offset;
10204 ndr->flags = _flags_save_string;
10207 uint32_t _flags_save_string = ndr->flags;
10208 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10209 if (r->help_file) {
10210 uint32_t _relative_save_offset;
10211 _relative_save_offset = ndr->offset;
10212 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
10213 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10214 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
10215 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
10216 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
10217 ndr->offset = _relative_save_offset;
10219 ndr->flags = _flags_save_string;
10222 uint32_t _flags_save_string = ndr->flags;
10223 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10224 if (r->monitor_name) {
10225 uint32_t _relative_save_offset;
10226 _relative_save_offset = ndr->offset;
10227 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
10228 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10229 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
10230 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
10231 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
10232 ndr->offset = _relative_save_offset;
10234 ndr->flags = _flags_save_string;
10237 uint32_t _flags_save_string = ndr->flags;
10238 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10239 if (r->default_datatype) {
10240 uint32_t _relative_save_offset;
10241 _relative_save_offset = ndr->offset;
10242 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
10243 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
10244 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
10245 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
10246 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
10247 ndr->offset = _relative_save_offset;
10249 ndr->flags = _flags_save_string;
10252 uint32_t _flags_save_string_array = ndr->flags;
10253 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10254 if (r->dependent_files) {
10255 uint32_t _relative_save_offset;
10256 _relative_save_offset = ndr->offset;
10257 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
10258 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
10259 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
10260 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
10261 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
10262 ndr->offset = _relative_save_offset;
10264 ndr->flags = _flags_save_string_array;
10267 uint32_t _flags_save_string_array = ndr->flags;
10268 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10269 if (r->previous_names) {
10270 uint32_t _relative_save_offset;
10271 _relative_save_offset = ndr->offset;
10272 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
10273 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
10274 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
10275 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
10276 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
10277 ndr->offset = _relative_save_offset;
10279 ndr->flags = _flags_save_string_array;
10282 uint32_t _flags_save_string = ndr->flags;
10283 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10284 if (r->manufacturer_name) {
10285 uint32_t _relative_save_offset;
10286 _relative_save_offset = ndr->offset;
10287 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
10288 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10289 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
10290 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
10291 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
10292 ndr->offset = _relative_save_offset;
10294 ndr->flags = _flags_save_string;
10297 uint32_t _flags_save_string = ndr->flags;
10298 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10299 if (r->manufacturer_url) {
10300 uint32_t _relative_save_offset;
10301 _relative_save_offset = ndr->offset;
10302 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
10303 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
10304 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
10305 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
10306 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
10307 ndr->offset = _relative_save_offset;
10309 ndr->flags = _flags_save_string;
10312 uint32_t _flags_save_string = ndr->flags;
10313 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10314 if (r->hardware_id) {
10315 uint32_t _relative_save_offset;
10316 _relative_save_offset = ndr->offset;
10317 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
10318 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
10319 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
10320 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
10321 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
10322 ndr->offset = _relative_save_offset;
10324 ndr->flags = _flags_save_string;
10327 uint32_t _flags_save_string = ndr->flags;
10328 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10330 uint32_t _relative_save_offset;
10331 _relative_save_offset = ndr->offset;
10332 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
10333 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
10334 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
10335 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
10336 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
10337 ndr->offset = _relative_save_offset;
10339 ndr->flags = _flags_save_string;
10342 uint32_t _flags_save_string = ndr->flags;
10343 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10344 if (r->print_processor) {
10345 uint32_t _relative_save_offset;
10346 _relative_save_offset = ndr->offset;
10347 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
10348 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
10349 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
10350 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
10351 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
10352 ndr->offset = _relative_save_offset;
10354 ndr->flags = _flags_save_string;
10357 uint32_t _flags_save_string = ndr->flags;
10358 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10359 if (r->vendor_setup) {
10360 uint32_t _relative_save_offset;
10361 _relative_save_offset = ndr->offset;
10362 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->vendor_setup));
10363 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
10364 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
10365 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->vendor_setup));
10366 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
10367 ndr->offset = _relative_save_offset;
10369 ndr->flags = _flags_save_string;
10372 uint32_t _flags_save_string_array = ndr->flags;
10373 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10374 if (r->color_profiles) {
10375 uint32_t _relative_save_offset;
10376 _relative_save_offset = ndr->offset;
10377 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->color_profiles));
10378 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
10379 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
10380 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->color_profiles));
10381 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
10382 ndr->offset = _relative_save_offset;
10384 ndr->flags = _flags_save_string_array;
10387 uint32_t _flags_save_string = ndr->flags;
10388 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10390 uint32_t _relative_save_offset;
10391 _relative_save_offset = ndr->offset;
10392 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_path));
10393 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10394 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
10395 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_path));
10396 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
10397 ndr->offset = _relative_save_offset;
10399 ndr->flags = _flags_save_string;
10402 uint32_t _flags_save_string_array = ndr->flags;
10403 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10404 if (r->core_driver_dependencies) {
10405 uint32_t _relative_save_offset;
10406 _relative_save_offset = ndr->offset;
10407 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->core_driver_dependencies));
10408 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
10409 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
10410 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->core_driver_dependencies));
10411 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
10412 ndr->offset = _relative_save_offset;
10414 ndr->flags = _flags_save_string_array;
10417 return NDR_ERR_SUCCESS;
10420 _PUBLIC_ void ndr_print_spoolss_DriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo8 *r)
10422 ndr_print_struct(ndr, name, "spoolss_DriverInfo8");
10424 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10425 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10427 if (r->driver_name) {
10428 ndr_print_string(ndr, "driver_name", r->driver_name);
10431 ndr_print_ptr(ndr, "architecture", r->architecture);
10433 if (r->architecture) {
10434 ndr_print_string(ndr, "architecture", r->architecture);
10437 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10439 if (r->driver_path) {
10440 ndr_print_string(ndr, "driver_path", r->driver_path);
10443 ndr_print_ptr(ndr, "data_file", r->data_file);
10445 if (r->data_file) {
10446 ndr_print_string(ndr, "data_file", r->data_file);
10449 ndr_print_ptr(ndr, "config_file", r->config_file);
10451 if (r->config_file) {
10452 ndr_print_string(ndr, "config_file", r->config_file);
10455 ndr_print_ptr(ndr, "help_file", r->help_file);
10457 if (r->help_file) {
10458 ndr_print_string(ndr, "help_file", r->help_file);
10461 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
10463 if (r->monitor_name) {
10464 ndr_print_string(ndr, "monitor_name", r->monitor_name);
10467 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
10469 if (r->default_datatype) {
10470 ndr_print_string(ndr, "default_datatype", r->default_datatype);
10473 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
10475 if (r->dependent_files) {
10476 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
10479 ndr_print_ptr(ndr, "previous_names", r->previous_names);
10481 if (r->previous_names) {
10482 ndr_print_string_array(ndr, "previous_names", r->previous_names);
10485 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
10486 ndr_print_hyper(ndr, "driver_version", r->driver_version);
10487 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
10489 if (r->manufacturer_name) {
10490 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
10493 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
10495 if (r->manufacturer_url) {
10496 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
10499 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
10501 if (r->hardware_id) {
10502 ndr_print_string(ndr, "hardware_id", r->hardware_id);
10505 ndr_print_ptr(ndr, "provider", r->provider);
10508 ndr_print_string(ndr, "provider", r->provider);
10511 ndr_print_ptr(ndr, "print_processor", r->print_processor);
10513 if (r->print_processor) {
10514 ndr_print_string(ndr, "print_processor", r->print_processor);
10517 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
10519 if (r->vendor_setup) {
10520 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
10523 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
10525 if (r->color_profiles) {
10526 ndr_print_string_array(ndr, "color_profiles", r->color_profiles);
10529 ndr_print_ptr(ndr, "inf_path", r->inf_path);
10532 ndr_print_string(ndr, "inf_path", r->inf_path);
10535 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
10536 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10538 if (r->core_driver_dependencies) {
10539 ndr_print_string_array(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10542 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
10543 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
10547 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8 *r, struct smb_iconv_convenience *ic, int flags)
10549 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo8, ic);
10552 static enum ndr_err_code ndr_push_spoolss_DriverFileType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverFileType r)
10554 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
10555 return NDR_ERR_SUCCESS;
10558 static enum ndr_err_code ndr_pull_spoolss_DriverFileType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverFileType *r)
10561 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
10563 return NDR_ERR_SUCCESS;
10566 _PUBLIC_ void ndr_print_spoolss_DriverFileType(struct ndr_print *ndr, const char *name, enum spoolss_DriverFileType r)
10568 const char *val = NULL;
10571 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING: val = "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
10572 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION: val = "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
10573 case SPOOLSS_DRIVER_FILE_TYPE_DATA: val = "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
10574 case SPOOLSS_DRIVER_FILE_TYPE_HELP: val = "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
10575 case SPOOLSS_DRIVER_FILE_TYPE_OTHER: val = "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
10577 ndr_print_enum(ndr, name, "ENUM", val, r);
10580 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverFileInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverFileInfo *r)
10582 if (ndr_flags & NDR_SCALARS) {
10583 NDR_CHECK(ndr_push_align(ndr, 4));
10585 uint32_t _flags_save_string = ndr->flags;
10586 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10587 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->file_name));
10588 ndr->flags = _flags_save_string;
10590 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr, NDR_SCALARS, r->file_type));
10591 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->file_version));
10593 if (ndr_flags & NDR_BUFFERS) {
10595 uint32_t _flags_save_string = ndr->flags;
10596 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10597 if (r->file_name) {
10598 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->file_name));
10599 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->file_name));
10601 ndr->flags = _flags_save_string;
10604 return NDR_ERR_SUCCESS;
10607 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverFileInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverFileInfo *r)
10609 uint32_t _ptr_file_name;
10610 TALLOC_CTX *_mem_save_file_name_0;
10611 if (ndr_flags & NDR_SCALARS) {
10612 NDR_CHECK(ndr_pull_align(ndr, 4));
10614 uint32_t _flags_save_string = ndr->flags;
10615 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10616 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_file_name));
10617 if (_ptr_file_name) {
10618 NDR_PULL_ALLOC(ndr, r->file_name);
10619 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->file_name, _ptr_file_name));
10621 r->file_name = NULL;
10623 ndr->flags = _flags_save_string;
10625 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr, NDR_SCALARS, &r->file_type));
10626 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->file_version));
10628 if (ndr_flags & NDR_BUFFERS) {
10630 uint32_t _flags_save_string = ndr->flags;
10631 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10632 if (r->file_name) {
10633 uint32_t _relative_save_offset;
10634 _relative_save_offset = ndr->offset;
10635 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->file_name));
10636 _mem_save_file_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10637 NDR_PULL_SET_MEM_CTX(ndr, r->file_name, 0);
10638 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->file_name));
10639 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_file_name_0, 0);
10640 ndr->offset = _relative_save_offset;
10642 ndr->flags = _flags_save_string;
10645 return NDR_ERR_SUCCESS;
10648 _PUBLIC_ void ndr_print_spoolss_DriverFileInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DriverFileInfo *r)
10650 ndr_print_struct(ndr, name, "spoolss_DriverFileInfo");
10652 ndr_print_ptr(ndr, "file_name", r->file_name);
10654 if (r->file_name) {
10655 ndr_print_string(ndr, "file_name", r->file_name);
10658 ndr_print_spoolss_DriverFileType(ndr, "file_type", r->file_type);
10659 ndr_print_uint32(ndr, "file_version", r->file_version);
10663 _PUBLIC_ void ndr_print_spoolss_DriverInfo101(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo101 *r)
10665 uint32_t cntr_file_info_1;
10666 ndr_print_struct(ndr, name, "spoolss_DriverInfo101");
10668 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10669 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10671 if (r->driver_name) {
10672 ndr_print_string(ndr, "driver_name", r->driver_name);
10675 ndr_print_ptr(ndr, "architecture", r->architecture);
10677 if (r->architecture) {
10678 ndr_print_string(ndr, "architecture", r->architecture);
10681 ndr_print_ptr(ndr, "file_info", r->file_info);
10683 if (r->file_info) {
10684 ndr->print(ndr, "%s: ARRAY(%d)", "file_info", (int)r->file_count);
10686 for (cntr_file_info_1=0;cntr_file_info_1<r->file_count;cntr_file_info_1++) {
10688 if (asprintf(&idx_1, "[%d]", cntr_file_info_1) != -1) {
10689 ndr_print_spoolss_DriverFileInfo(ndr, "file_info", &r->file_info[cntr_file_info_1]);
10696 ndr_print_uint32(ndr, "file_count", r->file_count);
10697 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
10699 if (r->monitor_name) {
10700 ndr_print_string(ndr, "monitor_name", r->monitor_name);
10703 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
10705 if (r->default_datatype) {
10706 ndr_print_string(ndr, "default_datatype", r->default_datatype);
10709 ndr_print_ptr(ndr, "previous_names", r->previous_names);
10711 if (r->previous_names) {
10712 ndr_print_string_array(ndr, "previous_names", r->previous_names);
10715 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
10716 ndr_print_hyper(ndr, "driver_version", r->driver_version);
10717 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
10719 if (r->manufacturer_name) {
10720 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
10723 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
10725 if (r->manufacturer_url) {
10726 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
10729 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
10731 if (r->hardware_id) {
10732 ndr_print_string(ndr, "hardware_id", r->hardware_id);
10735 ndr_print_ptr(ndr, "provider", r->provider);
10738 ndr_print_string(ndr, "provider", r->provider);
10744 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101 *r, struct smb_iconv_convenience *ic, int flags)
10746 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo101, ic);
10749 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverInfo *r)
10751 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
10752 if (ndr_flags & NDR_SCALARS) {
10753 int level = ndr_push_get_switch_value(ndr, r);
10756 NDR_CHECK(ndr_push_align(ndr, 4));
10757 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10758 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
10762 NDR_CHECK(ndr_push_align(ndr, 4));
10763 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10764 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
10768 NDR_CHECK(ndr_push_align(ndr, 4));
10769 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10770 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
10774 NDR_CHECK(ndr_push_align(ndr, 4));
10775 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10776 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
10780 NDR_CHECK(ndr_push_align(ndr, 4));
10781 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10782 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
10786 NDR_CHECK(ndr_push_align(ndr, 8));
10787 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10788 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
10792 NDR_CHECK(ndr_push_align(ndr, 8));
10793 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10794 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
10798 NDR_CHECK(ndr_push_align(ndr, 8));
10799 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10800 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
10808 if (ndr_flags & NDR_BUFFERS) {
10809 int level = ndr_push_get_switch_value(ndr, r);
10810 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
10813 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
10817 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
10821 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
10825 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
10829 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
10833 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
10837 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
10841 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
10849 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
10850 return NDR_ERR_SUCCESS;
10853 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverInfo *r)
10855 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
10857 level = ndr_pull_get_switch_value(ndr, r);
10858 if (ndr_flags & NDR_SCALARS) {
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_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
10867 NDR_CHECK(ndr_pull_align(ndr, 4));
10868 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10869 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
10873 NDR_CHECK(ndr_pull_align(ndr, 4));
10874 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10875 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
10879 NDR_CHECK(ndr_pull_align(ndr, 4));
10880 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10881 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
10885 NDR_CHECK(ndr_pull_align(ndr, 4));
10886 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10887 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
10891 NDR_CHECK(ndr_pull_align(ndr, 8));
10892 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10893 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
10897 NDR_CHECK(ndr_pull_align(ndr, 8));
10898 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10899 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
10903 NDR_CHECK(ndr_pull_align(ndr, 8));
10904 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10905 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
10913 if (ndr_flags & NDR_BUFFERS) {
10914 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
10917 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
10921 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
10925 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
10929 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
10933 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
10937 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
10941 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
10945 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
10953 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
10954 return NDR_ERR_SUCCESS;
10957 _PUBLIC_ void ndr_print_spoolss_DriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverInfo *r)
10960 level = ndr_print_get_switch_value(ndr, r);
10961 ndr_print_union(ndr, name, level, "spoolss_DriverInfo");
10964 ndr_print_spoolss_DriverInfo1(ndr, "info1", &r->info1);
10968 ndr_print_spoolss_DriverInfo2(ndr, "info2", &r->info2);
10972 ndr_print_spoolss_DriverInfo3(ndr, "info3", &r->info3);
10976 ndr_print_spoolss_DriverInfo4(ndr, "info4", &r->info4);
10980 ndr_print_spoolss_DriverInfo5(ndr, "info5", &r->info5);
10984 ndr_print_spoolss_DriverInfo6(ndr, "info6", &r->info6);
10988 ndr_print_spoolss_DriverInfo8(ndr, "info8", &r->info8);
10992 ndr_print_spoolss_DriverInfo101(ndr, "info101", &r->info101);
11001 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverDirectoryInfo1 *r)
11003 if (ndr_flags & NDR_SCALARS) {
11004 NDR_CHECK(ndr_push_align(ndr, 4));
11006 uint32_t _flags_save_string = ndr->flags;
11007 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11008 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
11009 ndr->flags = _flags_save_string;
11012 if (ndr_flags & NDR_BUFFERS) {
11014 return NDR_ERR_SUCCESS;
11017 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverDirectoryInfo1 *r)
11019 if (ndr_flags & NDR_SCALARS) {
11020 NDR_CHECK(ndr_pull_align(ndr, 4));
11022 uint32_t _flags_save_string = ndr->flags;
11023 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11024 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
11025 ndr->flags = _flags_save_string;
11028 if (ndr_flags & NDR_BUFFERS) {
11030 return NDR_ERR_SUCCESS;
11033 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverDirectoryInfo1 *r)
11035 ndr_print_struct(ndr, name, "spoolss_DriverDirectoryInfo1");
11037 ndr_print_string(ndr, "directory_name", r->directory_name);
11041 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
11043 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo1, ic);
11046 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverDirectoryInfo *r)
11048 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
11049 if (ndr_flags & NDR_SCALARS) {
11050 int level = ndr_push_get_switch_value(ndr, r);
11053 NDR_CHECK(ndr_push_align(ndr, 4));
11054 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
11055 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
11059 NDR_CHECK(ndr_push_align(ndr, 4));
11060 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
11061 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
11066 if (ndr_flags & NDR_BUFFERS) {
11067 int level = ndr_push_get_switch_value(ndr, r);
11068 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
11078 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
11079 return NDR_ERR_SUCCESS;
11082 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverDirectoryInfo *r)
11084 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
11086 level = ndr_pull_get_switch_value(ndr, r);
11087 if (ndr_flags & NDR_SCALARS) {
11090 NDR_CHECK(ndr_pull_align(ndr, 4));
11091 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
11092 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
11096 NDR_CHECK(ndr_pull_align(ndr, 4));
11097 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
11098 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
11103 if (ndr_flags & NDR_BUFFERS) {
11104 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
11114 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
11115 return NDR_ERR_SUCCESS;
11118 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverDirectoryInfo *r)
11121 level = ndr_print_get_switch_value(ndr, r);
11122 ndr_print_union(ndr, name, level, "spoolss_DriverDirectoryInfo");
11125 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
11129 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
11135 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
11137 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo, ic);
11140 static enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorInfo1 *r)
11142 if (ndr_flags & NDR_SCALARS) {
11143 NDR_CHECK(ndr_push_align(ndr, 4));
11145 uint32_t _flags_save_string = ndr->flags;
11146 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11147 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor_name));
11148 ndr->flags = _flags_save_string;
11151 if (ndr_flags & NDR_BUFFERS) {
11153 uint32_t _flags_save_string = ndr->flags;
11154 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11155 if (r->print_processor_name) {
11156 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor_name));
11157 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor_name));
11159 ndr->flags = _flags_save_string;
11162 return NDR_ERR_SUCCESS;
11165 static enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorInfo1 *r)
11167 uint32_t _ptr_print_processor_name;
11168 TALLOC_CTX *_mem_save_print_processor_name_0;
11169 if (ndr_flags & NDR_SCALARS) {
11170 NDR_CHECK(ndr_pull_align(ndr, 4));
11172 uint32_t _flags_save_string = ndr->flags;
11173 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11174 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
11175 if (_ptr_print_processor_name) {
11176 NDR_PULL_ALLOC(ndr, r->print_processor_name);
11177 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor_name, _ptr_print_processor_name));
11179 r->print_processor_name = NULL;
11181 ndr->flags = _flags_save_string;
11184 if (ndr_flags & NDR_BUFFERS) {
11186 uint32_t _flags_save_string = ndr->flags;
11187 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11188 if (r->print_processor_name) {
11189 uint32_t _relative_save_offset;
11190 _relative_save_offset = ndr->offset;
11191 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor_name));
11192 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11193 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor_name, 0);
11194 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor_name));
11195 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
11196 ndr->offset = _relative_save_offset;
11198 ndr->flags = _flags_save_string;
11201 return NDR_ERR_SUCCESS;
11204 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorInfo1 *r)
11206 ndr_print_struct(ndr, name, "spoolss_PrintProcessorInfo1");
11208 ndr_print_ptr(ndr, "print_processor_name", r->print_processor_name);
11210 if (r->print_processor_name) {
11211 ndr_print_string(ndr, "print_processor_name", r->print_processor_name);
11217 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorInfo *r)
11219 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
11220 if (ndr_flags & NDR_SCALARS) {
11221 int level = ndr_push_get_switch_value(ndr, r);
11224 NDR_CHECK(ndr_push_align(ndr, 4));
11225 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
11226 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
11234 if (ndr_flags & NDR_BUFFERS) {
11235 int level = ndr_push_get_switch_value(ndr, r);
11236 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
11239 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
11247 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
11248 return NDR_ERR_SUCCESS;
11251 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorInfo *r)
11253 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
11255 level = ndr_pull_get_switch_value(ndr, r);
11256 if (ndr_flags & NDR_SCALARS) {
11259 NDR_CHECK(ndr_pull_align(ndr, 4));
11260 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
11261 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
11269 if (ndr_flags & NDR_BUFFERS) {
11270 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
11273 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
11281 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
11282 return NDR_ERR_SUCCESS;
11285 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorInfo *r)
11288 level = ndr_print_get_switch_value(ndr, r);
11289 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorInfo");
11292 ndr_print_spoolss_PrintProcessorInfo1(ndr, "info1", &r->info1);
11301 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
11303 if (ndr_flags & NDR_SCALARS) {
11304 NDR_CHECK(ndr_push_align(ndr, 4));
11306 uint32_t _flags_save_string = ndr->flags;
11307 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11308 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
11309 ndr->flags = _flags_save_string;
11312 if (ndr_flags & NDR_BUFFERS) {
11314 return NDR_ERR_SUCCESS;
11317 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorDirectoryInfo1 *r)
11319 if (ndr_flags & NDR_SCALARS) {
11320 NDR_CHECK(ndr_pull_align(ndr, 4));
11322 uint32_t _flags_save_string = ndr->flags;
11323 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11324 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
11325 ndr->flags = _flags_save_string;
11328 if (ndr_flags & NDR_BUFFERS) {
11330 return NDR_ERR_SUCCESS;
11333 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
11335 ndr_print_struct(ndr, name, "spoolss_PrintProcessorDirectoryInfo1");
11337 ndr_print_string(ndr, "directory_name", r->directory_name);
11341 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
11343 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo1, ic);
11346 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorDirectoryInfo *r)
11348 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
11349 if (ndr_flags & NDR_SCALARS) {
11350 int level = ndr_push_get_switch_value(ndr, r);
11353 NDR_CHECK(ndr_push_align(ndr, 4));
11354 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
11355 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
11363 if (ndr_flags & NDR_BUFFERS) {
11364 int level = ndr_push_get_switch_value(ndr, r);
11365 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
11375 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
11376 return NDR_ERR_SUCCESS;
11379 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorDirectoryInfo *r)
11381 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
11383 level = ndr_pull_get_switch_value(ndr, r);
11384 if (ndr_flags & NDR_SCALARS) {
11387 NDR_CHECK(ndr_pull_align(ndr, 4));
11388 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
11389 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
11397 if (ndr_flags & NDR_BUFFERS) {
11398 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
11408 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
11409 return NDR_ERR_SUCCESS;
11412 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorDirectoryInfo *r)
11415 level = ndr_print_get_switch_value(ndr, r);
11416 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorDirectoryInfo");
11419 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
11428 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
11430 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo, ic);
11433 static enum ndr_err_code ndr_push_spoolss_DocumentInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DocumentInfo1 *r)
11435 if (ndr_flags & NDR_SCALARS) {
11436 NDR_CHECK(ndr_push_align(ndr, 4));
11437 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
11438 NDR_CHECK(ndr_push_unique_ptr(ndr, r->output_file));
11439 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
11441 if (ndr_flags & NDR_BUFFERS) {
11442 if (r->document_name) {
11443 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
11444 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11445 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
11446 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11448 if (r->output_file) {
11449 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
11450 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11451 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
11452 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->output_file, ndr_charset_length(r->output_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11455 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
11456 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11457 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
11458 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11461 return NDR_ERR_SUCCESS;
11464 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DocumentInfo1 *r)
11466 uint32_t _ptr_document_name;
11467 TALLOC_CTX *_mem_save_document_name_0;
11468 uint32_t _ptr_output_file;
11469 TALLOC_CTX *_mem_save_output_file_0;
11470 uint32_t _ptr_datatype;
11471 TALLOC_CTX *_mem_save_datatype_0;
11472 if (ndr_flags & NDR_SCALARS) {
11473 NDR_CHECK(ndr_pull_align(ndr, 4));
11474 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
11475 if (_ptr_document_name) {
11476 NDR_PULL_ALLOC(ndr, r->document_name);
11478 r->document_name = NULL;
11480 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_output_file));
11481 if (_ptr_output_file) {
11482 NDR_PULL_ALLOC(ndr, r->output_file);
11484 r->output_file = NULL;
11486 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
11487 if (_ptr_datatype) {
11488 NDR_PULL_ALLOC(ndr, r->datatype);
11490 r->datatype = NULL;
11493 if (ndr_flags & NDR_BUFFERS) {
11494 if (r->document_name) {
11495 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11496 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
11497 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
11498 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
11499 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
11500 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));
11502 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
11503 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
11504 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
11506 if (r->output_file) {
11507 _mem_save_output_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11508 NDR_PULL_SET_MEM_CTX(ndr, r->output_file, 0);
11509 NDR_CHECK(ndr_pull_array_size(ndr, &r->output_file));
11510 NDR_CHECK(ndr_pull_array_length(ndr, &r->output_file));
11511 if (ndr_get_array_length(ndr, &r->output_file) > ndr_get_array_size(ndr, &r->output_file)) {
11512 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));
11514 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t)));
11515 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->output_file, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t), CH_UTF16));
11516 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_output_file_0, 0);
11519 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11520 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
11521 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
11522 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
11523 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
11524 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));
11526 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
11527 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
11528 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
11531 return NDR_ERR_SUCCESS;
11534 _PUBLIC_ void ndr_print_spoolss_DocumentInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DocumentInfo1 *r)
11536 ndr_print_struct(ndr, name, "spoolss_DocumentInfo1");
11538 ndr_print_ptr(ndr, "document_name", r->document_name);
11540 if (r->document_name) {
11541 ndr_print_string(ndr, "document_name", r->document_name);
11544 ndr_print_ptr(ndr, "output_file", r->output_file);
11546 if (r->output_file) {
11547 ndr_print_string(ndr, "output_file", r->output_file);
11550 ndr_print_ptr(ndr, "datatype", r->datatype);
11553 ndr_print_string(ndr, "datatype", r->datatype);
11559 static enum ndr_err_code ndr_push_spoolss_DocumentInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DocumentInfo *r)
11561 if (ndr_flags & NDR_SCALARS) {
11562 int level = ndr_push_get_switch_value(ndr, r);
11563 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
11566 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
11580 if (ndr_flags & NDR_BUFFERS) {
11581 int level = ndr_push_get_switch_value(ndr, r);
11585 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
11600 return NDR_ERR_SUCCESS;
11603 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DocumentInfo *r)
11607 TALLOC_CTX *_mem_save_info1_0;
11608 level = ndr_pull_get_switch_value(ndr, r);
11609 if (ndr_flags & NDR_SCALARS) {
11610 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
11611 if (_level != level) {
11612 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
11616 uint32_t _ptr_info1;
11617 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
11619 NDR_PULL_ALLOC(ndr, r->info1);
11636 if (ndr_flags & NDR_BUFFERS) {
11640 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
11641 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
11642 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
11643 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
11658 return NDR_ERR_SUCCESS;
11661 _PUBLIC_ void ndr_print_spoolss_DocumentInfo(struct ndr_print *ndr, const char *name, const union spoolss_DocumentInfo *r)
11664 level = ndr_print_get_switch_value(ndr, r);
11665 ndr_print_union(ndr, name, level, "spoolss_DocumentInfo");
11668 ndr_print_ptr(ndr, "info1", r->info1);
11671 ndr_print_spoolss_DocumentInfo1(ndr, "info1", r->info1);
11688 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersion(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersion *r)
11690 if (ndr_flags & NDR_SCALARS) {
11691 NDR_CHECK(ndr_push_align(ndr, 4));
11692 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersion(r, ndr->iconv_convenience, ndr->flags)));
11693 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
11694 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
11695 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
11696 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
11698 uint32_t _flags_save_string = ndr->flags;
11699 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11701 struct ndr_push *_ndr_extra_string;
11702 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
11703 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
11704 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
11706 ndr->flags = _flags_save_string;
11709 if (ndr_flags & NDR_BUFFERS) {
11711 return NDR_ERR_SUCCESS;
11714 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersion(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersion *r)
11716 if (ndr_flags & NDR_SCALARS) {
11717 NDR_CHECK(ndr_pull_align(ndr, 4));
11718 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
11719 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
11720 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
11721 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
11722 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
11724 uint32_t _flags_save_string = ndr->flags;
11725 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11727 struct ndr_pull *_ndr_extra_string;
11728 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
11729 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
11730 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
11732 ndr->flags = _flags_save_string;
11735 if (ndr_flags & NDR_BUFFERS) {
11737 return NDR_ERR_SUCCESS;
11740 _PUBLIC_ void ndr_print_spoolss_OSVersion(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersion *r)
11742 ndr_print_struct(ndr, name, "spoolss_OSVersion");
11744 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);
11745 ndr_print_uint32(ndr, "major", r->major);
11746 ndr_print_uint32(ndr, "minor", r->minor);
11747 ndr_print_uint32(ndr, "build", r->build);
11748 ndr_print_uint32(ndr, "unknown", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown);
11749 ndr_print_string(ndr, "extra_string", r->extra_string);
11753 _PUBLIC_ size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion *r, struct smb_iconv_convenience *ic, int flags)
11755 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion, ic);
11758 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersionEx(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersionEx *r)
11760 if (ndr_flags & NDR_SCALARS) {
11761 NDR_CHECK(ndr_push_align(ndr, 4));
11762 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersionEx(r, ndr->iconv_convenience, ndr->flags)));
11763 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
11764 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
11765 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
11766 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
11768 uint32_t _flags_save_string = ndr->flags;
11769 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11771 struct ndr_push *_ndr_extra_string;
11772 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
11773 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
11774 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
11776 ndr->flags = _flags_save_string;
11778 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
11779 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
11781 if (ndr_flags & NDR_BUFFERS) {
11783 return NDR_ERR_SUCCESS;
11786 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersionEx(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersionEx *r)
11788 if (ndr_flags & NDR_SCALARS) {
11789 NDR_CHECK(ndr_pull_align(ndr, 4));
11790 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
11791 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
11792 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
11793 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
11794 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
11796 uint32_t _flags_save_string = ndr->flags;
11797 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11799 struct ndr_pull *_ndr_extra_string;
11800 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
11801 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
11802 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
11804 ndr->flags = _flags_save_string;
11806 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
11807 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
11809 if (ndr_flags & NDR_BUFFERS) {
11811 return NDR_ERR_SUCCESS;
11814 _PUBLIC_ void ndr_print_spoolss_OSVersionEx(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersionEx *r)
11816 ndr_print_struct(ndr, name, "spoolss_OSVersionEx");
11818 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);
11819 ndr_print_uint32(ndr, "major", r->major);
11820 ndr_print_uint32(ndr, "minor", r->minor);
11821 ndr_print_uint32(ndr, "build", r->build);
11822 ndr_print_uint32(ndr, "unknown1", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown1);
11823 ndr_print_string(ndr, "extra_string", r->extra_string);
11824 ndr_print_uint32(ndr, "unknown2", r->unknown2);
11825 ndr_print_uint32(ndr, "unknown3", r->unknown3);
11829 _PUBLIC_ size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx *r, struct smb_iconv_convenience *ic, int flags)
11831 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx, ic);
11834 static enum ndr_err_code ndr_push_spoolss_PrinterDataType(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterDataType r)
11836 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
11837 return NDR_ERR_SUCCESS;
11840 static enum ndr_err_code ndr_pull_spoolss_PrinterDataType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterDataType *r)
11843 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
11845 return NDR_ERR_SUCCESS;
11848 _PUBLIC_ void ndr_print_spoolss_PrinterDataType(struct ndr_print *ndr, const char *name, enum spoolss_PrinterDataType r)
11850 const char *val = NULL;
11853 case SPOOLSS_PRINTER_DATA_TYPE_NULL: val = "SPOOLSS_PRINTER_DATA_TYPE_NULL"; break;
11854 case SPOOLSS_PRINTER_DATA_TYPE_STRING: val = "SPOOLSS_PRINTER_DATA_TYPE_STRING"; break;
11855 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: val = "SPOOLSS_PRINTER_DATA_TYPE_BINARY"; break;
11856 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: val = "SPOOLSS_PRINTER_DATA_TYPE_UINT32"; break;
11857 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: val = "SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY"; break;
11859 ndr_print_enum(ndr, name, "ENUM", val, r);
11862 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterData *r)
11864 if (ndr_flags & NDR_SCALARS) {
11865 int level = ndr_push_get_switch_value(ndr, r);
11867 case SPOOLSS_PRINTER_DATA_TYPE_NULL: {
11870 case SPOOLSS_PRINTER_DATA_TYPE_STRING: {
11872 uint32_t _flags_save_string = ndr->flags;
11873 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11874 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
11875 ndr->flags = _flags_save_string;
11879 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: {
11881 uint32_t _flags_save_DATA_BLOB = ndr->flags;
11882 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
11883 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
11884 ndr->flags = _flags_save_DATA_BLOB;
11888 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: {
11889 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
11892 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: {
11894 uint32_t _flags_save_string_array = ndr->flags;
11895 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11896 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
11897 ndr->flags = _flags_save_string_array;
11903 uint32_t _flags_save_DATA_BLOB = ndr->flags;
11904 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
11905 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
11906 ndr->flags = _flags_save_DATA_BLOB;
11912 if (ndr_flags & NDR_BUFFERS) {
11913 int level = ndr_push_get_switch_value(ndr, r);
11915 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
11918 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
11921 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
11924 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
11927 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
11935 return NDR_ERR_SUCCESS;
11938 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterData *r)
11941 level = ndr_pull_get_switch_value(ndr, r);
11942 if (ndr_flags & NDR_SCALARS) {
11944 case SPOOLSS_PRINTER_DATA_TYPE_NULL: {
11947 case SPOOLSS_PRINTER_DATA_TYPE_STRING: {
11949 uint32_t _flags_save_string = ndr->flags;
11950 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11951 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
11952 ndr->flags = _flags_save_string;
11956 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: {
11958 uint32_t _flags_save_DATA_BLOB = ndr->flags;
11959 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
11960 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
11961 ndr->flags = _flags_save_DATA_BLOB;
11965 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: {
11966 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
11969 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: {
11971 uint32_t _flags_save_string_array = ndr->flags;
11972 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11973 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
11974 ndr->flags = _flags_save_string_array;
11980 uint32_t _flags_save_DATA_BLOB = ndr->flags;
11981 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
11982 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
11983 ndr->flags = _flags_save_DATA_BLOB;
11989 if (ndr_flags & NDR_BUFFERS) {
11991 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
11994 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
11997 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
12000 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
12003 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
12011 return NDR_ERR_SUCCESS;
12014 _PUBLIC_ void ndr_print_spoolss_PrinterData(struct ndr_print *ndr, const char *name, const union spoolss_PrinterData *r)
12017 level = ndr_print_get_switch_value(ndr, r);
12018 ndr_print_union(ndr, name, level, "spoolss_PrinterData");
12020 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
12023 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
12024 ndr_print_string(ndr, "string", r->string);
12027 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
12028 ndr_print_DATA_BLOB(ndr, "binary", r->binary);
12031 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
12032 ndr_print_uint32(ndr, "value", r->value);
12035 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
12036 ndr_print_string_array(ndr, "string_array", r->string_array);
12040 ndr_print_DATA_BLOB(ndr, "data", r->data);
12046 _PUBLIC_ size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
12048 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterData, ic);
12051 static enum ndr_err_code ndr_push_spoolss_FormFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_FormFlags r)
12053 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
12054 return NDR_ERR_SUCCESS;
12057 static enum ndr_err_code ndr_pull_spoolss_FormFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_FormFlags *r)
12060 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
12062 return NDR_ERR_SUCCESS;
12065 _PUBLIC_ void ndr_print_spoolss_FormFlags(struct ndr_print *ndr, const char *name, enum spoolss_FormFlags r)
12067 const char *val = NULL;
12070 case SPOOLSS_FORM_USER: val = "SPOOLSS_FORM_USER"; break;
12071 case SPOOLSS_FORM_BUILTIN: val = "SPOOLSS_FORM_BUILTIN"; break;
12072 case SPOOLSS_FORM_PRINTER: val = "SPOOLSS_FORM_PRINTER"; break;
12074 ndr_print_enum(ndr, name, "ENUM", val, r);
12077 static enum ndr_err_code ndr_push_spoolss_FormSize(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormSize *r)
12079 if (ndr_flags & NDR_SCALARS) {
12080 NDR_CHECK(ndr_push_align(ndr, 4));
12081 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->width));
12082 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->height));
12084 if (ndr_flags & NDR_BUFFERS) {
12086 return NDR_ERR_SUCCESS;
12089 static enum ndr_err_code ndr_pull_spoolss_FormSize(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormSize *r)
12091 if (ndr_flags & NDR_SCALARS) {
12092 NDR_CHECK(ndr_pull_align(ndr, 4));
12093 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->width));
12094 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->height));
12096 if (ndr_flags & NDR_BUFFERS) {
12098 return NDR_ERR_SUCCESS;
12101 _PUBLIC_ void ndr_print_spoolss_FormSize(struct ndr_print *ndr, const char *name, const struct spoolss_FormSize *r)
12103 ndr_print_struct(ndr, name, "spoolss_FormSize");
12105 ndr_print_uint32(ndr, "width", r->width);
12106 ndr_print_uint32(ndr, "height", r->height);
12110 static enum ndr_err_code ndr_push_spoolss_FormArea(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormArea *r)
12112 if (ndr_flags & NDR_SCALARS) {
12113 NDR_CHECK(ndr_push_align(ndr, 4));
12114 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->left));
12115 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->top));
12116 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->right));
12117 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bottom));
12119 if (ndr_flags & NDR_BUFFERS) {
12121 return NDR_ERR_SUCCESS;
12124 static enum ndr_err_code ndr_pull_spoolss_FormArea(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormArea *r)
12126 if (ndr_flags & NDR_SCALARS) {
12127 NDR_CHECK(ndr_pull_align(ndr, 4));
12128 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->left));
12129 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->top));
12130 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->right));
12131 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bottom));
12133 if (ndr_flags & NDR_BUFFERS) {
12135 return NDR_ERR_SUCCESS;
12138 _PUBLIC_ void ndr_print_spoolss_FormArea(struct ndr_print *ndr, const char *name, const struct spoolss_FormArea *r)
12140 ndr_print_struct(ndr, name, "spoolss_FormArea");
12142 ndr_print_uint32(ndr, "left", r->left);
12143 ndr_print_uint32(ndr, "top", r->top);
12144 ndr_print_uint32(ndr, "right", r->right);
12145 ndr_print_uint32(ndr, "bottom", r->bottom);
12149 static enum ndr_err_code ndr_push_spoolss_FormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo1 *r)
12151 if (ndr_flags & NDR_SCALARS) {
12152 NDR_CHECK(ndr_push_align(ndr, 4));
12153 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
12155 uint32_t _flags_save_string = ndr->flags;
12156 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12157 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
12158 ndr->flags = _flags_save_string;
12160 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
12161 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
12163 if (ndr_flags & NDR_BUFFERS) {
12165 uint32_t _flags_save_string = ndr->flags;
12166 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12167 if (r->form_name) {
12168 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
12169 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
12171 ndr->flags = _flags_save_string;
12174 return NDR_ERR_SUCCESS;
12177 static enum ndr_err_code ndr_pull_spoolss_FormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo1 *r)
12179 uint32_t _ptr_form_name;
12180 TALLOC_CTX *_mem_save_form_name_0;
12181 if (ndr_flags & NDR_SCALARS) {
12182 NDR_CHECK(ndr_pull_align(ndr, 4));
12183 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
12185 uint32_t _flags_save_string = ndr->flags;
12186 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12187 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
12188 if (_ptr_form_name) {
12189 NDR_PULL_ALLOC(ndr, r->form_name);
12190 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
12192 r->form_name = NULL;
12194 ndr->flags = _flags_save_string;
12196 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
12197 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
12199 if (ndr_flags & NDR_BUFFERS) {
12201 uint32_t _flags_save_string = ndr->flags;
12202 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12203 if (r->form_name) {
12204 uint32_t _relative_save_offset;
12205 _relative_save_offset = ndr->offset;
12206 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
12207 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12208 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
12209 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
12210 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
12211 ndr->offset = _relative_save_offset;
12213 ndr->flags = _flags_save_string;
12216 return NDR_ERR_SUCCESS;
12219 _PUBLIC_ void ndr_print_spoolss_FormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo1 *r)
12221 ndr_print_struct(ndr, name, "spoolss_FormInfo1");
12223 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
12224 ndr_print_ptr(ndr, "form_name", r->form_name);
12226 if (r->form_name) {
12227 ndr_print_string(ndr, "form_name", r->form_name);
12230 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
12231 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
12235 static enum ndr_err_code ndr_push_spoolss_FormStringType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
12237 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
12238 return NDR_ERR_SUCCESS;
12241 static enum ndr_err_code ndr_pull_spoolss_FormStringType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
12244 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
12246 return NDR_ERR_SUCCESS;
12249 _PUBLIC_ void ndr_print_spoolss_FormStringType(struct ndr_print *ndr, const char *name, uint32_t r)
12251 ndr_print_uint32(ndr, name, r);
12253 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE, r);
12254 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL, r);
12255 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR, r);
12259 static enum ndr_err_code ndr_push_spoolss_FormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo2 *r)
12261 if (ndr_flags & NDR_SCALARS) {
12262 NDR_CHECK(ndr_push_align(ndr, 4));
12263 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
12265 uint32_t _flags_save_string = ndr->flags;
12266 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12267 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
12268 ndr->flags = _flags_save_string;
12270 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
12271 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
12273 uint32_t _flags_save_string = ndr->flags;
12274 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12275 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->keyword));
12276 ndr->flags = _flags_save_string;
12278 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
12280 uint32_t _flags_save_string = ndr->flags;
12281 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12282 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->mui_dll));
12283 ndr->flags = _flags_save_string;
12285 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
12287 uint32_t _flags_save_string = ndr->flags;
12288 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12289 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->display_name));
12290 ndr->flags = _flags_save_string;
12292 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
12294 if (ndr_flags & NDR_BUFFERS) {
12296 uint32_t _flags_save_string = ndr->flags;
12297 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12298 if (r->form_name) {
12299 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
12300 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
12302 ndr->flags = _flags_save_string;
12305 uint32_t _flags_save_string = ndr->flags;
12306 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12308 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->keyword));
12309 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->keyword));
12311 ndr->flags = _flags_save_string;
12314 uint32_t _flags_save_string = ndr->flags;
12315 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12317 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->mui_dll));
12318 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mui_dll));
12320 ndr->flags = _flags_save_string;
12323 uint32_t _flags_save_string = ndr->flags;
12324 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12325 if (r->display_name) {
12326 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->display_name));
12327 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->display_name));
12329 ndr->flags = _flags_save_string;
12332 return NDR_ERR_SUCCESS;
12335 static enum ndr_err_code ndr_pull_spoolss_FormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo2 *r)
12337 uint32_t _ptr_form_name;
12338 TALLOC_CTX *_mem_save_form_name_0;
12339 uint32_t _ptr_keyword;
12340 TALLOC_CTX *_mem_save_keyword_0;
12341 uint32_t _ptr_mui_dll;
12342 TALLOC_CTX *_mem_save_mui_dll_0;
12343 uint32_t _ptr_display_name;
12344 TALLOC_CTX *_mem_save_display_name_0;
12345 if (ndr_flags & NDR_SCALARS) {
12346 NDR_CHECK(ndr_pull_align(ndr, 4));
12347 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
12349 uint32_t _flags_save_string = ndr->flags;
12350 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12351 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
12352 if (_ptr_form_name) {
12353 NDR_PULL_ALLOC(ndr, r->form_name);
12354 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
12356 r->form_name = NULL;
12358 ndr->flags = _flags_save_string;
12360 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
12361 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
12363 uint32_t _flags_save_string = ndr->flags;
12364 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12365 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
12366 if (_ptr_keyword) {
12367 NDR_PULL_ALLOC(ndr, r->keyword);
12368 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->keyword, _ptr_keyword));
12372 ndr->flags = _flags_save_string;
12374 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
12376 uint32_t _flags_save_string = ndr->flags;
12377 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12378 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
12379 if (_ptr_mui_dll) {
12380 NDR_PULL_ALLOC(ndr, r->mui_dll);
12381 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->mui_dll, _ptr_mui_dll));
12385 ndr->flags = _flags_save_string;
12387 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
12389 uint32_t _flags_save_string = ndr->flags;
12390 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12391 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
12392 if (_ptr_display_name) {
12393 NDR_PULL_ALLOC(ndr, r->display_name);
12394 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->display_name, _ptr_display_name));
12396 r->display_name = NULL;
12398 ndr->flags = _flags_save_string;
12400 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
12402 if (ndr_flags & NDR_BUFFERS) {
12404 uint32_t _flags_save_string = ndr->flags;
12405 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12406 if (r->form_name) {
12407 uint32_t _relative_save_offset;
12408 _relative_save_offset = ndr->offset;
12409 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
12410 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12411 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
12412 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
12413 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
12414 ndr->offset = _relative_save_offset;
12416 ndr->flags = _flags_save_string;
12419 uint32_t _flags_save_string = ndr->flags;
12420 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12422 uint32_t _relative_save_offset;
12423 _relative_save_offset = ndr->offset;
12424 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->keyword));
12425 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
12426 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
12427 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->keyword));
12428 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
12429 ndr->offset = _relative_save_offset;
12431 ndr->flags = _flags_save_string;
12434 uint32_t _flags_save_string = ndr->flags;
12435 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12437 uint32_t _relative_save_offset;
12438 _relative_save_offset = ndr->offset;
12439 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->mui_dll));
12440 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
12441 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
12442 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mui_dll));
12443 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
12444 ndr->offset = _relative_save_offset;
12446 ndr->flags = _flags_save_string;
12449 uint32_t _flags_save_string = ndr->flags;
12450 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12451 if (r->display_name) {
12452 uint32_t _relative_save_offset;
12453 _relative_save_offset = ndr->offset;
12454 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->display_name));
12455 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12456 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
12457 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->display_name));
12458 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
12459 ndr->offset = _relative_save_offset;
12461 ndr->flags = _flags_save_string;
12464 return NDR_ERR_SUCCESS;
12467 _PUBLIC_ void ndr_print_spoolss_FormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo2 *r)
12469 ndr_print_struct(ndr, name, "spoolss_FormInfo2");
12471 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
12472 ndr_print_ptr(ndr, "form_name", r->form_name);
12474 if (r->form_name) {
12475 ndr_print_string(ndr, "form_name", r->form_name);
12478 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
12479 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
12480 ndr_print_ptr(ndr, "keyword", r->keyword);
12483 ndr_print_string(ndr, "keyword", r->keyword);
12486 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
12487 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
12490 ndr_print_string(ndr, "mui_dll", r->mui_dll);
12493 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
12494 ndr_print_ptr(ndr, "display_name", r->display_name);
12496 if (r->display_name) {
12497 ndr_print_string(ndr, "display_name", r->display_name);
12500 ndr_print_uint32(ndr, "lang_id", r->lang_id);
12504 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_FormInfo *r)
12506 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
12507 if (ndr_flags & NDR_SCALARS) {
12508 int level = ndr_push_get_switch_value(ndr, r);
12511 NDR_CHECK(ndr_push_align(ndr, 4));
12512 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
12513 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
12517 NDR_CHECK(ndr_push_align(ndr, 4));
12518 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
12519 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
12527 if (ndr_flags & NDR_BUFFERS) {
12528 int level = ndr_push_get_switch_value(ndr, r);
12529 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
12532 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
12536 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
12544 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
12545 return NDR_ERR_SUCCESS;
12548 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_FormInfo *r)
12550 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
12552 level = ndr_pull_get_switch_value(ndr, r);
12553 if (ndr_flags & NDR_SCALARS) {
12556 NDR_CHECK(ndr_pull_align(ndr, 4));
12557 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
12558 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
12562 NDR_CHECK(ndr_pull_align(ndr, 4));
12563 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
12564 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
12572 if (ndr_flags & NDR_BUFFERS) {
12573 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
12576 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
12580 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
12588 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
12589 return NDR_ERR_SUCCESS;
12592 _PUBLIC_ void ndr_print_spoolss_FormInfo(struct ndr_print *ndr, const char *name, const union spoolss_FormInfo *r)
12595 level = ndr_print_get_switch_value(ndr, r);
12596 ndr_print_union(ndr, name, level, "spoolss_FormInfo");
12599 ndr_print_spoolss_FormInfo1(ndr, "info1", &r->info1);
12603 ndr_print_spoolss_FormInfo2(ndr, "info2", &r->info2);
12612 _PUBLIC_ size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
12614 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo, ic);
12617 static enum ndr_err_code ndr_push_spoolss_AddFormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo1 *r)
12619 if (ndr_flags & NDR_SCALARS) {
12620 NDR_CHECK(ndr_push_align(ndr, 4));
12621 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
12622 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
12623 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
12624 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
12626 if (ndr_flags & NDR_BUFFERS) {
12627 if (r->form_name) {
12628 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
12629 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12630 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
12631 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12634 return NDR_ERR_SUCCESS;
12637 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo1 *r)
12639 uint32_t _ptr_form_name;
12640 TALLOC_CTX *_mem_save_form_name_0;
12641 if (ndr_flags & NDR_SCALARS) {
12642 NDR_CHECK(ndr_pull_align(ndr, 4));
12643 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
12644 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
12645 if (_ptr_form_name) {
12646 NDR_PULL_ALLOC(ndr, r->form_name);
12648 r->form_name = NULL;
12650 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
12651 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
12653 if (ndr_flags & NDR_BUFFERS) {
12654 if (r->form_name) {
12655 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12656 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
12657 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
12658 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
12659 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
12660 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));
12662 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
12663 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
12664 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
12667 return NDR_ERR_SUCCESS;
12670 _PUBLIC_ void ndr_print_spoolss_AddFormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo1 *r)
12672 ndr_print_struct(ndr, name, "spoolss_AddFormInfo1");
12674 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
12675 ndr_print_ptr(ndr, "form_name", r->form_name);
12677 if (r->form_name) {
12678 ndr_print_string(ndr, "form_name", r->form_name);
12681 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
12682 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
12686 static enum ndr_err_code ndr_push_spoolss_AddFormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddFormInfo *r)
12688 if (ndr_flags & NDR_SCALARS) {
12689 int level = ndr_push_get_switch_value(ndr, r);
12690 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
12693 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
12697 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
12700 if (ndr_flags & NDR_BUFFERS) {
12701 int level = ndr_push_get_switch_value(ndr, r);
12705 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
12710 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
12713 return NDR_ERR_SUCCESS;
12716 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddFormInfo *r)
12720 TALLOC_CTX *_mem_save_info1_0;
12721 level = ndr_pull_get_switch_value(ndr, r);
12722 if (ndr_flags & NDR_SCALARS) {
12723 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
12724 if (_level != level) {
12725 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
12729 uint32_t _ptr_info1;
12730 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
12732 NDR_PULL_ALLOC(ndr, r->info1);
12739 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
12742 if (ndr_flags & NDR_BUFFERS) {
12746 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
12747 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
12748 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
12749 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
12754 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
12757 return NDR_ERR_SUCCESS;
12760 _PUBLIC_ void ndr_print_spoolss_AddFormInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddFormInfo *r)
12763 level = ndr_print_get_switch_value(ndr, r);
12764 ndr_print_union(ndr, name, level, "spoolss_AddFormInfo");
12767 ndr_print_ptr(ndr, "info1", r->info1);
12770 ndr_print_spoolss_AddFormInfo1(ndr, "info1", r->info1);
12776 ndr_print_bad_level(ndr, name, level);
12780 static enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo1 *r)
12782 if (ndr_flags & NDR_SCALARS) {
12783 NDR_CHECK(ndr_push_align(ndr, 4));
12785 uint32_t _flags_save_string = ndr->flags;
12786 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12787 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
12788 ndr->flags = _flags_save_string;
12791 if (ndr_flags & NDR_BUFFERS) {
12793 uint32_t _flags_save_string = ndr->flags;
12794 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12795 if (r->port_name) {
12796 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
12797 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
12799 ndr->flags = _flags_save_string;
12802 return NDR_ERR_SUCCESS;
12805 static enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo1 *r)
12807 uint32_t _ptr_port_name;
12808 TALLOC_CTX *_mem_save_port_name_0;
12809 if (ndr_flags & NDR_SCALARS) {
12810 NDR_CHECK(ndr_pull_align(ndr, 4));
12812 uint32_t _flags_save_string = ndr->flags;
12813 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12814 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
12815 if (_ptr_port_name) {
12816 NDR_PULL_ALLOC(ndr, r->port_name);
12817 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
12819 r->port_name = NULL;
12821 ndr->flags = _flags_save_string;
12824 if (ndr_flags & NDR_BUFFERS) {
12826 uint32_t _flags_save_string = ndr->flags;
12827 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12828 if (r->port_name) {
12829 uint32_t _relative_save_offset;
12830 _relative_save_offset = ndr->offset;
12831 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
12832 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12833 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
12834 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
12835 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
12836 ndr->offset = _relative_save_offset;
12838 ndr->flags = _flags_save_string;
12841 return NDR_ERR_SUCCESS;
12844 _PUBLIC_ void ndr_print_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo1 *r)
12846 ndr_print_struct(ndr, name, "spoolss_PortInfo1");
12848 ndr_print_ptr(ndr, "port_name", r->port_name);
12850 if (r->port_name) {
12851 ndr_print_string(ndr, "port_name", r->port_name);
12857 static enum ndr_err_code ndr_push_spoolss_PortType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
12859 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
12860 return NDR_ERR_SUCCESS;
12863 static enum ndr_err_code ndr_pull_spoolss_PortType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
12866 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
12868 return NDR_ERR_SUCCESS;
12871 _PUBLIC_ void ndr_print_spoolss_PortType(struct ndr_print *ndr, const char *name, uint32_t r)
12873 ndr_print_uint32(ndr, name, r);
12875 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE, r);
12876 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ, r);
12877 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED, r);
12878 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED, r);
12882 static enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo2 *r)
12884 if (ndr_flags & NDR_SCALARS) {
12885 NDR_CHECK(ndr_push_align(ndr, 4));
12887 uint32_t _flags_save_string = ndr->flags;
12888 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12889 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
12890 ndr->flags = _flags_save_string;
12893 uint32_t _flags_save_string = ndr->flags;
12894 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12895 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12896 ndr->flags = _flags_save_string;
12899 uint32_t _flags_save_string = ndr->flags;
12900 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12901 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
12902 ndr->flags = _flags_save_string;
12904 NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
12905 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
12907 if (ndr_flags & NDR_BUFFERS) {
12909 uint32_t _flags_save_string = ndr->flags;
12910 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12911 if (r->port_name) {
12912 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
12913 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
12915 ndr->flags = _flags_save_string;
12918 uint32_t _flags_save_string = ndr->flags;
12919 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12920 if (r->monitor_name) {
12921 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
12922 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12924 ndr->flags = _flags_save_string;
12927 uint32_t _flags_save_string = ndr->flags;
12928 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12929 if (r->description) {
12930 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
12931 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
12933 ndr->flags = _flags_save_string;
12936 return NDR_ERR_SUCCESS;
12939 static enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo2 *r)
12941 uint32_t _ptr_port_name;
12942 TALLOC_CTX *_mem_save_port_name_0;
12943 uint32_t _ptr_monitor_name;
12944 TALLOC_CTX *_mem_save_monitor_name_0;
12945 uint32_t _ptr_description;
12946 TALLOC_CTX *_mem_save_description_0;
12947 if (ndr_flags & NDR_SCALARS) {
12948 NDR_CHECK(ndr_pull_align(ndr, 4));
12950 uint32_t _flags_save_string = ndr->flags;
12951 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12952 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
12953 if (_ptr_port_name) {
12954 NDR_PULL_ALLOC(ndr, r->port_name);
12955 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
12957 r->port_name = NULL;
12959 ndr->flags = _flags_save_string;
12962 uint32_t _flags_save_string = ndr->flags;
12963 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12964 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12965 if (_ptr_monitor_name) {
12966 NDR_PULL_ALLOC(ndr, r->monitor_name);
12967 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12969 r->monitor_name = NULL;
12971 ndr->flags = _flags_save_string;
12974 uint32_t _flags_save_string = ndr->flags;
12975 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12976 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
12977 if (_ptr_description) {
12978 NDR_PULL_ALLOC(ndr, r->description);
12979 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
12981 r->description = NULL;
12983 ndr->flags = _flags_save_string;
12985 NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
12986 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
12988 if (ndr_flags & NDR_BUFFERS) {
12990 uint32_t _flags_save_string = ndr->flags;
12991 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12992 if (r->port_name) {
12993 uint32_t _relative_save_offset;
12994 _relative_save_offset = ndr->offset;
12995 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
12996 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12997 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
12998 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
12999 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
13000 ndr->offset = _relative_save_offset;
13002 ndr->flags = _flags_save_string;
13005 uint32_t _flags_save_string = ndr->flags;
13006 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13007 if (r->monitor_name) {
13008 uint32_t _relative_save_offset;
13009 _relative_save_offset = ndr->offset;
13010 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
13011 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13012 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
13013 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
13014 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
13015 ndr->offset = _relative_save_offset;
13017 ndr->flags = _flags_save_string;
13020 uint32_t _flags_save_string = ndr->flags;
13021 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13022 if (r->description) {
13023 uint32_t _relative_save_offset;
13024 _relative_save_offset = ndr->offset;
13025 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
13026 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
13027 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
13028 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
13029 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
13030 ndr->offset = _relative_save_offset;
13032 ndr->flags = _flags_save_string;
13035 return NDR_ERR_SUCCESS;
13038 _PUBLIC_ void ndr_print_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo2 *r)
13040 ndr_print_struct(ndr, name, "spoolss_PortInfo2");
13042 ndr_print_ptr(ndr, "port_name", r->port_name);
13044 if (r->port_name) {
13045 ndr_print_string(ndr, "port_name", r->port_name);
13048 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13050 if (r->monitor_name) {
13051 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13054 ndr_print_ptr(ndr, "description", r->description);
13056 if (r->description) {
13057 ndr_print_string(ndr, "description", r->description);
13060 ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
13061 ndr_print_uint32(ndr, "reserved", r->reserved);
13065 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PortInfo *r)
13067 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
13068 if (ndr_flags & NDR_SCALARS) {
13069 int level = ndr_push_get_switch_value(ndr, r);
13072 NDR_CHECK(ndr_push_align(ndr, 4));
13073 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13074 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
13078 NDR_CHECK(ndr_push_align(ndr, 4));
13079 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13080 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
13091 if (ndr_flags & NDR_BUFFERS) {
13092 int level = ndr_push_get_switch_value(ndr, r);
13093 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
13096 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
13100 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
13111 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
13112 return NDR_ERR_SUCCESS;
13115 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PortInfo *r)
13117 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
13119 level = ndr_pull_get_switch_value(ndr, r);
13120 if (ndr_flags & NDR_SCALARS) {
13123 NDR_CHECK(ndr_pull_align(ndr, 4));
13124 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13125 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
13129 NDR_CHECK(ndr_pull_align(ndr, 4));
13130 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13131 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
13142 if (ndr_flags & NDR_BUFFERS) {
13143 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
13146 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
13150 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
13161 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
13162 return NDR_ERR_SUCCESS;
13165 _PUBLIC_ void ndr_print_spoolss_PortInfo(struct ndr_print *ndr, const char *name, const union spoolss_PortInfo *r)
13168 level = ndr_print_get_switch_value(ndr, r);
13169 ndr_print_union(ndr, name, level, "spoolss_PortInfo");
13172 ndr_print_spoolss_PortInfo1(ndr, "info1", &r->info1);
13176 ndr_print_spoolss_PortInfo2(ndr, "info2", &r->info2);
13188 static enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo1 *r)
13190 if (ndr_flags & NDR_SCALARS) {
13191 NDR_CHECK(ndr_push_align(ndr, 4));
13193 uint32_t _flags_save_string = ndr->flags;
13194 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13195 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
13196 ndr->flags = _flags_save_string;
13199 if (ndr_flags & NDR_BUFFERS) {
13201 uint32_t _flags_save_string = ndr->flags;
13202 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13203 if (r->monitor_name) {
13204 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
13205 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
13207 ndr->flags = _flags_save_string;
13210 return NDR_ERR_SUCCESS;
13213 static enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo1 *r)
13215 uint32_t _ptr_monitor_name;
13216 TALLOC_CTX *_mem_save_monitor_name_0;
13217 if (ndr_flags & NDR_SCALARS) {
13218 NDR_CHECK(ndr_pull_align(ndr, 4));
13220 uint32_t _flags_save_string = ndr->flags;
13221 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13222 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
13223 if (_ptr_monitor_name) {
13224 NDR_PULL_ALLOC(ndr, r->monitor_name);
13225 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
13227 r->monitor_name = NULL;
13229 ndr->flags = _flags_save_string;
13232 if (ndr_flags & NDR_BUFFERS) {
13234 uint32_t _flags_save_string = ndr->flags;
13235 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13236 if (r->monitor_name) {
13237 uint32_t _relative_save_offset;
13238 _relative_save_offset = ndr->offset;
13239 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
13240 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13241 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
13242 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
13243 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
13244 ndr->offset = _relative_save_offset;
13246 ndr->flags = _flags_save_string;
13249 return NDR_ERR_SUCCESS;
13252 _PUBLIC_ void ndr_print_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo1 *r)
13254 ndr_print_struct(ndr, name, "spoolss_MonitorInfo1");
13256 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13258 if (r->monitor_name) {
13259 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13265 static enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo2 *r)
13267 if (ndr_flags & NDR_SCALARS) {
13268 NDR_CHECK(ndr_push_align(ndr, 4));
13270 uint32_t _flags_save_string = ndr->flags;
13271 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13272 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
13273 ndr->flags = _flags_save_string;
13276 uint32_t _flags_save_string = ndr->flags;
13277 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13278 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->environment));
13279 ndr->flags = _flags_save_string;
13282 uint32_t _flags_save_string = ndr->flags;
13283 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13284 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name));
13285 ndr->flags = _flags_save_string;
13288 if (ndr_flags & NDR_BUFFERS) {
13290 uint32_t _flags_save_string = ndr->flags;
13291 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13292 if (r->monitor_name) {
13293 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
13294 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
13296 ndr->flags = _flags_save_string;
13299 uint32_t _flags_save_string = ndr->flags;
13300 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13301 if (r->environment) {
13302 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->environment));
13303 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
13305 ndr->flags = _flags_save_string;
13308 uint32_t _flags_save_string = ndr->flags;
13309 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13311 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dll_name));
13312 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
13314 ndr->flags = _flags_save_string;
13317 return NDR_ERR_SUCCESS;
13320 static enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo2 *r)
13322 uint32_t _ptr_monitor_name;
13323 TALLOC_CTX *_mem_save_monitor_name_0;
13324 uint32_t _ptr_environment;
13325 TALLOC_CTX *_mem_save_environment_0;
13326 uint32_t _ptr_dll_name;
13327 TALLOC_CTX *_mem_save_dll_name_0;
13328 if (ndr_flags & NDR_SCALARS) {
13329 NDR_CHECK(ndr_pull_align(ndr, 4));
13331 uint32_t _flags_save_string = ndr->flags;
13332 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13333 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
13334 if (_ptr_monitor_name) {
13335 NDR_PULL_ALLOC(ndr, r->monitor_name);
13336 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
13338 r->monitor_name = NULL;
13340 ndr->flags = _flags_save_string;
13343 uint32_t _flags_save_string = ndr->flags;
13344 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13345 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
13346 if (_ptr_environment) {
13347 NDR_PULL_ALLOC(ndr, r->environment);
13348 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->environment, _ptr_environment));
13350 r->environment = NULL;
13352 ndr->flags = _flags_save_string;
13355 uint32_t _flags_save_string = ndr->flags;
13356 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13357 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name));
13358 if (_ptr_dll_name) {
13359 NDR_PULL_ALLOC(ndr, r->dll_name);
13360 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dll_name, _ptr_dll_name));
13362 r->dll_name = NULL;
13364 ndr->flags = _flags_save_string;
13367 if (ndr_flags & NDR_BUFFERS) {
13369 uint32_t _flags_save_string = ndr->flags;
13370 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13371 if (r->monitor_name) {
13372 uint32_t _relative_save_offset;
13373 _relative_save_offset = ndr->offset;
13374 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
13375 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13376 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
13377 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
13378 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
13379 ndr->offset = _relative_save_offset;
13381 ndr->flags = _flags_save_string;
13384 uint32_t _flags_save_string = ndr->flags;
13385 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13386 if (r->environment) {
13387 uint32_t _relative_save_offset;
13388 _relative_save_offset = ndr->offset;
13389 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->environment));
13390 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
13391 NDR_PULL_SET_MEM_CTX(ndr, r->environment, 0);
13392 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
13393 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
13394 ndr->offset = _relative_save_offset;
13396 ndr->flags = _flags_save_string;
13399 uint32_t _flags_save_string = ndr->flags;
13400 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13402 uint32_t _relative_save_offset;
13403 _relative_save_offset = ndr->offset;
13404 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dll_name));
13405 _mem_save_dll_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13406 NDR_PULL_SET_MEM_CTX(ndr, r->dll_name, 0);
13407 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
13408 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dll_name_0, 0);
13409 ndr->offset = _relative_save_offset;
13411 ndr->flags = _flags_save_string;
13414 return NDR_ERR_SUCCESS;
13417 _PUBLIC_ void ndr_print_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo2 *r)
13419 ndr_print_struct(ndr, name, "spoolss_MonitorInfo2");
13421 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13423 if (r->monitor_name) {
13424 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13427 ndr_print_ptr(ndr, "environment", r->environment);
13429 if (r->environment) {
13430 ndr_print_string(ndr, "environment", r->environment);
13433 ndr_print_ptr(ndr, "dll_name", r->dll_name);
13436 ndr_print_string(ndr, "dll_name", r->dll_name);
13442 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_MonitorInfo *r)
13444 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
13445 if (ndr_flags & NDR_SCALARS) {
13446 int level = ndr_push_get_switch_value(ndr, r);
13449 NDR_CHECK(ndr_push_align(ndr, 4));
13450 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13451 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
13455 NDR_CHECK(ndr_push_align(ndr, 4));
13456 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13457 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
13465 if (ndr_flags & NDR_BUFFERS) {
13466 int level = ndr_push_get_switch_value(ndr, r);
13467 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
13470 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
13474 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
13482 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
13483 return NDR_ERR_SUCCESS;
13486 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_MonitorInfo *r)
13488 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
13490 level = ndr_pull_get_switch_value(ndr, r);
13491 if (ndr_flags & NDR_SCALARS) {
13494 NDR_CHECK(ndr_pull_align(ndr, 4));
13495 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13496 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
13500 NDR_CHECK(ndr_pull_align(ndr, 4));
13501 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13502 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
13510 if (ndr_flags & NDR_BUFFERS) {
13511 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
13514 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
13518 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
13526 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
13527 return NDR_ERR_SUCCESS;
13530 _PUBLIC_ void ndr_print_spoolss_MonitorInfo(struct ndr_print *ndr, const char *name, const union spoolss_MonitorInfo *r)
13533 level = ndr_print_get_switch_value(ndr, r);
13534 ndr_print_union(ndr, name, level, "spoolss_MonitorInfo");
13537 ndr_print_spoolss_MonitorInfo1(ndr, "info1", &r->info1);
13541 ndr_print_spoolss_MonitorInfo2(ndr, "info2", &r->info2);
13550 static enum ndr_err_code ndr_push_spoolss_PrinterChangeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
13552 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
13553 return NDR_ERR_SUCCESS;
13556 static enum ndr_err_code ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
13559 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
13561 return NDR_ERR_SUCCESS;
13564 _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
13566 ndr_print_uint32(ndr, name, r);
13568 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER, r);
13569 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER, r);
13570 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER, r);
13571 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, r);
13572 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB, r);
13573 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB, r);
13574 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB, r);
13575 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB, r);
13576 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM, r);
13577 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM, r);
13578 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM, r);
13579 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT, r);
13580 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT, r);
13581 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
13582 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
13583 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
13584 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER, r);
13585 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
13586 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
13587 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
13588 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT, r);
13592 static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, int ndr_flags, enum spoolss_Field r)
13594 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
13595 return NDR_ERR_SUCCESS;
13598 static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, int ndr_flags, enum spoolss_Field *r)
13601 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
13603 return NDR_ERR_SUCCESS;
13606 _PUBLIC_ void ndr_print_spoolss_Field(struct ndr_print *ndr, const char *name, enum spoolss_Field r)
13608 const char *val = NULL;
13611 case SPOOLSS_FIELD_SERVER_NAME: val = "SPOOLSS_FIELD_SERVER_NAME"; break;
13612 case SPOOLSS_FIELD_PRINTER_NAME: val = "SPOOLSS_FIELD_PRINTER_NAME"; break;
13613 case SPOOLSS_FIELD_SHARE_NAME: val = "SPOOLSS_FIELD_SHARE_NAME"; break;
13614 case SPOOLSS_FIELD_PORT_NAME: val = "SPOOLSS_FIELD_PORT_NAME"; break;
13615 case SPOOLSS_FIELD_DRIVER_NAME: val = "SPOOLSS_FIELD_DRIVER_NAME"; break;
13616 case SPOOLSS_FIELD_COMMENT: val = "SPOOLSS_FIELD_COMMENT"; break;
13617 case SPOOLSS_FIELD_LOCATION: val = "SPOOLSS_FIELD_LOCATION"; break;
13618 case SPOOLSS_FIELD_DEVMODE: val = "SPOOLSS_FIELD_DEVMODE"; break;
13619 case SPOOLSS_FIELD_SEPFILE: val = "SPOOLSS_FIELD_SEPFILE"; break;
13620 case SPOOLSS_FIELD_PRINT_PROCESSOR: val = "SPOOLSS_FIELD_PRINT_PROCESSOR"; break;
13621 case SPOOLSS_FIELD_PARAMETERS: val = "SPOOLSS_FIELD_PARAMETERS"; break;
13622 case SPOOLSS_FIELD_DATATYPE: val = "SPOOLSS_FIELD_DATATYPE"; break;
13623 case SPOOLSS_FIELD_SECURITY_DESCRIPTOR: val = "SPOOLSS_FIELD_SECURITY_DESCRIPTOR"; break;
13624 case SPOOLSS_FIELD_ATTRIBUTES: val = "SPOOLSS_FIELD_ATTRIBUTES"; break;
13625 case SPOOLSS_FIELD_PRIORITY: val = "SPOOLSS_FIELD_PRIORITY"; break;
13626 case SPOOLSS_FIELD_DEFAULT_PRIORITY: val = "SPOOLSS_FIELD_DEFAULT_PRIORITY"; break;
13627 case SPOOLSS_FIELD_START_TIME: val = "SPOOLSS_FIELD_START_TIME"; break;
13628 case SPOOLSS_FIELD_UNTIL_TIME: val = "SPOOLSS_FIELD_UNTIL_TIME"; break;
13629 case SPOOLSS_FIELD_STATUS: val = "SPOOLSS_FIELD_STATUS"; break;
13630 case SPOOLSS_FIELD_STATUS_STRING: val = "SPOOLSS_FIELD_STATUS_STRING"; break;
13631 case SPOOLSS_FIELD_CJOBS: val = "SPOOLSS_FIELD_CJOBS"; break;
13632 case SPOOLSS_FIELD_AVERAGE_PPM: val = "SPOOLSS_FIELD_AVERAGE_PPM"; break;
13633 case SPOOLSS_FIELD_TOTAL_PAGES: val = "SPOOLSS_FIELD_TOTAL_PAGES"; break;
13634 case SPOOLSS_FIELD_PAGES_PRINTED: val = "SPOOLSS_FIELD_PAGES_PRINTED"; break;
13635 case SPOOLSS_FIELD_TOTAL_BYTES: val = "SPOOLSS_FIELD_TOTAL_BYTES"; break;
13636 case SPOOLSS_FIELD_BYTES_PRINTED: val = "SPOOLSS_FIELD_BYTES_PRINTED"; break;
13638 ndr_print_enum(ndr, name, "ENUM", val, r);
13641 static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyType r)
13643 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
13644 return NDR_ERR_SUCCESS;
13647 static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyType *r)
13650 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
13652 return NDR_ERR_SUCCESS;
13655 _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
13657 const char *val = NULL;
13660 case SPOOLSS_NOTIFY_PRINTER: val = "SPOOLSS_NOTIFY_PRINTER"; break;
13661 case SPOOLSS_NOTIFY_JOB: val = "SPOOLSS_NOTIFY_JOB"; break;
13663 ndr_print_enum(ndr, name, "ENUM", val, r);
13666 static enum ndr_err_code ndr_push_spoolss_NotifyOptionType(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOptionType *r)
13668 uint32_t cntr_fields_1;
13669 if (ndr_flags & NDR_SCALARS) {
13670 NDR_CHECK(ndr_push_align(ndr, 4));
13671 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
13672 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
13673 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
13674 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
13675 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13676 NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
13678 if (ndr_flags & NDR_BUFFERS) {
13680 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13681 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
13682 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, r->fields[cntr_fields_1]));
13686 return NDR_ERR_SUCCESS;
13689 static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionType *r)
13691 uint32_t _ptr_fields;
13692 uint32_t cntr_fields_1;
13693 TALLOC_CTX *_mem_save_fields_0;
13694 TALLOC_CTX *_mem_save_fields_1;
13695 if (ndr_flags & NDR_SCALARS) {
13696 NDR_CHECK(ndr_pull_align(ndr, 4));
13697 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
13698 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
13699 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
13700 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
13701 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
13702 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
13704 NDR_PULL_ALLOC(ndr, r->fields);
13709 if (ndr_flags & NDR_BUFFERS) {
13711 _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
13712 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
13713 NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
13714 NDR_PULL_ALLOC_N(ndr, r->fields, ndr_get_array_size(ndr, &r->fields));
13715 _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
13716 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
13717 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
13718 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
13720 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
13721 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
13724 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->fields, r->count));
13727 return NDR_ERR_SUCCESS;
13730 _PUBLIC_ void ndr_print_spoolss_NotifyOptionType(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionType *r)
13732 uint32_t cntr_fields_1;
13733 ndr_print_struct(ndr, name, "spoolss_NotifyOptionType");
13735 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
13736 ndr_print_uint16(ndr, "u1", r->u1);
13737 ndr_print_uint32(ndr, "u2", r->u2);
13738 ndr_print_uint32(ndr, "u3", r->u3);
13739 ndr_print_uint32(ndr, "count", r->count);
13740 ndr_print_ptr(ndr, "fields", r->fields);
13743 ndr->print(ndr, "%s: ARRAY(%d)", "fields", (int)r->count);
13745 for (cntr_fields_1=0;cntr_fields_1<r->count;cntr_fields_1++) {
13747 if (asprintf(&idx_1, "[%d]", cntr_fields_1) != -1) {
13748 ndr_print_spoolss_Field(ndr, "fields", r->fields[cntr_fields_1]);
13758 static enum ndr_err_code ndr_push_spoolssNotifyOptionFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
13760 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
13761 return NDR_ERR_SUCCESS;
13764 static enum ndr_err_code ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
13767 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
13769 return NDR_ERR_SUCCESS;
13772 _PUBLIC_ void ndr_print_spoolssNotifyOptionFlags(struct ndr_print *ndr, const char *name, uint32_t r)
13774 ndr_print_uint32(ndr, name, r);
13776 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH, r);
13780 static enum ndr_err_code ndr_push_spoolss_NotifyOption(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOption *r)
13782 uint32_t cntr_types_1;
13783 if (ndr_flags & NDR_SCALARS) {
13784 NDR_CHECK(ndr_push_align(ndr, 4));
13785 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
13786 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, r->flags));
13787 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13788 NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
13790 if (ndr_flags & NDR_BUFFERS) {
13792 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13793 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
13794 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
13796 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
13797 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
13801 return NDR_ERR_SUCCESS;
13804 static enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOption *r)
13806 uint32_t _ptr_types;
13807 uint32_t cntr_types_1;
13808 TALLOC_CTX *_mem_save_types_0;
13809 TALLOC_CTX *_mem_save_types_1;
13810 if (ndr_flags & NDR_SCALARS) {
13811 NDR_CHECK(ndr_pull_align(ndr, 4));
13812 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
13813 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, &r->flags));
13814 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
13815 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
13817 NDR_PULL_ALLOC(ndr, r->types);
13822 if (ndr_flags & NDR_BUFFERS) {
13824 _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
13825 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
13826 NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
13827 NDR_PULL_ALLOC_N(ndr, r->types, ndr_get_array_size(ndr, &r->types));
13828 _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
13829 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
13830 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
13831 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
13833 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
13834 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
13836 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
13837 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
13840 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
13843 return NDR_ERR_SUCCESS;
13846 _PUBLIC_ void ndr_print_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOption *r)
13848 uint32_t cntr_types_1;
13849 ndr_print_struct(ndr, name, "spoolss_NotifyOption");
13851 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
13852 ndr_print_spoolssNotifyOptionFlags(ndr, "flags", r->flags);
13853 ndr_print_uint32(ndr, "count", r->count);
13854 ndr_print_ptr(ndr, "types", r->types);
13857 ndr->print(ndr, "%s: ARRAY(%d)", "types", (int)r->count);
13859 for (cntr_types_1=0;cntr_types_1<r->count;cntr_types_1++) {
13861 if (asprintf(&idx_1, "[%d]", cntr_types_1) != -1) {
13862 ndr_print_spoolss_NotifyOptionType(ndr, "types", &r->types[cntr_types_1]);
13872 static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyString *r)
13874 if (ndr_flags & NDR_SCALARS) {
13875 NDR_CHECK(ndr_push_align(ndr, 4));
13876 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
13877 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
13879 if (ndr_flags & NDR_BUFFERS) {
13881 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
13882 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
13885 return NDR_ERR_SUCCESS;
13888 static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyString *r)
13890 uint32_t _ptr_string;
13891 TALLOC_CTX *_mem_save_string_0;
13892 if (ndr_flags & NDR_SCALARS) {
13893 NDR_CHECK(ndr_pull_align(ndr, 4));
13894 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
13895 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
13897 NDR_PULL_ALLOC(ndr, r->string);
13902 if (ndr_flags & NDR_BUFFERS) {
13904 _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
13905 NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
13906 NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
13907 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_size(ndr, &r->string), sizeof(uint16_t), CH_UTF16));
13908 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
13911 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size / 2));
13914 return NDR_ERR_SUCCESS;
13917 _PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
13919 ndr_print_struct(ndr, name, "spoolss_NotifyString");
13921 ndr_print_uint32(ndr, "size", r->size);
13922 ndr_print_ptr(ndr, "string", r->string);
13925 ndr_print_string(ndr, "string", r->string);
13931 static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyTable r)
13933 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
13934 return NDR_ERR_SUCCESS;
13937 static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyTable *r)
13940 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
13942 return NDR_ERR_SUCCESS;
13945 _PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
13947 const char *val = NULL;
13950 case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
13951 case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
13952 case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
13953 case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
13954 case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
13956 ndr_print_enum(ndr, name, "ENUM", val, r);
13959 static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int ndr_flags, const union spoolss_NotifyData *r)
13961 if (ndr_flags & NDR_SCALARS) {
13962 int level = ndr_push_get_switch_value(ndr, r);
13963 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
13966 uint32_t cntr_integer_0;
13967 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
13968 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
13973 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
13977 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
13981 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
13985 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
13989 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13992 if (ndr_flags & NDR_BUFFERS) {
13993 int level = ndr_push_get_switch_value(ndr, r);
13999 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
14003 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
14007 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
14011 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
14015 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
14018 return NDR_ERR_SUCCESS;
14021 static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int ndr_flags, union spoolss_NotifyData *r)
14025 level = ndr_pull_get_switch_value(ndr, r);
14026 if (ndr_flags & NDR_SCALARS) {
14027 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
14028 if (_level != level) {
14029 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
14033 uint32_t cntr_integer_0;
14034 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
14035 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
14040 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
14044 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
14048 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
14052 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
14056 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
14059 if (ndr_flags & NDR_BUFFERS) {
14065 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
14069 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
14073 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
14077 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
14081 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
14084 return NDR_ERR_SUCCESS;
14087 _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
14090 uint32_t cntr_integer_0;
14091 level = ndr_print_get_switch_value(ndr, r);
14092 ndr_print_union(ndr, name, level, "spoolss_NotifyData");
14095 ndr->print(ndr, "%s: ARRAY(%d)", "integer", (int)2);
14097 for (cntr_integer_0=0;cntr_integer_0<2;cntr_integer_0++) {
14099 if (asprintf(&idx_0, "[%d]", cntr_integer_0) != -1) {
14100 ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
14108 ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
14112 ndr_print_spoolss_DevmodeContainer(ndr, "devmode", &r->devmode);
14116 ndr_print_spoolss_TimeCtr(ndr, "time", &r->time);
14120 ndr_print_sec_desc_buf(ndr, "sd", &r->sd);
14124 ndr_print_bad_level(ndr, name, level);
14128 static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Notify *r)
14130 if (ndr_flags & NDR_SCALARS) {
14131 NDR_CHECK(ndr_push_align(ndr, 4));
14132 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
14133 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, r->field));
14134 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr, NDR_SCALARS, r->variable_type));
14135 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
14136 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
14137 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
14139 if (ndr_flags & NDR_BUFFERS) {
14140 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
14142 return NDR_ERR_SUCCESS;
14145 static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Notify *r)
14147 if (ndr_flags & NDR_SCALARS) {
14148 NDR_CHECK(ndr_pull_align(ndr, 4));
14149 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
14150 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
14151 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr, NDR_SCALARS, &r->variable_type));
14152 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
14153 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
14154 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
14156 if (ndr_flags & NDR_BUFFERS) {
14157 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
14159 return NDR_ERR_SUCCESS;
14162 _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
14164 ndr_print_struct(ndr, name, "spoolss_Notify");
14166 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
14167 ndr_print_spoolss_Field(ndr, "field", r->field);
14168 ndr_print_spoolss_NotifyTable(ndr, "variable_type", r->variable_type);
14169 ndr_print_uint32(ndr, "job_id", r->job_id);
14170 ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
14171 ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
14175 static enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyInfo *r)
14177 uint32_t cntr_notifies_0;
14178 if (ndr_flags & NDR_SCALARS) {
14179 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
14180 NDR_CHECK(ndr_push_align(ndr, 4));
14181 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
14182 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
14183 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
14184 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
14185 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
14188 if (ndr_flags & NDR_BUFFERS) {
14189 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
14190 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
14193 return NDR_ERR_SUCCESS;
14196 static enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyInfo *r)
14198 uint32_t cntr_notifies_0;
14199 TALLOC_CTX *_mem_save_notifies_0;
14200 if (ndr_flags & NDR_SCALARS) {
14201 NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
14202 NDR_CHECK(ndr_pull_align(ndr, 4));
14203 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
14204 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
14205 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
14206 NDR_PULL_ALLOC_N(ndr, r->notifies, ndr_get_array_size(ndr, &r->notifies));
14207 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
14208 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
14209 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
14210 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
14212 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
14214 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
14217 if (ndr_flags & NDR_BUFFERS) {
14218 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
14219 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
14220 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
14221 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
14223 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
14225 return NDR_ERR_SUCCESS;
14228 _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
14230 uint32_t cntr_notifies_0;
14231 ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
14233 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
14234 ndr_print_uint32(ndr, "flags", r->flags);
14235 ndr_print_uint32(ndr, "count", r->count);
14236 ndr->print(ndr, "%s: ARRAY(%d)", "notifies", (int)r->count);
14238 for (cntr_notifies_0=0;cntr_notifies_0<r->count;cntr_notifies_0++) {
14240 if (asprintf(&idx_0, "[%d]", cntr_notifies_0) != -1) {
14241 ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
14249 static enum ndr_err_code ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_ReplyPrinterInfo *r)
14251 if (ndr_flags & NDR_SCALARS) {
14252 int level = ndr_push_get_switch_value(ndr, r);
14253 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
14256 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
14260 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
14263 if (ndr_flags & NDR_BUFFERS) {
14264 int level = ndr_push_get_switch_value(ndr, r);
14268 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
14273 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
14276 return NDR_ERR_SUCCESS;
14279 static enum ndr_err_code ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_ReplyPrinterInfo *r)
14283 TALLOC_CTX *_mem_save_info0_0;
14284 level = ndr_pull_get_switch_value(ndr, r);
14285 if (ndr_flags & NDR_SCALARS) {
14286 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
14287 if (_level != level) {
14288 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
14292 uint32_t _ptr_info0;
14293 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
14295 NDR_PULL_ALLOC(ndr, r->info0);
14302 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
14305 if (ndr_flags & NDR_BUFFERS) {
14309 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
14310 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
14311 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
14312 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
14317 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
14320 return NDR_ERR_SUCCESS;
14323 _PUBLIC_ void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_ReplyPrinterInfo *r)
14326 level = ndr_print_get_switch_value(ndr, r);
14327 ndr_print_union(ndr, name, level, "spoolss_ReplyPrinterInfo");
14330 ndr_print_ptr(ndr, "info0", r->info0);
14333 ndr_print_spoolss_NotifyInfo(ndr, "info0", r->info0);
14339 ndr_print_bad_level(ndr, name, level);
14343 static enum ndr_err_code ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
14345 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14346 return NDR_ERR_SUCCESS;
14349 static enum ndr_err_code ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
14352 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14354 return NDR_ERR_SUCCESS;
14357 _PUBLIC_ void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print *ndr, const char *name, uint32_t r)
14359 ndr_print_uint32(ndr, name, r);
14361 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED, r);
14362 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED, r);
14363 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH, r);
14367 static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel1 *r)
14369 if (ndr_flags & NDR_SCALARS) {
14370 NDR_CHECK(ndr_push_align(ndr, 4));
14371 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
14372 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
14373 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
14374 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
14375 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
14376 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
14377 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
14379 if (ndr_flags & NDR_BUFFERS) {
14381 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
14382 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14383 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
14384 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14387 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
14388 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14389 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
14390 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14393 return NDR_ERR_SUCCESS;
14396 static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel1 *r)
14398 uint32_t _ptr_client;
14399 TALLOC_CTX *_mem_save_client_0;
14400 uint32_t _ptr_user;
14401 TALLOC_CTX *_mem_save_user_0;
14402 if (ndr_flags & NDR_SCALARS) {
14403 NDR_CHECK(ndr_pull_align(ndr, 4));
14404 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
14405 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
14407 NDR_PULL_ALLOC(ndr, r->client);
14411 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
14413 NDR_PULL_ALLOC(ndr, r->user);
14417 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
14418 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
14419 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
14420 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
14422 if (ndr_flags & NDR_BUFFERS) {
14424 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
14425 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
14426 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
14427 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
14428 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
14429 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));
14431 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
14432 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
14433 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
14436 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
14437 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
14438 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
14439 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
14440 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
14441 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));
14443 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
14444 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
14445 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
14448 return NDR_ERR_SUCCESS;
14451 _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
14453 ndr_print_struct(ndr, name, "spoolss_UserLevel1");
14455 ndr_print_uint32(ndr, "size", r->size);
14456 ndr_print_ptr(ndr, "client", r->client);
14459 ndr_print_string(ndr, "client", r->client);
14462 ndr_print_ptr(ndr, "user", r->user);
14465 ndr_print_string(ndr, "user", r->user);
14468 ndr_print_uint32(ndr, "build", r->build);
14469 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
14470 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
14471 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
14475 static enum ndr_err_code ndr_push_spoolss_UserLevel2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel2 *r)
14477 if (ndr_flags & NDR_SCALARS) {
14478 NDR_CHECK(ndr_push_align(ndr, 4));
14479 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->not_used));
14481 if (ndr_flags & NDR_BUFFERS) {
14483 return NDR_ERR_SUCCESS;
14486 static enum ndr_err_code ndr_pull_spoolss_UserLevel2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel2 *r)
14488 if (ndr_flags & NDR_SCALARS) {
14489 NDR_CHECK(ndr_pull_align(ndr, 4));
14490 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->not_used));
14492 if (ndr_flags & NDR_BUFFERS) {
14494 return NDR_ERR_SUCCESS;
14497 _PUBLIC_ void ndr_print_spoolss_UserLevel2(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel2 *r)
14499 ndr_print_struct(ndr, name, "spoolss_UserLevel2");
14501 ndr_print_uint32(ndr, "not_used", r->not_used);
14505 static enum ndr_err_code ndr_push_spoolss_UserLevel3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel3 *r)
14507 if (ndr_flags & NDR_SCALARS) {
14508 NDR_CHECK(ndr_push_align(ndr, 4));
14509 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
14510 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
14511 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size2));
14512 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
14513 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
14514 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
14515 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
14516 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
14517 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
14518 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reserved));
14520 if (ndr_flags & NDR_BUFFERS) {
14522 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
14523 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14524 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
14525 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14528 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
14529 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14530 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
14531 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14534 return NDR_ERR_SUCCESS;
14537 static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel3 *r)
14539 uint32_t _ptr_client;
14540 TALLOC_CTX *_mem_save_client_0;
14541 uint32_t _ptr_user;
14542 TALLOC_CTX *_mem_save_user_0;
14543 if (ndr_flags & NDR_SCALARS) {
14544 NDR_CHECK(ndr_pull_align(ndr, 4));
14545 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
14546 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
14547 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size2));
14548 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
14550 NDR_PULL_ALLOC(ndr, r->client);
14554 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
14556 NDR_PULL_ALLOC(ndr, r->user);
14560 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
14561 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
14562 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
14563 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
14564 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reserved));
14566 if (ndr_flags & NDR_BUFFERS) {
14568 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
14569 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
14570 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
14571 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
14572 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
14573 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));
14575 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
14576 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
14577 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
14580 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
14581 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
14582 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
14583 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
14584 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
14585 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));
14587 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
14588 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
14589 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
14592 return NDR_ERR_SUCCESS;
14595 _PUBLIC_ void ndr_print_spoolss_UserLevel3(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel3 *r)
14597 ndr_print_struct(ndr, name, "spoolss_UserLevel3");
14599 ndr_print_uint32(ndr, "size", r->size);
14600 ndr_print_uint32(ndr, "flags", r->flags);
14601 ndr_print_uint32(ndr, "size2", r->size2);
14602 ndr_print_ptr(ndr, "client", r->client);
14605 ndr_print_string(ndr, "client", r->client);
14608 ndr_print_ptr(ndr, "user", r->user);
14611 ndr_print_string(ndr, "user", r->user);
14614 ndr_print_uint32(ndr, "build", r->build);
14615 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
14616 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
14617 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
14618 ndr_print_udlong(ndr, "reserved", r->reserved);
14622 static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, int ndr_flags, const union spoolss_UserLevel *r)
14624 if (ndr_flags & NDR_SCALARS) {
14625 int level = ndr_push_get_switch_value(ndr, r);
14626 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
14629 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
14633 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level2));
14637 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level3));
14641 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
14644 if (ndr_flags & NDR_BUFFERS) {
14645 int level = ndr_push_get_switch_value(ndr, r);
14649 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
14655 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
14661 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
14666 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
14669 return NDR_ERR_SUCCESS;
14672 static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, int ndr_flags, union spoolss_UserLevel *r)
14676 TALLOC_CTX *_mem_save_level1_0;
14677 TALLOC_CTX *_mem_save_level2_0;
14678 TALLOC_CTX *_mem_save_level3_0;
14679 level = ndr_pull_get_switch_value(ndr, r);
14680 if (ndr_flags & NDR_SCALARS) {
14681 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
14682 if (_level != level) {
14683 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
14687 uint32_t _ptr_level1;
14688 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
14690 NDR_PULL_ALLOC(ndr, r->level1);
14697 uint32_t _ptr_level2;
14698 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
14700 NDR_PULL_ALLOC(ndr, r->level2);
14707 uint32_t _ptr_level3;
14708 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
14710 NDR_PULL_ALLOC(ndr, r->level3);
14717 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
14720 if (ndr_flags & NDR_BUFFERS) {
14724 _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
14725 NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
14726 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
14727 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
14733 _mem_save_level2_0 = NDR_PULL_GET_MEM_CTX(ndr);
14734 NDR_PULL_SET_MEM_CTX(ndr, r->level2, 0);
14735 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
14736 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level2_0, 0);
14742 _mem_save_level3_0 = NDR_PULL_GET_MEM_CTX(ndr);
14743 NDR_PULL_SET_MEM_CTX(ndr, r->level3, 0);
14744 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
14745 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level3_0, 0);
14750 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
14753 return NDR_ERR_SUCCESS;
14756 _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
14759 level = ndr_print_get_switch_value(ndr, r);
14760 ndr_print_union(ndr, name, level, "spoolss_UserLevel");
14763 ndr_print_ptr(ndr, "level1", r->level1);
14766 ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
14772 ndr_print_ptr(ndr, "level2", r->level2);
14775 ndr_print_spoolss_UserLevel2(ndr, "level2", r->level2);
14781 ndr_print_ptr(ndr, "level3", r->level3);
14784 ndr_print_spoolss_UserLevel3(ndr, "level3", r->level3);
14790 ndr_print_bad_level(ndr, name, level);
14794 static enum ndr_err_code ndr_push_spoolss_UserLevelCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevelCtr *r)
14796 if (ndr_flags & NDR_SCALARS) {
14797 NDR_CHECK(ndr_push_align(ndr, 4));
14798 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
14799 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
14800 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
14802 if (ndr_flags & NDR_BUFFERS) {
14803 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
14805 return NDR_ERR_SUCCESS;
14808 static enum ndr_err_code ndr_pull_spoolss_UserLevelCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevelCtr *r)
14810 if (ndr_flags & NDR_SCALARS) {
14811 NDR_CHECK(ndr_pull_align(ndr, 4));
14812 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
14813 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
14814 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
14816 if (ndr_flags & NDR_BUFFERS) {
14817 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
14819 return NDR_ERR_SUCCESS;
14822 _PUBLIC_ void ndr_print_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevelCtr *r)
14824 ndr_print_struct(ndr, name, "spoolss_UserLevelCtr");
14826 ndr_print_uint32(ndr, "level", r->level);
14827 ndr_print_set_switch_value(ndr, &r->user_info, r->level);
14828 ndr_print_spoolss_UserLevel(ndr, "user_info", &r->user_info);
14832 static enum ndr_err_code ndr_push_spoolss_AccessRights(struct ndr_push *ndr, int ndr_flags, uint32_t r)
14834 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14835 return NDR_ERR_SUCCESS;
14838 static enum ndr_err_code ndr_pull_spoolss_AccessRights(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
14841 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14843 return NDR_ERR_SUCCESS;
14846 _PUBLIC_ void ndr_print_spoolss_AccessRights(struct ndr_print *ndr, const char *name, uint32_t r)
14848 ndr_print_uint32(ndr, name, r);
14850 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER, r);
14851 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE, r);
14852 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER, r);
14853 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE, r);
14854 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER, r);
14858 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
14860 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14861 return NDR_ERR_SUCCESS;
14864 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
14867 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14869 return NDR_ERR_SUCCESS;
14872 _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
14874 ndr_print_uint32(ndr, name, r);
14876 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
14877 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
14878 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
14882 static enum ndr_err_code ndr_push_spoolss_PortProtocol(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortProtocol r)
14884 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14885 return NDR_ERR_SUCCESS;
14888 static enum ndr_err_code ndr_pull_spoolss_PortProtocol(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortProtocol *r)
14891 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14893 return NDR_ERR_SUCCESS;
14896 _PUBLIC_ void ndr_print_spoolss_PortProtocol(struct ndr_print *ndr, const char *name, enum spoolss_PortProtocol r)
14898 const char *val = NULL;
14901 case PROTOCOL_RAWTCP_TYPE: val = "PROTOCOL_RAWTCP_TYPE"; break;
14902 case PROTOCOL_LPR_TYPE: val = "PROTOCOL_LPR_TYPE"; break;
14904 ndr_print_enum(ndr, name, "ENUM", val, r);
14907 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData1 *r)
14909 if (ndr_flags & NDR_SCALARS) {
14910 NDR_CHECK(ndr_push_align(ndr, 4));
14911 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
14912 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
14913 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
14914 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
14915 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
14916 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
14917 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
14918 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
14919 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
14920 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
14921 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
14922 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
14923 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
14924 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
14925 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
14927 if (ndr_flags & NDR_BUFFERS) {
14929 return NDR_ERR_SUCCESS;
14932 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData1 *r)
14934 if (ndr_flags & NDR_SCALARS) {
14935 NDR_CHECK(ndr_pull_align(ndr, 4));
14936 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
14937 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
14938 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
14939 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
14940 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
14941 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
14942 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
14943 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
14944 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
14945 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
14946 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
14947 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
14948 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
14949 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
14950 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
14952 if (ndr_flags & NDR_BUFFERS) {
14954 return NDR_ERR_SUCCESS;
14957 _PUBLIC_ void ndr_print_spoolss_PortData1(struct ndr_print *ndr, const char *name, const struct spoolss_PortData1 *r)
14959 ndr_print_struct(ndr, name, "spoolss_PortData1");
14961 ndr_print_string(ndr, "portname", r->portname);
14962 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000001:r->version);
14963 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
14964 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
14965 ndr_print_uint32(ndr, "reserved", r->reserved);
14966 ndr_print_string(ndr, "hostaddress", r->hostaddress);
14967 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
14968 ndr_print_uint32(ndr, "dblspool", r->dblspool);
14969 ndr_print_string(ndr, "queue", r->queue);
14970 ndr_print_string(ndr, "ip_address", r->ip_address);
14971 ndr_print_string(ndr, "hardware_address", r->hardware_address);
14972 ndr_print_string(ndr, "device_type", r->device_type);
14973 ndr_print_uint32(ndr, "port_number", r->port_number);
14974 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
14975 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
14979 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData2 *r)
14981 if (ndr_flags & NDR_SCALARS) {
14982 NDR_CHECK(ndr_push_align(ndr, 4));
14983 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
14984 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000002));
14985 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
14986 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
14987 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
14988 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
14989 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
14990 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
14991 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
14992 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
14993 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
14994 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
14995 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
14996 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_monitor_mib_index));
14998 if (ndr_flags & NDR_BUFFERS) {
15000 return NDR_ERR_SUCCESS;
15003 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData2 *r)
15005 if (ndr_flags & NDR_SCALARS) {
15006 NDR_CHECK(ndr_pull_align(ndr, 4));
15007 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
15008 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
15009 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
15010 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
15011 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
15012 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
15013 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
15014 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
15015 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
15016 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
15017 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
15018 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
15019 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
15020 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_monitor_mib_index));
15022 if (ndr_flags & NDR_BUFFERS) {
15024 return NDR_ERR_SUCCESS;
15027 _PUBLIC_ void ndr_print_spoolss_PortData2(struct ndr_print *ndr, const char *name, const struct spoolss_PortData2 *r)
15029 ndr_print_struct(ndr, name, "spoolss_PortData2");
15031 ndr_print_string(ndr, "portname", r->portname);
15032 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000002:r->version);
15033 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
15034 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
15035 ndr_print_uint32(ndr, "reserved", r->reserved);
15036 ndr_print_string(ndr, "hostaddress", r->hostaddress);
15037 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
15038 ndr_print_uint32(ndr, "dblspool", r->dblspool);
15039 ndr_print_string(ndr, "queue", r->queue);
15040 ndr_print_string(ndr, "device_type", r->device_type);
15041 ndr_print_uint32(ndr, "port_number", r->port_number);
15042 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
15043 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
15044 ndr_print_uint32(ndr, "port_monitor_mib_index", r->port_monitor_mib_index);
15048 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorUi(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorUi *r)
15050 if (ndr_flags & NDR_SCALARS) {
15051 NDR_CHECK(ndr_push_align(ndr, 4));
15053 uint32_t _flags_save_string = ndr->flags;
15054 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15055 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
15056 ndr->flags = _flags_save_string;
15059 if (ndr_flags & NDR_BUFFERS) {
15061 return NDR_ERR_SUCCESS;
15064 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorUi(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorUi *r)
15066 if (ndr_flags & NDR_SCALARS) {
15067 NDR_CHECK(ndr_pull_align(ndr, 4));
15069 uint32_t _flags_save_string = ndr->flags;
15070 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15071 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
15072 ndr->flags = _flags_save_string;
15075 if (ndr_flags & NDR_BUFFERS) {
15077 return NDR_ERR_SUCCESS;
15080 _PUBLIC_ void ndr_print_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorUi *r)
15082 ndr_print_struct(ndr, name, "spoolss_MonitorUi");
15084 ndr_print_string(ndr, "dll_name", r->dll_name);
15088 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
15090 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
15091 return NDR_ERR_SUCCESS;
15094 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
15097 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
15099 return NDR_ERR_SUCCESS;
15102 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r)
15104 ndr_print_uint32(ndr, name, r);
15106 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
15107 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
15108 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
15109 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
15110 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
15111 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
15112 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
15113 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
15117 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r)
15119 if (flags & NDR_IN) {
15120 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
15121 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
15122 if (r->in.server) {
15123 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
15124 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15125 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
15126 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15128 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15129 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
15130 if (r->in.buffer) {
15131 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
15133 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
15135 if (flags & NDR_OUT) {
15136 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
15138 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
15140 if (r->out.needed == NULL) {
15141 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15143 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
15144 if (r->out.count == NULL) {
15145 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15147 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
15148 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15150 return NDR_ERR_SUCCESS;
15153 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinters *r)
15155 uint32_t _ptr_server;
15156 uint32_t _ptr_buffer;
15157 uint32_t _ptr_info;
15158 TALLOC_CTX *_mem_save_server_0;
15159 TALLOC_CTX *_mem_save_buffer_0;
15160 TALLOC_CTX *_mem_save_info_0;
15161 TALLOC_CTX *_mem_save_needed_0;
15162 TALLOC_CTX *_mem_save_count_0;
15163 if (flags & NDR_IN) {
15164 ZERO_STRUCT(r->out);
15166 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
15167 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
15169 NDR_PULL_ALLOC(ndr, r->in.server);
15171 r->in.server = NULL;
15173 if (r->in.server) {
15174 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
15175 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
15176 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
15177 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
15178 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
15179 return 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));
15181 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
15182 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
15183 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
15185 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15186 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
15188 NDR_PULL_ALLOC(ndr, r->in.buffer);
15190 r->in.buffer = NULL;
15192 if (r->in.buffer) {
15193 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
15194 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
15195 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
15196 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
15198 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
15199 NDR_PULL_ALLOC(ndr, r->out.needed);
15200 ZERO_STRUCTP(r->out.needed);
15201 NDR_PULL_ALLOC(ndr, r->out.count);
15202 ZERO_STRUCTP(r->out.count);
15204 if (flags & NDR_OUT) {
15205 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
15207 NDR_PULL_ALLOC(ndr, r->out.info);
15209 r->out.info = NULL;
15212 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15213 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
15214 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
15215 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
15217 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15218 NDR_PULL_ALLOC(ndr, r->out.needed);
15220 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
15221 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
15222 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
15223 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
15224 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15225 NDR_PULL_ALLOC(ndr, r->out.count);
15227 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
15228 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
15229 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
15230 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
15231 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15233 return NDR_ERR_SUCCESS;
15236 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinters *r)
15238 uint32_t cntr_info_0;
15239 if (flags & NDR_IN) {
15240 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15241 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
15243 if (flags & NDR_OUT) {
15244 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15245 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
15246 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
15248 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15249 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
15252 return NDR_ERR_SUCCESS;
15255 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinters *r)
15257 uint32_t cntr_info_0;
15258 TALLOC_CTX *_mem_save_info_0;
15259 if (flags & NDR_IN) {
15260 ZERO_STRUCT(r->out);
15262 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15263 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
15265 if (flags & NDR_OUT) {
15266 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
15267 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15268 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
15269 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15270 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
15271 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
15273 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15274 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
15276 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
15278 return NDR_ERR_SUCCESS;
15281 _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinters *r)
15283 uint32_t cntr_info_1;
15284 ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
15286 if (flags & NDR_SET_VALUES) {
15287 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15289 if (flags & NDR_IN) {
15290 ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
15292 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
15293 ndr_print_ptr(ndr, "server", r->in.server);
15295 if (r->in.server) {
15296 ndr_print_string(ndr, "server", r->in.server);
15299 ndr_print_uint32(ndr, "level", r->in.level);
15300 ndr_print_ptr(ndr, "buffer", r->in.buffer);
15302 if (r->in.buffer) {
15303 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
15306 ndr_print_uint32(ndr, "offered", r->in.offered);
15309 if (flags & NDR_OUT) {
15310 ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
15312 ndr_print_ptr(ndr, "count", r->out.count);
15314 ndr_print_uint32(ndr, "count", *r->out.count);
15316 ndr_print_ptr(ndr, "info", r->out.info);
15319 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
15321 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
15323 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
15324 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
15325 ndr_print_spoolss_PrinterInfo(ndr, "info", &r->out.info[cntr_info_1]);
15332 ndr_print_ptr(ndr, "needed", r->out.needed);
15334 ndr_print_uint32(ndr, "needed", *r->out.needed);
15336 ndr_print_WERROR(ndr, "result", r->out.result);
15342 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinter *r)
15344 if (flags & NDR_IN) {
15345 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
15346 if (r->in.printername) {
15347 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
15348 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15349 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
15350 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15352 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
15353 if (r->in.datatype) {
15354 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
15355 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15356 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
15357 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15359 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
15360 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
15362 if (flags & NDR_OUT) {
15363 if (r->out.handle == NULL) {
15364 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15366 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
15367 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15369 return NDR_ERR_SUCCESS;
15372 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinter *r)
15374 uint32_t _ptr_printername;
15375 uint32_t _ptr_datatype;
15376 TALLOC_CTX *_mem_save_printername_0;
15377 TALLOC_CTX *_mem_save_datatype_0;
15378 TALLOC_CTX *_mem_save_handle_0;
15379 if (flags & NDR_IN) {
15380 ZERO_STRUCT(r->out);
15382 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
15383 if (_ptr_printername) {
15384 NDR_PULL_ALLOC(ndr, r->in.printername);
15386 r->in.printername = NULL;
15388 if (r->in.printername) {
15389 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
15390 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
15391 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
15392 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
15393 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
15394 return 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));
15396 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
15397 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
15398 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
15400 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
15401 if (_ptr_datatype) {
15402 NDR_PULL_ALLOC(ndr, r->in.datatype);
15404 r->in.datatype = NULL;
15406 if (r->in.datatype) {
15407 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
15408 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
15409 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
15410 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
15411 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
15412 return 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));
15414 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
15415 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
15416 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
15418 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
15419 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
15420 NDR_PULL_ALLOC(ndr, r->out.handle);
15421 ZERO_STRUCTP(r->out.handle);
15423 if (flags & NDR_OUT) {
15424 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15425 NDR_PULL_ALLOC(ndr, r->out.handle);
15427 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15428 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
15429 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
15430 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15431 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15433 return NDR_ERR_SUCCESS;
15436 _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinter *r)
15438 ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
15440 if (flags & NDR_SET_VALUES) {
15441 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15443 if (flags & NDR_IN) {
15444 ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
15446 ndr_print_ptr(ndr, "printername", r->in.printername);
15448 if (r->in.printername) {
15449 ndr_print_string(ndr, "printername", r->in.printername);
15452 ndr_print_ptr(ndr, "datatype", r->in.datatype);
15454 if (r->in.datatype) {
15455 ndr_print_string(ndr, "datatype", r->in.datatype);
15458 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
15459 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
15462 if (flags & NDR_OUT) {
15463 ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
15465 ndr_print_ptr(ndr, "handle", r->out.handle);
15467 ndr_print_policy_handle(ndr, "handle", r->out.handle);
15469 ndr_print_WERROR(ndr, "result", r->out.result);
15475 static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, int flags, const struct spoolss_SetJob *r)
15477 if (flags & NDR_IN) {
15478 if (r->in.handle == NULL) {
15479 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15481 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15482 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
15483 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
15485 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
15487 NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
15489 if (flags & NDR_OUT) {
15490 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15492 return NDR_ERR_SUCCESS;
15495 static enum ndr_err_code ndr_pull_spoolss_SetJob(struct ndr_pull *ndr, int flags, struct spoolss_SetJob *r)
15498 TALLOC_CTX *_mem_save_handle_0;
15499 TALLOC_CTX *_mem_save_ctr_0;
15500 if (flags & NDR_IN) {
15501 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15502 NDR_PULL_ALLOC(ndr, r->in.handle);
15504 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15505 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15506 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15507 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15508 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
15509 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
15511 NDR_PULL_ALLOC(ndr, r->in.ctr);
15516 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
15517 NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
15518 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
15519 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
15521 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
15523 if (flags & NDR_OUT) {
15524 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15526 return NDR_ERR_SUCCESS;
15529 _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetJob *r)
15531 ndr_print_struct(ndr, name, "spoolss_SetJob");
15533 if (flags & NDR_SET_VALUES) {
15534 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15536 if (flags & NDR_IN) {
15537 ndr_print_struct(ndr, "in", "spoolss_SetJob");
15539 ndr_print_ptr(ndr, "handle", r->in.handle);
15541 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15543 ndr_print_uint32(ndr, "job_id", r->in.job_id);
15544 ndr_print_ptr(ndr, "ctr", r->in.ctr);
15547 ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
15550 ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
15553 if (flags & NDR_OUT) {
15554 ndr_print_struct(ndr, "out", "spoolss_SetJob");
15556 ndr_print_WERROR(ndr, "result", r->out.result);
15562 static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, int flags, const struct spoolss_GetJob *r)
15564 if (flags & NDR_IN) {
15565 if (r->in.handle == NULL) {
15566 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15568 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15569 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
15570 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15571 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
15572 if (r->in.buffer) {
15573 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
15575 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
15577 if (flags & NDR_OUT) {
15578 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
15581 struct ndr_push *_ndr_info;
15582 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
15583 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
15584 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
15585 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
15588 if (r->out.needed == NULL) {
15589 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15591 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
15592 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15594 return NDR_ERR_SUCCESS;
15597 static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags, struct spoolss_GetJob *r)
15599 uint32_t _ptr_buffer;
15600 uint32_t _ptr_info;
15601 TALLOC_CTX *_mem_save_handle_0;
15602 TALLOC_CTX *_mem_save_buffer_0;
15603 TALLOC_CTX *_mem_save_info_0;
15604 TALLOC_CTX *_mem_save_needed_0;
15605 if (flags & NDR_IN) {
15606 ZERO_STRUCT(r->out);
15608 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15609 NDR_PULL_ALLOC(ndr, r->in.handle);
15611 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15612 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15613 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15614 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15615 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
15616 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15617 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
15619 NDR_PULL_ALLOC(ndr, r->in.buffer);
15621 r->in.buffer = NULL;
15623 if (r->in.buffer) {
15624 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
15625 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
15626 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
15627 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
15629 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
15630 NDR_PULL_ALLOC(ndr, r->out.needed);
15631 ZERO_STRUCTP(r->out.needed);
15633 if (flags & NDR_OUT) {
15634 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
15636 NDR_PULL_ALLOC(ndr, r->out.info);
15638 r->out.info = NULL;
15641 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15642 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
15644 struct ndr_pull *_ndr_info;
15645 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
15646 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
15647 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
15648 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
15650 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
15652 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15653 NDR_PULL_ALLOC(ndr, r->out.needed);
15655 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
15656 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
15657 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
15658 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
15659 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15661 return NDR_ERR_SUCCESS;
15664 _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetJob *r)
15666 ndr_print_struct(ndr, name, "spoolss_GetJob");
15668 if (flags & NDR_SET_VALUES) {
15669 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15671 if (flags & NDR_IN) {
15672 ndr_print_struct(ndr, "in", "spoolss_GetJob");
15674 ndr_print_ptr(ndr, "handle", r->in.handle);
15676 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15678 ndr_print_uint32(ndr, "job_id", r->in.job_id);
15679 ndr_print_uint32(ndr, "level", r->in.level);
15680 ndr_print_ptr(ndr, "buffer", r->in.buffer);
15682 if (r->in.buffer) {
15683 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
15686 ndr_print_uint32(ndr, "offered", r->in.offered);
15689 if (flags & NDR_OUT) {
15690 ndr_print_struct(ndr, "out", "spoolss_GetJob");
15692 ndr_print_ptr(ndr, "info", r->out.info);
15695 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
15696 ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
15699 ndr_print_ptr(ndr, "needed", r->out.needed);
15701 ndr_print_uint32(ndr, "needed", *r->out.needed);
15703 ndr_print_WERROR(ndr, "result", r->out.result);
15709 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct _spoolss_EnumJobs *r)
15711 if (flags & NDR_IN) {
15712 if (r->in.handle == NULL) {
15713 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15715 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15716 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
15717 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
15718 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15719 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
15720 if (r->in.buffer) {
15721 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
15723 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
15725 if (flags & NDR_OUT) {
15726 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
15728 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
15730 if (r->out.needed == NULL) {
15731 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15733 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
15734 if (r->out.count == NULL) {
15735 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15737 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
15738 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15740 return NDR_ERR_SUCCESS;
15743 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct _spoolss_EnumJobs *r)
15745 uint32_t _ptr_buffer;
15746 uint32_t _ptr_info;
15747 TALLOC_CTX *_mem_save_handle_0;
15748 TALLOC_CTX *_mem_save_buffer_0;
15749 TALLOC_CTX *_mem_save_info_0;
15750 TALLOC_CTX *_mem_save_needed_0;
15751 TALLOC_CTX *_mem_save_count_0;
15752 if (flags & NDR_IN) {
15753 ZERO_STRUCT(r->out);
15755 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15756 NDR_PULL_ALLOC(ndr, r->in.handle);
15758 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15759 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15760 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15761 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15762 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
15763 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
15764 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15765 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
15767 NDR_PULL_ALLOC(ndr, r->in.buffer);
15769 r->in.buffer = NULL;
15771 if (r->in.buffer) {
15772 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
15773 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
15774 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
15775 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
15777 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
15778 NDR_PULL_ALLOC(ndr, r->out.needed);
15779 ZERO_STRUCTP(r->out.needed);
15780 NDR_PULL_ALLOC(ndr, r->out.count);
15781 ZERO_STRUCTP(r->out.count);
15783 if (flags & NDR_OUT) {
15784 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
15786 NDR_PULL_ALLOC(ndr, r->out.info);
15788 r->out.info = NULL;
15791 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15792 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
15793 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
15794 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
15796 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15797 NDR_PULL_ALLOC(ndr, r->out.needed);
15799 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
15800 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
15801 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
15802 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
15803 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15804 NDR_PULL_ALLOC(ndr, r->out.count);
15806 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
15807 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
15808 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
15809 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
15810 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15812 return NDR_ERR_SUCCESS;
15815 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct __spoolss_EnumJobs *r)
15817 uint32_t cntr_info_0;
15818 if (flags & NDR_IN) {
15819 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15820 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
15822 if (flags & NDR_OUT) {
15823 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15824 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
15825 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
15827 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15828 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
15831 return NDR_ERR_SUCCESS;
15834 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct __spoolss_EnumJobs *r)
15836 uint32_t cntr_info_0;
15837 TALLOC_CTX *_mem_save_info_0;
15838 if (flags & NDR_IN) {
15839 ZERO_STRUCT(r->out);
15841 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15842 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
15844 if (flags & NDR_OUT) {
15845 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
15846 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15847 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
15848 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15849 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
15850 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
15852 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15853 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
15855 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
15857 return NDR_ERR_SUCCESS;
15860 _PUBLIC_ void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumJobs *r)
15862 uint32_t cntr_info_1;
15863 ndr_print_struct(ndr, name, "spoolss_EnumJobs");
15865 if (flags & NDR_SET_VALUES) {
15866 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15868 if (flags & NDR_IN) {
15869 ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
15871 ndr_print_ptr(ndr, "handle", r->in.handle);
15873 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15875 ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
15876 ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
15877 ndr_print_uint32(ndr, "level", r->in.level);
15878 ndr_print_ptr(ndr, "buffer", r->in.buffer);
15880 if (r->in.buffer) {
15881 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
15884 ndr_print_uint32(ndr, "offered", r->in.offered);
15887 if (flags & NDR_OUT) {
15888 ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
15890 ndr_print_ptr(ndr, "count", r->out.count);
15892 ndr_print_uint32(ndr, "count", *r->out.count);
15894 ndr_print_ptr(ndr, "info", r->out.info);
15897 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
15899 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
15901 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
15902 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
15903 ndr_print_spoolss_JobInfo(ndr, "info", &r->out.info[cntr_info_1]);
15910 ndr_print_ptr(ndr, "needed", r->out.needed);
15912 ndr_print_uint32(ndr, "needed", *r->out.needed);
15914 ndr_print_WERROR(ndr, "result", r->out.result);
15920 static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinter *r)
15922 if (flags & NDR_IN) {
15924 if (flags & NDR_OUT) {
15925 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15927 return NDR_ERR_SUCCESS;
15930 static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinter *r)
15932 if (flags & NDR_IN) {
15934 if (flags & NDR_OUT) {
15935 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15937 return NDR_ERR_SUCCESS;
15940 _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinter *r)
15942 ndr_print_struct(ndr, name, "spoolss_AddPrinter");
15944 if (flags & NDR_SET_VALUES) {
15945 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15947 if (flags & NDR_IN) {
15948 ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
15952 if (flags & NDR_OUT) {
15953 ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
15955 ndr_print_WERROR(ndr, "result", r->out.result);
15961 static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinter *r)
15963 if (flags & NDR_IN) {
15964 if (r->in.handle == NULL) {
15965 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15967 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15969 if (flags & NDR_OUT) {
15970 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15972 return NDR_ERR_SUCCESS;
15975 static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinter *r)
15977 TALLOC_CTX *_mem_save_handle_0;
15978 if (flags & NDR_IN) {
15979 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15980 NDR_PULL_ALLOC(ndr, r->in.handle);
15982 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15983 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15984 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15985 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15987 if (flags & NDR_OUT) {
15988 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15990 return NDR_ERR_SUCCESS;
15993 _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinter *r)
15995 ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
15997 if (flags & NDR_SET_VALUES) {
15998 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16000 if (flags & NDR_IN) {
16001 ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
16003 ndr_print_ptr(ndr, "handle", r->in.handle);
16005 ndr_print_policy_handle(ndr, "handle", r->in.handle);
16009 if (flags & NDR_OUT) {
16010 ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
16012 ndr_print_WERROR(ndr, "result", r->out.result);
16018 static enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinter *r)
16020 if (flags & NDR_IN) {
16021 if (r->in.handle == NULL) {
16022 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16024 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16025 if (r->in.info_ctr == NULL) {
16026 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16028 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
16029 if (r->in.devmode_ctr == NULL) {
16030 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16032 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
16033 if (r->in.secdesc_ctr == NULL) {
16034 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16036 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
16037 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
16039 if (flags & NDR_OUT) {
16040 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16042 return NDR_ERR_SUCCESS;
16045 static enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinter *r)
16047 TALLOC_CTX *_mem_save_handle_0;
16048 TALLOC_CTX *_mem_save_info_ctr_0;
16049 TALLOC_CTX *_mem_save_devmode_ctr_0;
16050 TALLOC_CTX *_mem_save_secdesc_ctr_0;
16051 if (flags & NDR_IN) {
16052 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16053 NDR_PULL_ALLOC(ndr, r->in.handle);
16055 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
16056 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
16057 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16058 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
16059 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16060 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
16062 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
16063 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
16064 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
16065 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
16066 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16067 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
16069 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
16070 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
16071 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
16072 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
16073 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16074 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
16076 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
16077 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
16078 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
16079 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
16080 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
16082 if (flags & NDR_OUT) {
16083 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16085 return NDR_ERR_SUCCESS;
16088 _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinter *r)
16090 ndr_print_struct(ndr, name, "spoolss_SetPrinter");
16092 if (flags & NDR_SET_VALUES) {
16093 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16095 if (flags & NDR_IN) {
16096 ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
16098 ndr_print_ptr(ndr, "handle", r->in.handle);
16100 ndr_print_policy_handle(ndr, "handle", r->in.handle);
16102 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
16104 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
16106 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
16108 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
16110 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
16112 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
16114 ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
16117 if (flags & NDR_OUT) {
16118 ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
16120 ndr_print_WERROR(ndr, "result", r->out.result);
16126 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinter *r)
16128 if (flags & NDR_IN) {
16129 if (r->in.handle == NULL) {
16130 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16132 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16133 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16134 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
16135 if (r->in.buffer) {
16136 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
16138 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
16140 if (flags & NDR_OUT) {
16141 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
16144 struct ndr_push *_ndr_info;
16145 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
16146 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
16147 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
16148 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
16151 if (r->out.needed == NULL) {
16152 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16154 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
16155 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16157 return NDR_ERR_SUCCESS;
16160 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinter *r)
16162 uint32_t _ptr_buffer;
16163 uint32_t _ptr_info;
16164 TALLOC_CTX *_mem_save_handle_0;
16165 TALLOC_CTX *_mem_save_buffer_0;
16166 TALLOC_CTX *_mem_save_info_0;
16167 TALLOC_CTX *_mem_save_needed_0;
16168 if (flags & NDR_IN) {
16169 ZERO_STRUCT(r->out);
16171 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16172 NDR_PULL_ALLOC(ndr, r->in.handle);
16174 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
16175 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
16176 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16177 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
16178 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16179 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
16181 NDR_PULL_ALLOC(ndr, r->in.buffer);
16183 r->in.buffer = NULL;
16185 if (r->in.buffer) {
16186 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
16187 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
16188 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
16189 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
16191 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
16192 NDR_PULL_ALLOC(ndr, r->out.needed);
16193 ZERO_STRUCTP(r->out.needed);
16195 if (flags & NDR_OUT) {
16196 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
16198 NDR_PULL_ALLOC(ndr, r->out.info);
16200 r->out.info = NULL;
16203 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16204 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
16206 struct ndr_pull *_ndr_info;
16207 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
16208 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
16209 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
16210 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
16212 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
16214 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16215 NDR_PULL_ALLOC(ndr, r->out.needed);
16217 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
16218 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
16219 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
16220 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
16221 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16223 return NDR_ERR_SUCCESS;
16226 _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinter *r)
16228 ndr_print_struct(ndr, name, "spoolss_GetPrinter");
16230 if (flags & NDR_SET_VALUES) {
16231 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16233 if (flags & NDR_IN) {
16234 ndr_print_struct(ndr, "in", "spoolss_GetPrinter");
16236 ndr_print_ptr(ndr, "handle", r->in.handle);
16238 ndr_print_policy_handle(ndr, "handle", r->in.handle);
16240 ndr_print_uint32(ndr, "level", r->in.level);
16241 ndr_print_ptr(ndr, "buffer", r->in.buffer);
16243 if (r->in.buffer) {
16244 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
16247 ndr_print_uint32(ndr, "offered", r->in.offered);
16250 if (flags & NDR_OUT) {
16251 ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
16253 ndr_print_ptr(ndr, "info", r->out.info);
16256 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
16257 ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
16260 ndr_print_ptr(ndr, "needed", r->out.needed);
16262 ndr_print_uint32(ndr, "needed", *r->out.needed);
16264 ndr_print_WERROR(ndr, "result", r->out.result);
16270 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriver *r)
16272 if (flags & NDR_IN) {
16273 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
16274 if (r->in.servername) {
16275 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
16276 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16277 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
16278 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16280 if (r->in.info_ctr == NULL) {
16281 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16283 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
16285 if (flags & NDR_OUT) {
16286 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16288 return NDR_ERR_SUCCESS;
16291 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriver *r)
16293 uint32_t _ptr_servername;
16294 TALLOC_CTX *_mem_save_servername_0;
16295 TALLOC_CTX *_mem_save_info_ctr_0;
16296 if (flags & NDR_IN) {
16297 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
16298 if (_ptr_servername) {
16299 NDR_PULL_ALLOC(ndr, r->in.servername);
16301 r->in.servername = NULL;
16303 if (r->in.servername) {
16304 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
16305 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
16306 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
16307 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
16308 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
16309 return 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));
16311 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
16312 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
16313 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
16315 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16316 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
16318 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
16319 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
16320 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
16321 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
16323 if (flags & NDR_OUT) {
16324 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16326 return NDR_ERR_SUCCESS;
16329 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriver *r)
16331 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
16333 if (flags & NDR_SET_VALUES) {
16334 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16336 if (flags & NDR_IN) {
16337 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
16339 ndr_print_ptr(ndr, "servername", r->in.servername);
16341 if (r->in.servername) {
16342 ndr_print_string(ndr, "servername", r->in.servername);
16345 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
16347 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
16351 if (flags & NDR_OUT) {
16352 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
16354 ndr_print_WERROR(ndr, "result", r->out.result);
16360 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDrivers *r)
16362 if (flags & NDR_IN) {
16363 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
16364 if (r->in.server) {
16365 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16366 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16367 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16368 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16370 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
16371 if (r->in.environment) {
16372 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
16373 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16374 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
16375 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16377 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16378 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
16379 if (r->in.buffer) {
16380 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
16382 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
16384 if (flags & NDR_OUT) {
16385 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
16387 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
16389 if (r->out.needed == NULL) {
16390 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16392 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
16393 if (r->out.count == NULL) {
16394 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16396 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
16397 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16399 return NDR_ERR_SUCCESS;
16402 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDrivers *r)
16404 uint32_t _ptr_server;
16405 uint32_t _ptr_environment;
16406 uint32_t _ptr_buffer;
16407 uint32_t _ptr_info;
16408 TALLOC_CTX *_mem_save_server_0;
16409 TALLOC_CTX *_mem_save_environment_0;
16410 TALLOC_CTX *_mem_save_buffer_0;
16411 TALLOC_CTX *_mem_save_info_0;
16412 TALLOC_CTX *_mem_save_needed_0;
16413 TALLOC_CTX *_mem_save_count_0;
16414 if (flags & NDR_IN) {
16415 ZERO_STRUCT(r->out);
16417 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
16419 NDR_PULL_ALLOC(ndr, r->in.server);
16421 r->in.server = NULL;
16423 if (r->in.server) {
16424 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
16425 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
16426 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
16427 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
16428 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
16429 return 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));
16431 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
16432 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
16433 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
16435 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
16436 if (_ptr_environment) {
16437 NDR_PULL_ALLOC(ndr, r->in.environment);
16439 r->in.environment = NULL;
16441 if (r->in.environment) {
16442 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
16443 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
16444 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
16445 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
16446 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
16447 return 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));
16449 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
16450 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
16451 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
16453 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16454 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
16456 NDR_PULL_ALLOC(ndr, r->in.buffer);
16458 r->in.buffer = NULL;
16460 if (r->in.buffer) {
16461 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
16462 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
16463 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
16464 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
16466 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
16467 NDR_PULL_ALLOC(ndr, r->out.needed);
16468 ZERO_STRUCTP(r->out.needed);
16469 NDR_PULL_ALLOC(ndr, r->out.count);
16470 ZERO_STRUCTP(r->out.count);
16472 if (flags & NDR_OUT) {
16473 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
16475 NDR_PULL_ALLOC(ndr, r->out.info);
16477 r->out.info = NULL;
16480 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16481 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
16482 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
16483 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
16485 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16486 NDR_PULL_ALLOC(ndr, r->out.needed);
16488 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
16489 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
16490 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
16491 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
16492 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16493 NDR_PULL_ALLOC(ndr, r->out.count);
16495 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
16496 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
16497 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
16498 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
16499 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16501 return NDR_ERR_SUCCESS;
16504 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDrivers *r)
16506 uint32_t cntr_info_0;
16507 if (flags & NDR_IN) {
16508 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16509 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
16511 if (flags & NDR_OUT) {
16512 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16513 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
16514 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
16516 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16517 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
16520 return NDR_ERR_SUCCESS;
16523 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDrivers *r)
16525 uint32_t cntr_info_0;
16526 TALLOC_CTX *_mem_save_info_0;
16527 if (flags & NDR_IN) {
16528 ZERO_STRUCT(r->out);
16530 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16531 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
16533 if (flags & NDR_OUT) {
16534 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
16535 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16536 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
16537 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16538 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
16539 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
16541 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16542 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
16544 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
16546 return NDR_ERR_SUCCESS;
16549 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDrivers *r)
16551 uint32_t cntr_info_1;
16552 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
16554 if (flags & NDR_SET_VALUES) {
16555 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16557 if (flags & NDR_IN) {
16558 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
16560 ndr_print_ptr(ndr, "server", r->in.server);
16562 if (r->in.server) {
16563 ndr_print_string(ndr, "server", r->in.server);
16566 ndr_print_ptr(ndr, "environment", r->in.environment);
16568 if (r->in.environment) {
16569 ndr_print_string(ndr, "environment", r->in.environment);
16572 ndr_print_uint32(ndr, "level", r->in.level);
16573 ndr_print_ptr(ndr, "buffer", r->in.buffer);
16575 if (r->in.buffer) {
16576 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
16579 ndr_print_uint32(ndr, "offered", r->in.offered);
16582 if (flags & NDR_OUT) {
16583 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
16585 ndr_print_ptr(ndr, "count", r->out.count);
16587 ndr_print_uint32(ndr, "count", *r->out.count);
16589 ndr_print_ptr(ndr, "info", r->out.info);
16592 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
16594 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
16596 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
16597 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
16598 ndr_print_spoolss_DriverInfo(ndr, "info", &r->out.info[cntr_info_1]);
16605 ndr_print_ptr(ndr, "needed", r->out.needed);
16607 ndr_print_uint32(ndr, "needed", *r->out.needed);
16609 ndr_print_WERROR(ndr, "result", r->out.result);
16615 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver *r)
16617 if (flags & NDR_IN) {
16619 if (flags & NDR_OUT) {
16620 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16622 return NDR_ERR_SUCCESS;
16625 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver *r)
16627 if (flags & NDR_IN) {
16629 if (flags & NDR_OUT) {
16630 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16632 return NDR_ERR_SUCCESS;
16635 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver *r)
16637 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
16639 if (flags & NDR_SET_VALUES) {
16640 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16642 if (flags & NDR_IN) {
16643 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
16647 if (flags & NDR_OUT) {
16648 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
16650 ndr_print_WERROR(ndr, "result", r->out.result);
16656 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
16658 if (flags & NDR_IN) {
16659 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
16660 if (r->in.server) {
16661 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16662 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16663 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16664 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16666 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
16667 if (r->in.environment) {
16668 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
16669 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16670 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
16671 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16673 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16674 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
16675 if (r->in.buffer) {
16676 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
16678 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
16680 if (flags & NDR_OUT) {
16681 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
16684 struct ndr_push *_ndr_info;
16685 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
16686 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
16687 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
16688 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
16691 if (r->out.needed == NULL) {
16692 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16694 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
16695 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16697 return NDR_ERR_SUCCESS;
16700 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverDirectory *r)
16702 uint32_t _ptr_server;
16703 uint32_t _ptr_environment;
16704 uint32_t _ptr_buffer;
16705 uint32_t _ptr_info;
16706 TALLOC_CTX *_mem_save_server_0;
16707 TALLOC_CTX *_mem_save_environment_0;
16708 TALLOC_CTX *_mem_save_buffer_0;
16709 TALLOC_CTX *_mem_save_info_0;
16710 TALLOC_CTX *_mem_save_needed_0;
16711 if (flags & NDR_IN) {
16712 ZERO_STRUCT(r->out);
16714 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
16716 NDR_PULL_ALLOC(ndr, r->in.server);
16718 r->in.server = NULL;
16720 if (r->in.server) {
16721 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
16722 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
16723 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
16724 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
16725 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
16726 return 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));
16728 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
16729 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
16730 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
16732 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
16733 if (_ptr_environment) {
16734 NDR_PULL_ALLOC(ndr, r->in.environment);
16736 r->in.environment = NULL;
16738 if (r->in.environment) {
16739 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
16740 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
16741 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
16742 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
16743 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
16744 return 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));
16746 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
16747 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
16748 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
16750 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16751 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
16753 NDR_PULL_ALLOC(ndr, r->in.buffer);
16755 r->in.buffer = NULL;
16757 if (r->in.buffer) {
16758 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
16759 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
16760 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
16761 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
16763 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
16764 NDR_PULL_ALLOC(ndr, r->out.needed);
16765 ZERO_STRUCTP(r->out.needed);
16767 if (flags & NDR_OUT) {
16768 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
16770 NDR_PULL_ALLOC(ndr, r->out.info);
16772 r->out.info = NULL;
16775 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16776 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
16778 struct ndr_pull *_ndr_info;
16779 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
16780 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
16781 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
16782 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
16784 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
16786 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16787 NDR_PULL_ALLOC(ndr, r->out.needed);
16789 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
16790 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
16791 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
16792 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
16793 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16795 return NDR_ERR_SUCCESS;
16798 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
16800 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
16802 if (flags & NDR_SET_VALUES) {
16803 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16805 if (flags & NDR_IN) {
16806 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
16808 ndr_print_ptr(ndr, "server", r->in.server);
16810 if (r->in.server) {
16811 ndr_print_string(ndr, "server", r->in.server);
16814 ndr_print_ptr(ndr, "environment", r->in.environment);
16816 if (r->in.environment) {
16817 ndr_print_string(ndr, "environment", r->in.environment);
16820 ndr_print_uint32(ndr, "level", r->in.level);
16821 ndr_print_ptr(ndr, "buffer", r->in.buffer);
16823 if (r->in.buffer) {
16824 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
16827 ndr_print_uint32(ndr, "offered", r->in.offered);
16830 if (flags & NDR_OUT) {
16831 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
16833 ndr_print_ptr(ndr, "info", r->out.info);
16836 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
16837 ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
16840 ndr_print_ptr(ndr, "needed", r->out.needed);
16842 ndr_print_uint32(ndr, "needed", *r->out.needed);
16844 ndr_print_WERROR(ndr, "result", r->out.result);
16850 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriver *r)
16852 if (flags & NDR_IN) {
16853 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
16854 if (r->in.server) {
16855 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16856 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16857 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16858 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16860 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
16861 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16862 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
16863 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16864 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
16865 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16866 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
16867 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16869 if (flags & NDR_OUT) {
16870 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16872 return NDR_ERR_SUCCESS;
16875 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriver *r)
16877 uint32_t _ptr_server;
16878 TALLOC_CTX *_mem_save_server_0;
16879 if (flags & NDR_IN) {
16880 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
16882 NDR_PULL_ALLOC(ndr, r->in.server);
16884 r->in.server = NULL;
16886 if (r->in.server) {
16887 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
16888 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
16889 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
16890 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
16891 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
16892 return 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));
16894 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
16895 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
16896 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
16898 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
16899 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
16900 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
16901 return 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));
16903 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
16904 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
16905 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
16906 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
16907 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
16908 return 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));
16910 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
16911 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
16913 if (flags & NDR_OUT) {
16914 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16916 return NDR_ERR_SUCCESS;
16919 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriver *r)
16921 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
16923 if (flags & NDR_SET_VALUES) {
16924 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16926 if (flags & NDR_IN) {
16927 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
16929 ndr_print_ptr(ndr, "server", r->in.server);
16931 if (r->in.server) {
16932 ndr_print_string(ndr, "server", r->in.server);
16935 ndr_print_string(ndr, "architecture", r->in.architecture);
16936 ndr_print_string(ndr, "driver", r->in.driver);
16939 if (flags & NDR_OUT) {
16940 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
16942 ndr_print_WERROR(ndr, "result", r->out.result);
16948 static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProcessor *r)
16950 if (flags & NDR_IN) {
16951 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
16952 if (r->in.server) {
16953 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16954 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16955 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16956 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16958 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
16959 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16960 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
16961 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16962 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
16963 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16964 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
16965 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));
16966 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
16967 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16968 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
16969 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));
16971 if (flags & NDR_OUT) {
16972 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16974 return NDR_ERR_SUCCESS;
16977 static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProcessor *r)
16979 uint32_t _ptr_server;
16980 TALLOC_CTX *_mem_save_server_0;
16981 if (flags & NDR_IN) {
16982 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
16984 NDR_PULL_ALLOC(ndr, r->in.server);
16986 r->in.server = NULL;
16988 if (r->in.server) {
16989 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
16990 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
16991 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
16992 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
16993 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
16994 return 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));
16996 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
16997 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
16998 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
17000 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
17001 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
17002 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
17003 return 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));
17005 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
17006 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
17007 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
17008 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
17009 if (ndr_get_array_length(ndr, &r->in.path_name) > ndr_get_array_size(ndr, &r->in.path_name)) {
17010 return 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));
17012 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t)));
17013 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));
17014 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
17015 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
17016 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
17017 return 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));
17019 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
17020 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));
17022 if (flags & NDR_OUT) {
17023 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17025 return NDR_ERR_SUCCESS;
17028 _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProcessor *r)
17030 ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
17032 if (flags & NDR_SET_VALUES) {
17033 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17035 if (flags & NDR_IN) {
17036 ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
17038 ndr_print_ptr(ndr, "server", r->in.server);
17040 if (r->in.server) {
17041 ndr_print_string(ndr, "server", r->in.server);
17044 ndr_print_string(ndr, "architecture", r->in.architecture);
17045 ndr_print_string(ndr, "path_name", r->in.path_name);
17046 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
17049 if (flags & NDR_OUT) {
17050 ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
17052 ndr_print_WERROR(ndr, "result", r->out.result);
17058 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcessors *r)
17060 if (flags & NDR_IN) {
17061 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
17062 if (r->in.servername) {
17063 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
17064 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17065 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
17066 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17068 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
17069 if (r->in.environment) {
17070 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
17071 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17072 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
17073 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17075 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
17076 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
17077 if (r->in.buffer) {
17078 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
17080 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
17082 if (flags & NDR_OUT) {
17083 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
17085 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
17087 if (r->out.needed == NULL) {
17088 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17090 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
17091 if (r->out.count == NULL) {
17092 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17094 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
17095 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17097 return NDR_ERR_SUCCESS;
17100 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessors *r)
17102 uint32_t _ptr_servername;
17103 uint32_t _ptr_environment;
17104 uint32_t _ptr_buffer;
17105 uint32_t _ptr_info;
17106 TALLOC_CTX *_mem_save_servername_0;
17107 TALLOC_CTX *_mem_save_environment_0;
17108 TALLOC_CTX *_mem_save_buffer_0;
17109 TALLOC_CTX *_mem_save_info_0;
17110 TALLOC_CTX *_mem_save_needed_0;
17111 TALLOC_CTX *_mem_save_count_0;
17112 if (flags & NDR_IN) {
17113 ZERO_STRUCT(r->out);
17115 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
17116 if (_ptr_servername) {
17117 NDR_PULL_ALLOC(ndr, r->in.servername);
17119 r->in.servername = NULL;
17121 if (r->in.servername) {
17122 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
17123 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
17124 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
17125 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
17126 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
17127 return 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));
17129 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
17130 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
17131 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
17133 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
17134 if (_ptr_environment) {
17135 NDR_PULL_ALLOC(ndr, r->in.environment);
17137 r->in.environment = NULL;
17139 if (r->in.environment) {
17140 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
17141 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
17142 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
17143 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
17144 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
17145 return 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));
17147 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
17148 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
17149 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
17151 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
17152 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
17154 NDR_PULL_ALLOC(ndr, r->in.buffer);
17156 r->in.buffer = NULL;
17158 if (r->in.buffer) {
17159 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
17160 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
17161 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
17162 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
17164 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
17165 NDR_PULL_ALLOC(ndr, r->out.needed);
17166 ZERO_STRUCTP(r->out.needed);
17167 NDR_PULL_ALLOC(ndr, r->out.count);
17168 ZERO_STRUCTP(r->out.count);
17170 if (flags & NDR_OUT) {
17171 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
17173 NDR_PULL_ALLOC(ndr, r->out.info);
17175 r->out.info = NULL;
17178 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
17179 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
17180 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
17181 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
17183 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17184 NDR_PULL_ALLOC(ndr, r->out.needed);
17186 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
17187 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
17188 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
17189 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
17190 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17191 NDR_PULL_ALLOC(ndr, r->out.count);
17193 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
17194 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
17195 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
17196 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
17197 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17199 return NDR_ERR_SUCCESS;
17202 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcessors *r)
17204 uint32_t cntr_info_0;
17205 if (flags & NDR_IN) {
17206 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
17207 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
17209 if (flags & NDR_OUT) {
17210 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
17211 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
17212 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
17214 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
17215 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
17218 return NDR_ERR_SUCCESS;
17221 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessors *r)
17223 uint32_t cntr_info_0;
17224 TALLOC_CTX *_mem_save_info_0;
17225 if (flags & NDR_IN) {
17226 ZERO_STRUCT(r->out);
17228 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
17229 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
17231 if (flags & NDR_OUT) {
17232 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
17233 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
17234 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
17235 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
17236 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
17237 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
17239 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
17240 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
17242 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
17244 return NDR_ERR_SUCCESS;
17247 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcessors *r)
17249 uint32_t cntr_info_1;
17250 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
17252 if (flags & NDR_SET_VALUES) {
17253 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17255 if (flags & NDR_IN) {
17256 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
17258 ndr_print_ptr(ndr, "servername", r->in.servername);
17260 if (r->in.servername) {
17261 ndr_print_string(ndr, "servername", r->in.servername);
17264 ndr_print_ptr(ndr, "environment", r->in.environment);
17266 if (r->in.environment) {
17267 ndr_print_string(ndr, "environment", r->in.environment);
17270 ndr_print_uint32(ndr, "level", r->in.level);
17271 ndr_print_ptr(ndr, "buffer", r->in.buffer);
17273 if (r->in.buffer) {
17274 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
17277 ndr_print_uint32(ndr, "offered", r->in.offered);
17280 if (flags & NDR_OUT) {
17281 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
17283 ndr_print_ptr(ndr, "count", r->out.count);
17285 ndr_print_uint32(ndr, "count", *r->out.count);
17287 ndr_print_ptr(ndr, "info", r->out.info);
17290 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
17292 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
17294 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
17295 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
17296 ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &r->out.info[cntr_info_1]);
17303 ndr_print_ptr(ndr, "needed", r->out.needed);
17305 ndr_print_uint32(ndr, "needed", *r->out.needed);
17307 ndr_print_WERROR(ndr, "result", r->out.result);
17313 static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
17315 if (flags & NDR_IN) {
17316 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
17317 if (r->in.server) {
17318 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
17319 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17320 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
17321 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17323 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
17324 if (r->in.environment) {
17325 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
17326 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17327 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
17328 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17330 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
17331 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
17332 if (r->in.buffer) {
17333 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
17335 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
17337 if (flags & NDR_OUT) {
17338 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
17341 struct ndr_push *_ndr_info;
17342 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
17343 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
17344 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
17345 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
17348 if (r->out.needed == NULL) {
17349 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17351 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
17352 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17354 return NDR_ERR_SUCCESS;
17357 static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrintProcessorDirectory *r)
17359 uint32_t _ptr_server;
17360 uint32_t _ptr_environment;
17361 uint32_t _ptr_buffer;
17362 uint32_t _ptr_info;
17363 TALLOC_CTX *_mem_save_server_0;
17364 TALLOC_CTX *_mem_save_environment_0;
17365 TALLOC_CTX *_mem_save_buffer_0;
17366 TALLOC_CTX *_mem_save_info_0;
17367 TALLOC_CTX *_mem_save_needed_0;
17368 if (flags & NDR_IN) {
17369 ZERO_STRUCT(r->out);
17371 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
17373 NDR_PULL_ALLOC(ndr, r->in.server);
17375 r->in.server = NULL;
17377 if (r->in.server) {
17378 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
17379 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
17380 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
17381 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
17382 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
17383 return 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));
17385 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
17386 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
17387 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
17389 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
17390 if (_ptr_environment) {
17391 NDR_PULL_ALLOC(ndr, r->in.environment);
17393 r->in.environment = NULL;
17395 if (r->in.environment) {
17396 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
17397 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
17398 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
17399 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
17400 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
17401 return 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));
17403 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
17404 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
17405 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
17407 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
17408 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
17410 NDR_PULL_ALLOC(ndr, r->in.buffer);
17412 r->in.buffer = NULL;
17414 if (r->in.buffer) {
17415 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
17416 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
17417 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
17418 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
17420 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
17421 NDR_PULL_ALLOC(ndr, r->out.needed);
17422 ZERO_STRUCTP(r->out.needed);
17424 if (flags & NDR_OUT) {
17425 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
17427 NDR_PULL_ALLOC(ndr, r->out.info);
17429 r->out.info = NULL;
17432 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
17433 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
17435 struct ndr_pull *_ndr_info;
17436 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
17437 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
17438 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
17439 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
17441 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
17443 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17444 NDR_PULL_ALLOC(ndr, r->out.needed);
17446 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
17447 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
17448 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
17449 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
17450 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17452 return NDR_ERR_SUCCESS;
17455 _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
17457 ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
17459 if (flags & NDR_SET_VALUES) {
17460 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17462 if (flags & NDR_IN) {
17463 ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
17465 ndr_print_ptr(ndr, "server", r->in.server);
17467 if (r->in.server) {
17468 ndr_print_string(ndr, "server", r->in.server);
17471 ndr_print_ptr(ndr, "environment", r->in.environment);
17473 if (r->in.environment) {
17474 ndr_print_string(ndr, "environment", r->in.environment);
17477 ndr_print_uint32(ndr, "level", r->in.level);
17478 ndr_print_ptr(ndr, "buffer", r->in.buffer);
17480 if (r->in.buffer) {
17481 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
17484 ndr_print_uint32(ndr, "offered", r->in.offered);
17487 if (flags & NDR_OUT) {
17488 ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
17490 ndr_print_ptr(ndr, "info", r->out.info);
17493 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
17494 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr, "info", r->out.info);
17497 ndr_print_ptr(ndr, "needed", r->out.needed);
17499 ndr_print_uint32(ndr, "needed", *r->out.needed);
17501 ndr_print_WERROR(ndr, "result", r->out.result);
17507 static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartDocPrinter *r)
17509 if (flags & NDR_IN) {
17510 if (r->in.handle == NULL) {
17511 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17513 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17514 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
17515 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
17516 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
17518 if (flags & NDR_OUT) {
17519 if (r->out.job_id == NULL) {
17520 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17522 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
17523 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17525 return NDR_ERR_SUCCESS;
17528 static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartDocPrinter *r)
17530 TALLOC_CTX *_mem_save_handle_0;
17531 TALLOC_CTX *_mem_save_job_id_0;
17532 if (flags & NDR_IN) {
17533 ZERO_STRUCT(r->out);
17535 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17536 NDR_PULL_ALLOC(ndr, r->in.handle);
17538 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17539 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17540 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17541 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17542 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
17543 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
17544 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
17545 NDR_PULL_ALLOC(ndr, r->out.job_id);
17546 ZERO_STRUCTP(r->out.job_id);
17548 if (flags & NDR_OUT) {
17549 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17550 NDR_PULL_ALLOC(ndr, r->out.job_id);
17552 _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
17553 NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
17554 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
17555 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
17556 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17558 return NDR_ERR_SUCCESS;
17561 _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartDocPrinter *r)
17563 ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
17565 if (flags & NDR_SET_VALUES) {
17566 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17568 if (flags & NDR_IN) {
17569 ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
17571 ndr_print_ptr(ndr, "handle", r->in.handle);
17573 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17575 ndr_print_uint32(ndr, "level", r->in.level);
17576 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
17577 ndr_print_spoolss_DocumentInfo(ndr, "info", &r->in.info);
17580 if (flags & NDR_OUT) {
17581 ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
17583 ndr_print_ptr(ndr, "job_id", r->out.job_id);
17585 ndr_print_uint32(ndr, "job_id", *r->out.job_id);
17587 ndr_print_WERROR(ndr, "result", r->out.result);
17593 static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartPagePrinter *r)
17595 if (flags & NDR_IN) {
17596 if (r->in.handle == NULL) {
17597 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17599 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17601 if (flags & NDR_OUT) {
17602 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17604 return NDR_ERR_SUCCESS;
17607 static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartPagePrinter *r)
17609 TALLOC_CTX *_mem_save_handle_0;
17610 if (flags & NDR_IN) {
17611 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17612 NDR_PULL_ALLOC(ndr, r->in.handle);
17614 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17615 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17616 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17617 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17619 if (flags & NDR_OUT) {
17620 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17622 return NDR_ERR_SUCCESS;
17625 _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartPagePrinter *r)
17627 ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
17629 if (flags & NDR_SET_VALUES) {
17630 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17632 if (flags & NDR_IN) {
17633 ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
17635 ndr_print_ptr(ndr, "handle", r->in.handle);
17637 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17641 if (flags & NDR_OUT) {
17642 ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
17644 ndr_print_WERROR(ndr, "result", r->out.result);
17650 static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, int flags, const struct spoolss_WritePrinter *r)
17652 if (flags & NDR_IN) {
17653 if (r->in.handle == NULL) {
17654 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17656 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17657 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
17658 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
17660 if (flags & NDR_OUT) {
17661 if (r->out.num_written == NULL) {
17662 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17664 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_written));
17665 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17667 return NDR_ERR_SUCCESS;
17670 static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, int flags, struct spoolss_WritePrinter *r)
17672 TALLOC_CTX *_mem_save_handle_0;
17673 TALLOC_CTX *_mem_save_num_written_0;
17674 if (flags & NDR_IN) {
17675 ZERO_STRUCT(r->out);
17677 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17678 NDR_PULL_ALLOC(ndr, r->in.handle);
17680 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17681 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17682 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17683 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17684 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
17685 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
17686 NDR_PULL_ALLOC(ndr, r->out.num_written);
17687 ZERO_STRUCTP(r->out.num_written);
17689 if (flags & NDR_OUT) {
17690 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17691 NDR_PULL_ALLOC(ndr, r->out.num_written);
17693 _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
17694 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
17695 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
17696 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
17697 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17699 return NDR_ERR_SUCCESS;
17702 _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WritePrinter *r)
17704 ndr_print_struct(ndr, name, "spoolss_WritePrinter");
17706 if (flags & NDR_SET_VALUES) {
17707 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17709 if (flags & NDR_IN) {
17710 ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
17712 ndr_print_ptr(ndr, "handle", r->in.handle);
17714 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17716 ndr_print_DATA_BLOB(ndr, "data", r->in.data);
17717 ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
17720 if (flags & NDR_OUT) {
17721 ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
17723 ndr_print_ptr(ndr, "num_written", r->out.num_written);
17725 ndr_print_uint32(ndr, "num_written", *r->out.num_written);
17727 ndr_print_WERROR(ndr, "result", r->out.result);
17733 static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndPagePrinter *r)
17735 if (flags & NDR_IN) {
17736 if (r->in.handle == NULL) {
17737 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17739 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17741 if (flags & NDR_OUT) {
17742 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17744 return NDR_ERR_SUCCESS;
17747 static enum ndr_err_code ndr_pull_spoolss_EndPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndPagePrinter *r)
17749 TALLOC_CTX *_mem_save_handle_0;
17750 if (flags & NDR_IN) {
17751 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17752 NDR_PULL_ALLOC(ndr, r->in.handle);
17754 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17755 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17756 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17757 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17759 if (flags & NDR_OUT) {
17760 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17762 return NDR_ERR_SUCCESS;
17765 _PUBLIC_ void ndr_print_spoolss_EndPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndPagePrinter *r)
17767 ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
17769 if (flags & NDR_SET_VALUES) {
17770 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17772 if (flags & NDR_IN) {
17773 ndr_print_struct(ndr, "in", "spoolss_EndPagePrinter");
17775 ndr_print_ptr(ndr, "handle", r->in.handle);
17777 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17781 if (flags & NDR_OUT) {
17782 ndr_print_struct(ndr, "out", "spoolss_EndPagePrinter");
17784 ndr_print_WERROR(ndr, "result", r->out.result);
17790 static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AbortPrinter *r)
17792 if (flags & NDR_IN) {
17793 if (r->in.handle == NULL) {
17794 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17796 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17798 if (flags & NDR_OUT) {
17799 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17801 return NDR_ERR_SUCCESS;
17804 static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AbortPrinter *r)
17806 TALLOC_CTX *_mem_save_handle_0;
17807 if (flags & NDR_IN) {
17808 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17809 NDR_PULL_ALLOC(ndr, r->in.handle);
17811 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17812 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17813 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17814 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17816 if (flags & NDR_OUT) {
17817 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17819 return NDR_ERR_SUCCESS;
17822 _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AbortPrinter *r)
17824 ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
17826 if (flags & NDR_SET_VALUES) {
17827 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17829 if (flags & NDR_IN) {
17830 ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
17832 ndr_print_ptr(ndr, "handle", r->in.handle);
17834 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17838 if (flags & NDR_OUT) {
17839 ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
17841 ndr_print_WERROR(ndr, "result", r->out.result);
17847 static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReadPrinter *r)
17849 if (flags & NDR_IN) {
17850 if (r->in.handle == NULL) {
17851 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17853 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17854 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
17856 if (flags & NDR_OUT) {
17857 if (r->out.data == NULL) {
17858 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17860 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
17861 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
17862 if (r->out._data_size == NULL) {
17863 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17865 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
17866 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17868 return NDR_ERR_SUCCESS;
17871 static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReadPrinter *r)
17873 TALLOC_CTX *_mem_save_handle_0;
17874 TALLOC_CTX *_mem_save__data_size_0;
17875 if (flags & NDR_IN) {
17876 ZERO_STRUCT(r->out);
17878 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17879 NDR_PULL_ALLOC(ndr, r->in.handle);
17881 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17882 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17883 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17884 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17885 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
17886 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
17887 memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
17888 NDR_PULL_ALLOC(ndr, r->out._data_size);
17889 ZERO_STRUCTP(r->out._data_size);
17891 if (flags & NDR_OUT) {
17892 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
17893 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17894 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
17896 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
17897 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17898 NDR_PULL_ALLOC(ndr, r->out._data_size);
17900 _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
17901 NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
17902 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
17903 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
17904 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17906 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_size));
17909 return NDR_ERR_SUCCESS;
17912 _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReadPrinter *r)
17914 ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
17916 if (flags & NDR_SET_VALUES) {
17917 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17919 if (flags & NDR_IN) {
17920 ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
17922 ndr_print_ptr(ndr, "handle", r->in.handle);
17924 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17926 ndr_print_uint32(ndr, "data_size", r->in.data_size);
17929 if (flags & NDR_OUT) {
17930 ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
17932 ndr_print_ptr(ndr, "data", r->out.data);
17934 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
17936 ndr_print_ptr(ndr, "_data_size", r->out._data_size);
17938 ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
17940 ndr_print_WERROR(ndr, "result", r->out.result);
17946 static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndDocPrinter *r)
17948 if (flags & NDR_IN) {
17949 if (r->in.handle == NULL) {
17950 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17952 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17954 if (flags & NDR_OUT) {
17955 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17957 return NDR_ERR_SUCCESS;
17960 static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndDocPrinter *r)
17962 TALLOC_CTX *_mem_save_handle_0;
17963 if (flags & NDR_IN) {
17964 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17965 NDR_PULL_ALLOC(ndr, r->in.handle);
17967 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17968 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17969 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17970 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17972 if (flags & NDR_OUT) {
17973 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17975 return NDR_ERR_SUCCESS;
17978 _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndDocPrinter *r)
17980 ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
17982 if (flags & NDR_SET_VALUES) {
17983 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17985 if (flags & NDR_IN) {
17986 ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
17988 ndr_print_ptr(ndr, "handle", r->in.handle);
17990 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17994 if (flags & NDR_OUT) {
17995 ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
17997 ndr_print_WERROR(ndr, "result", r->out.result);
18003 static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, int flags, const struct spoolss_AddJob *r)
18005 if (flags & NDR_IN) {
18006 if (r->in.handle == NULL) {
18007 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18009 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18010 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18011 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18012 if (r->in.buffer) {
18013 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18014 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
18016 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18018 if (flags & NDR_OUT) {
18019 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
18020 if (r->out.buffer) {
18021 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18022 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
18024 if (r->out.needed == NULL) {
18025 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18027 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18028 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18030 return NDR_ERR_SUCCESS;
18033 static enum ndr_err_code ndr_pull_spoolss_AddJob(struct ndr_pull *ndr, int flags, struct spoolss_AddJob *r)
18035 uint32_t _ptr_buffer;
18036 TALLOC_CTX *_mem_save_handle_0;
18037 TALLOC_CTX *_mem_save_buffer_0;
18038 TALLOC_CTX *_mem_save_needed_0;
18039 if (flags & NDR_IN) {
18040 ZERO_STRUCT(r->out);
18042 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18043 NDR_PULL_ALLOC(ndr, r->in.handle);
18045 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18046 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18047 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18048 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18049 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18050 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18052 NDR_PULL_ALLOC(ndr, r->in.buffer);
18054 r->in.buffer = NULL;
18056 if (r->in.buffer) {
18057 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18058 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18059 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
18060 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
18061 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
18062 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18064 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18065 NDR_PULL_ALLOC(ndr, r->out.needed);
18066 ZERO_STRUCTP(r->out.needed);
18067 if (r->in.buffer) {
18068 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
18071 if (flags & NDR_OUT) {
18072 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18074 NDR_PULL_ALLOC(ndr, r->out.buffer);
18076 r->out.buffer = NULL;
18078 if (r->out.buffer) {
18079 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18080 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
18081 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
18082 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
18083 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
18084 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18086 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18087 NDR_PULL_ALLOC(ndr, r->out.needed);
18089 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18090 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18091 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18092 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18093 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18094 if (r->out.buffer) {
18095 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
18098 return NDR_ERR_SUCCESS;
18101 _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r)
18103 ndr_print_struct(ndr, name, "spoolss_AddJob");
18105 if (flags & NDR_SET_VALUES) {
18106 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18108 if (flags & NDR_IN) {
18109 ndr_print_struct(ndr, "in", "spoolss_AddJob");
18111 ndr_print_ptr(ndr, "handle", r->in.handle);
18113 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18115 ndr_print_uint32(ndr, "level", r->in.level);
18116 ndr_print_ptr(ndr, "buffer", r->in.buffer);
18118 if (r->in.buffer) {
18119 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
18122 ndr_print_uint32(ndr, "offered", r->in.offered);
18125 if (flags & NDR_OUT) {
18126 ndr_print_struct(ndr, "out", "spoolss_AddJob");
18128 ndr_print_ptr(ndr, "buffer", r->out.buffer);
18130 if (r->out.buffer) {
18131 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
18134 ndr_print_ptr(ndr, "needed", r->out.needed);
18136 ndr_print_uint32(ndr, "needed", *r->out.needed);
18138 ndr_print_WERROR(ndr, "result", r->out.result);
18144 static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, int flags, const struct spoolss_ScheduleJob *r)
18146 if (flags & NDR_IN) {
18147 if (r->in.handle == NULL) {
18148 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18150 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18151 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
18153 if (flags & NDR_OUT) {
18154 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18156 return NDR_ERR_SUCCESS;
18159 static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, int flags, struct spoolss_ScheduleJob *r)
18161 TALLOC_CTX *_mem_save_handle_0;
18162 if (flags & NDR_IN) {
18163 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18164 NDR_PULL_ALLOC(ndr, r->in.handle);
18166 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18167 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18168 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18169 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18170 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.jobid));
18172 if (flags & NDR_OUT) {
18173 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18175 return NDR_ERR_SUCCESS;
18178 _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ScheduleJob *r)
18180 ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
18182 if (flags & NDR_SET_VALUES) {
18183 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18185 if (flags & NDR_IN) {
18186 ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
18188 ndr_print_ptr(ndr, "handle", r->in.handle);
18190 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18192 ndr_print_uint32(ndr, "jobid", r->in.jobid);
18195 if (flags & NDR_OUT) {
18196 ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
18198 ndr_print_WERROR(ndr, "result", r->out.result);
18204 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterData *r)
18206 if (flags & NDR_IN) {
18207 if (r->in.handle == NULL) {
18208 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18210 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18211 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
18212 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18213 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
18214 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));
18215 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18217 if (flags & NDR_OUT) {
18218 if (r->out.type == NULL) {
18219 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18221 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, *r->out.type));
18222 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
18223 if (r->out.needed == NULL) {
18224 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18226 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18227 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18229 return NDR_ERR_SUCCESS;
18232 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterData *r)
18234 TALLOC_CTX *_mem_save_handle_0;
18235 TALLOC_CTX *_mem_save_type_0;
18236 TALLOC_CTX *_mem_save_needed_0;
18237 if (flags & NDR_IN) {
18238 ZERO_STRUCT(r->out);
18240 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18241 NDR_PULL_ALLOC(ndr, r->in.handle);
18243 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18244 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18245 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18246 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18247 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
18248 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
18249 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
18250 return 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));
18252 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
18253 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));
18254 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18255 NDR_PULL_ALLOC(ndr, r->out.type);
18256 ZERO_STRUCTP(r->out.type);
18257 NDR_PULL_ALLOC(ndr, r->out.needed);
18258 ZERO_STRUCTP(r->out.needed);
18260 if (flags & NDR_OUT) {
18261 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18262 NDR_PULL_ALLOC(ndr, r->out.type);
18264 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
18265 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
18266 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->out.type));
18267 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
18268 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->out.data));
18269 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18270 NDR_PULL_ALLOC(ndr, r->out.needed);
18272 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18273 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18274 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18275 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18276 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18278 return NDR_ERR_SUCCESS;
18281 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterData *r)
18283 if (flags & NDR_IN) {
18284 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
18286 if (flags & NDR_OUT) {
18287 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.data, r->in.type));
18288 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
18290 return NDR_ERR_SUCCESS;
18293 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterData *r)
18295 if (flags & NDR_IN) {
18296 ZERO_STRUCT(r->out);
18298 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, &r->in.type));
18300 if (flags & NDR_OUT) {
18301 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.data, r->in.type));
18302 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
18304 return NDR_ERR_SUCCESS;
18307 _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterData *r)
18309 ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
18311 if (flags & NDR_SET_VALUES) {
18312 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18314 if (flags & NDR_IN) {
18315 ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
18317 ndr_print_ptr(ndr, "handle", r->in.handle);
18319 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18321 ndr_print_string(ndr, "value_name", r->in.value_name);
18322 ndr_print_uint32(ndr, "offered", r->in.offered);
18325 if (flags & NDR_OUT) {
18326 ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
18328 ndr_print_ptr(ndr, "type", r->out.type);
18330 ndr_print_spoolss_PrinterDataType(ndr, "type", *r->out.type);
18332 ndr_print_set_switch_value(ndr, &r->out.data, *r->out.type);
18333 ndr_print_spoolss_PrinterData(ndr, "data", &r->out.data);
18334 ndr_print_ptr(ndr, "needed", r->out.needed);
18336 ndr_print_uint32(ndr, "needed", *r->out.needed);
18338 ndr_print_WERROR(ndr, "result", r->out.result);
18344 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterData *r)
18346 if (flags & NDR_IN) {
18347 if (r->in.handle == NULL) {
18348 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18350 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18351 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
18352 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18353 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
18354 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));
18355 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
18356 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
18357 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
18359 if (flags & NDR_OUT) {
18360 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18362 return NDR_ERR_SUCCESS;
18365 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterData *r)
18367 if (flags & NDR_IN) {
18368 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
18370 if (flags & NDR_OUT) {
18371 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.data, r->in.type));
18372 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
18374 return NDR_ERR_SUCCESS;
18377 static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterData *r)
18379 TALLOC_CTX *_mem_save_handle_0;
18380 if (flags & NDR_IN) {
18381 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18382 NDR_PULL_ALLOC(ndr, r->in.handle);
18384 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18385 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18386 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18387 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18388 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
18389 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
18390 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
18391 return 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));
18393 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
18394 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));
18395 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, &r->in.type));
18397 struct ndr_pull *_ndr_data;
18398 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
18399 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
18400 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
18401 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
18403 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
18405 if (flags & NDR_OUT) {
18406 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18408 return NDR_ERR_SUCCESS;
18411 _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r)
18413 ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
18415 if (flags & NDR_SET_VALUES) {
18416 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18418 if (flags & NDR_IN) {
18419 ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
18421 ndr_print_ptr(ndr, "handle", r->in.handle);
18423 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18425 ndr_print_string(ndr, "value_name", r->in.value_name);
18426 ndr_print_spoolss_PrinterDataType(ndr, "type", r->in.type);
18427 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
18428 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
18429 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);
18432 if (flags & NDR_OUT) {
18433 ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
18435 ndr_print_WERROR(ndr, "result", r->out.result);
18441 static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, int flags, const struct spoolss_WaitForPrinterChange *r)
18443 if (flags & NDR_IN) {
18445 if (flags & NDR_OUT) {
18446 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18448 return NDR_ERR_SUCCESS;
18451 static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, int flags, struct spoolss_WaitForPrinterChange *r)
18453 if (flags & NDR_IN) {
18455 if (flags & NDR_OUT) {
18456 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18458 return NDR_ERR_SUCCESS;
18461 _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r)
18463 ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
18465 if (flags & NDR_SET_VALUES) {
18466 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18468 if (flags & NDR_IN) {
18469 ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
18473 if (flags & NDR_OUT) {
18474 ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
18476 ndr_print_WERROR(ndr, "result", r->out.result);
18482 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ClosePrinter *r)
18484 if (flags & NDR_IN) {
18485 if (r->in.handle == NULL) {
18486 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18488 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18490 if (flags & NDR_OUT) {
18491 if (r->out.handle == NULL) {
18492 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18494 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
18495 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18497 return NDR_ERR_SUCCESS;
18500 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ClosePrinter *r)
18502 TALLOC_CTX *_mem_save_handle_0;
18503 if (flags & NDR_IN) {
18504 ZERO_STRUCT(r->out);
18506 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18507 NDR_PULL_ALLOC(ndr, r->in.handle);
18509 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18510 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18511 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18512 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18513 NDR_PULL_ALLOC(ndr, r->out.handle);
18514 *r->out.handle = *r->in.handle;
18516 if (flags & NDR_OUT) {
18517 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18518 NDR_PULL_ALLOC(ndr, r->out.handle);
18520 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18521 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
18522 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
18523 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18524 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18526 return NDR_ERR_SUCCESS;
18529 _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ClosePrinter *r)
18531 ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
18533 if (flags & NDR_SET_VALUES) {
18534 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18536 if (flags & NDR_IN) {
18537 ndr_print_struct(ndr, "in", "spoolss_ClosePrinter");
18539 ndr_print_ptr(ndr, "handle", r->in.handle);
18541 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18545 if (flags & NDR_OUT) {
18546 ndr_print_struct(ndr, "out", "spoolss_ClosePrinter");
18548 ndr_print_ptr(ndr, "handle", r->out.handle);
18550 ndr_print_policy_handle(ndr, "handle", r->out.handle);
18552 ndr_print_WERROR(ndr, "result", r->out.result);
18558 static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, int flags, const struct spoolss_AddForm *r)
18560 if (flags & NDR_IN) {
18561 if (r->in.handle == NULL) {
18562 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18564 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18565 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18566 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
18567 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
18569 if (flags & NDR_OUT) {
18570 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18572 return NDR_ERR_SUCCESS;
18575 static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, int flags, struct spoolss_AddForm *r)
18577 TALLOC_CTX *_mem_save_handle_0;
18578 if (flags & NDR_IN) {
18579 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18580 NDR_PULL_ALLOC(ndr, r->in.handle);
18582 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18583 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18584 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18585 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18586 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18587 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
18588 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
18590 if (flags & NDR_OUT) {
18591 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18593 return NDR_ERR_SUCCESS;
18596 _PUBLIC_ void ndr_print_spoolss_AddForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddForm *r)
18598 ndr_print_struct(ndr, name, "spoolss_AddForm");
18600 if (flags & NDR_SET_VALUES) {
18601 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18603 if (flags & NDR_IN) {
18604 ndr_print_struct(ndr, "in", "spoolss_AddForm");
18606 ndr_print_ptr(ndr, "handle", r->in.handle);
18608 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18610 ndr_print_uint32(ndr, "level", r->in.level);
18611 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
18612 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
18615 if (flags & NDR_OUT) {
18616 ndr_print_struct(ndr, "out", "spoolss_AddForm");
18618 ndr_print_WERROR(ndr, "result", r->out.result);
18624 static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, int flags, const struct spoolss_DeleteForm *r)
18626 if (flags & NDR_IN) {
18627 if (r->in.handle == NULL) {
18628 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18630 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18631 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
18632 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18633 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
18634 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));
18636 if (flags & NDR_OUT) {
18637 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18639 return NDR_ERR_SUCCESS;
18642 static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, int flags, struct spoolss_DeleteForm *r)
18644 TALLOC_CTX *_mem_save_handle_0;
18645 if (flags & NDR_IN) {
18646 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18647 NDR_PULL_ALLOC(ndr, r->in.handle);
18649 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18650 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18651 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18652 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18653 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
18654 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
18655 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
18656 return 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));
18658 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
18659 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));
18661 if (flags & NDR_OUT) {
18662 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18664 return NDR_ERR_SUCCESS;
18667 _PUBLIC_ void ndr_print_spoolss_DeleteForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteForm *r)
18669 ndr_print_struct(ndr, name, "spoolss_DeleteForm");
18671 if (flags & NDR_SET_VALUES) {
18672 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18674 if (flags & NDR_IN) {
18675 ndr_print_struct(ndr, "in", "spoolss_DeleteForm");
18677 ndr_print_ptr(ndr, "handle", r->in.handle);
18679 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18681 ndr_print_string(ndr, "form_name", r->in.form_name);
18684 if (flags & NDR_OUT) {
18685 ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
18687 ndr_print_WERROR(ndr, "result", r->out.result);
18693 static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, int flags, const struct spoolss_GetForm *r)
18695 if (flags & NDR_IN) {
18696 if (r->in.handle == NULL) {
18697 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18699 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18700 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
18701 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18702 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
18703 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));
18704 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18705 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18706 if (r->in.buffer) {
18707 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18709 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18711 if (flags & NDR_OUT) {
18712 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18715 struct ndr_push *_ndr_info;
18716 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
18717 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
18718 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
18719 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
18722 if (r->out.needed == NULL) {
18723 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18725 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18726 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18728 return NDR_ERR_SUCCESS;
18731 static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, int flags, struct spoolss_GetForm *r)
18733 uint32_t _ptr_buffer;
18734 uint32_t _ptr_info;
18735 TALLOC_CTX *_mem_save_handle_0;
18736 TALLOC_CTX *_mem_save_buffer_0;
18737 TALLOC_CTX *_mem_save_info_0;
18738 TALLOC_CTX *_mem_save_needed_0;
18739 if (flags & NDR_IN) {
18740 ZERO_STRUCT(r->out);
18742 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18743 NDR_PULL_ALLOC(ndr, r->in.handle);
18745 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18746 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18747 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18748 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18749 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
18750 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
18751 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
18752 return 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));
18754 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
18755 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));
18756 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18757 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18759 NDR_PULL_ALLOC(ndr, r->in.buffer);
18761 r->in.buffer = NULL;
18763 if (r->in.buffer) {
18764 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18765 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18766 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18767 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18769 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18770 NDR_PULL_ALLOC(ndr, r->out.needed);
18771 ZERO_STRUCTP(r->out.needed);
18773 if (flags & NDR_OUT) {
18774 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18776 NDR_PULL_ALLOC(ndr, r->out.info);
18778 r->out.info = NULL;
18781 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18782 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18784 struct ndr_pull *_ndr_info;
18785 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
18786 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
18787 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
18788 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
18790 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18792 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18793 NDR_PULL_ALLOC(ndr, r->out.needed);
18795 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18796 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18797 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18798 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18799 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18801 return NDR_ERR_SUCCESS;
18804 _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetForm *r)
18806 ndr_print_struct(ndr, name, "spoolss_GetForm");
18808 if (flags & NDR_SET_VALUES) {
18809 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18811 if (flags & NDR_IN) {
18812 ndr_print_struct(ndr, "in", "spoolss_GetForm");
18814 ndr_print_ptr(ndr, "handle", r->in.handle);
18816 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18818 ndr_print_string(ndr, "form_name", r->in.form_name);
18819 ndr_print_uint32(ndr, "level", r->in.level);
18820 ndr_print_ptr(ndr, "buffer", r->in.buffer);
18822 if (r->in.buffer) {
18823 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
18826 ndr_print_uint32(ndr, "offered", r->in.offered);
18829 if (flags & NDR_OUT) {
18830 ndr_print_struct(ndr, "out", "spoolss_GetForm");
18832 ndr_print_ptr(ndr, "info", r->out.info);
18835 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
18836 ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
18839 ndr_print_ptr(ndr, "needed", r->out.needed);
18841 ndr_print_uint32(ndr, "needed", *r->out.needed);
18843 ndr_print_WERROR(ndr, "result", r->out.result);
18849 static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, int flags, const struct spoolss_SetForm *r)
18851 if (flags & NDR_IN) {
18852 if (r->in.handle == NULL) {
18853 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18855 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18856 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
18857 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18858 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
18859 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));
18860 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18861 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
18862 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
18864 if (flags & NDR_OUT) {
18865 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18867 return NDR_ERR_SUCCESS;
18870 static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, int flags, struct spoolss_SetForm *r)
18872 TALLOC_CTX *_mem_save_handle_0;
18873 if (flags & NDR_IN) {
18874 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18875 NDR_PULL_ALLOC(ndr, r->in.handle);
18877 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18878 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18879 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18880 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18881 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
18882 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
18883 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
18884 return 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));
18886 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
18887 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));
18888 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18889 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
18890 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
18892 if (flags & NDR_OUT) {
18893 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18895 return NDR_ERR_SUCCESS;
18898 _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetForm *r)
18900 ndr_print_struct(ndr, name, "spoolss_SetForm");
18902 if (flags & NDR_SET_VALUES) {
18903 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18905 if (flags & NDR_IN) {
18906 ndr_print_struct(ndr, "in", "spoolss_SetForm");
18908 ndr_print_ptr(ndr, "handle", r->in.handle);
18910 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18912 ndr_print_string(ndr, "form_name", r->in.form_name);
18913 ndr_print_uint32(ndr, "level", r->in.level);
18914 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
18915 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
18918 if (flags & NDR_OUT) {
18919 ndr_print_struct(ndr, "out", "spoolss_SetForm");
18921 ndr_print_WERROR(ndr, "result", r->out.result);
18927 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct _spoolss_EnumForms *r)
18929 if (flags & NDR_IN) {
18930 if (r->in.handle == NULL) {
18931 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18933 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18934 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18935 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18936 if (r->in.buffer) {
18937 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18939 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18941 if (flags & NDR_OUT) {
18942 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18944 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
18946 if (r->out.needed == NULL) {
18947 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18949 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18950 if (r->out.count == NULL) {
18951 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18953 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
18954 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18956 return NDR_ERR_SUCCESS;
18959 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct _spoolss_EnumForms *r)
18961 uint32_t _ptr_buffer;
18962 uint32_t _ptr_info;
18963 TALLOC_CTX *_mem_save_handle_0;
18964 TALLOC_CTX *_mem_save_buffer_0;
18965 TALLOC_CTX *_mem_save_info_0;
18966 TALLOC_CTX *_mem_save_needed_0;
18967 TALLOC_CTX *_mem_save_count_0;
18968 if (flags & NDR_IN) {
18969 ZERO_STRUCT(r->out);
18971 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18972 NDR_PULL_ALLOC(ndr, r->in.handle);
18974 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18975 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18976 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18977 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18978 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18979 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18981 NDR_PULL_ALLOC(ndr, r->in.buffer);
18983 r->in.buffer = NULL;
18985 if (r->in.buffer) {
18986 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18987 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18988 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18989 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18991 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18992 NDR_PULL_ALLOC(ndr, r->out.needed);
18993 ZERO_STRUCTP(r->out.needed);
18994 NDR_PULL_ALLOC(ndr, r->out.count);
18995 ZERO_STRUCTP(r->out.count);
18997 if (flags & NDR_OUT) {
18998 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19000 NDR_PULL_ALLOC(ndr, r->out.info);
19002 r->out.info = NULL;
19005 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19006 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19007 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
19008 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19010 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19011 NDR_PULL_ALLOC(ndr, r->out.needed);
19013 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19014 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19015 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19016 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19017 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19018 NDR_PULL_ALLOC(ndr, r->out.count);
19020 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
19021 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
19022 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
19023 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
19024 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19026 return NDR_ERR_SUCCESS;
19029 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct __spoolss_EnumForms *r)
19031 uint32_t cntr_info_0;
19032 if (flags & NDR_IN) {
19033 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19034 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
19036 if (flags & NDR_OUT) {
19037 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19038 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19039 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19041 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19042 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19045 return NDR_ERR_SUCCESS;
19048 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct __spoolss_EnumForms *r)
19050 uint32_t cntr_info_0;
19051 TALLOC_CTX *_mem_save_info_0;
19052 if (flags & NDR_IN) {
19053 ZERO_STRUCT(r->out);
19055 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19056 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
19058 if (flags & NDR_OUT) {
19059 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
19060 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19061 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19062 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19063 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19064 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19066 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19067 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19069 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19071 return NDR_ERR_SUCCESS;
19074 _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumForms *r)
19076 uint32_t cntr_info_1;
19077 ndr_print_struct(ndr, name, "spoolss_EnumForms");
19079 if (flags & NDR_SET_VALUES) {
19080 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19082 if (flags & NDR_IN) {
19083 ndr_print_struct(ndr, "in", "spoolss_EnumForms");
19085 ndr_print_ptr(ndr, "handle", r->in.handle);
19087 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19089 ndr_print_uint32(ndr, "level", r->in.level);
19090 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19092 if (r->in.buffer) {
19093 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19096 ndr_print_uint32(ndr, "offered", r->in.offered);
19099 if (flags & NDR_OUT) {
19100 ndr_print_struct(ndr, "out", "spoolss_EnumForms");
19102 ndr_print_ptr(ndr, "count", r->out.count);
19104 ndr_print_uint32(ndr, "count", *r->out.count);
19106 ndr_print_ptr(ndr, "info", r->out.info);
19109 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
19111 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
19113 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
19114 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
19115 ndr_print_spoolss_FormInfo(ndr, "info", &r->out.info[cntr_info_1]);
19122 ndr_print_ptr(ndr, "needed", r->out.needed);
19124 ndr_print_uint32(ndr, "needed", *r->out.needed);
19126 ndr_print_WERROR(ndr, "result", r->out.result);
19132 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPorts *r)
19134 if (flags & NDR_IN) {
19135 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
19136 if (r->in.servername) {
19137 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
19138 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19139 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
19140 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19142 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19143 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19144 if (r->in.buffer) {
19145 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19147 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19149 if (flags & NDR_OUT) {
19150 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19152 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
19154 if (r->out.needed == NULL) {
19155 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19157 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19158 if (r->out.count == NULL) {
19159 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19161 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
19162 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19164 return NDR_ERR_SUCCESS;
19167 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPorts *r)
19169 uint32_t _ptr_servername;
19170 uint32_t _ptr_buffer;
19171 uint32_t _ptr_info;
19172 TALLOC_CTX *_mem_save_servername_0;
19173 TALLOC_CTX *_mem_save_buffer_0;
19174 TALLOC_CTX *_mem_save_info_0;
19175 TALLOC_CTX *_mem_save_needed_0;
19176 TALLOC_CTX *_mem_save_count_0;
19177 if (flags & NDR_IN) {
19178 ZERO_STRUCT(r->out);
19180 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
19181 if (_ptr_servername) {
19182 NDR_PULL_ALLOC(ndr, r->in.servername);
19184 r->in.servername = NULL;
19186 if (r->in.servername) {
19187 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
19188 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
19189 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
19190 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
19191 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
19192 return 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));
19194 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
19195 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
19196 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
19198 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19199 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19201 NDR_PULL_ALLOC(ndr, r->in.buffer);
19203 r->in.buffer = NULL;
19205 if (r->in.buffer) {
19206 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19207 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19208 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19209 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19211 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19212 NDR_PULL_ALLOC(ndr, r->out.needed);
19213 ZERO_STRUCTP(r->out.needed);
19214 NDR_PULL_ALLOC(ndr, r->out.count);
19215 ZERO_STRUCTP(r->out.count);
19217 if (flags & NDR_OUT) {
19218 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19220 NDR_PULL_ALLOC(ndr, r->out.info);
19222 r->out.info = NULL;
19225 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19226 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19227 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
19228 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19230 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19231 NDR_PULL_ALLOC(ndr, r->out.needed);
19233 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19234 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19235 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19236 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19237 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19238 NDR_PULL_ALLOC(ndr, r->out.count);
19240 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
19241 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
19242 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
19243 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
19244 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19246 return NDR_ERR_SUCCESS;
19249 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPorts *r)
19251 uint32_t cntr_info_0;
19252 if (flags & NDR_IN) {
19253 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19254 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
19256 if (flags & NDR_OUT) {
19257 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19258 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19259 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19261 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19262 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19265 return NDR_ERR_SUCCESS;
19268 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPorts *r)
19270 uint32_t cntr_info_0;
19271 TALLOC_CTX *_mem_save_info_0;
19272 if (flags & NDR_IN) {
19273 ZERO_STRUCT(r->out);
19275 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19276 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
19278 if (flags & NDR_OUT) {
19279 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
19280 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19281 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19282 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19283 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19284 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19286 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19287 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19289 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19291 return NDR_ERR_SUCCESS;
19294 _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPorts *r)
19296 uint32_t cntr_info_1;
19297 ndr_print_struct(ndr, name, "spoolss_EnumPorts");
19299 if (flags & NDR_SET_VALUES) {
19300 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19302 if (flags & NDR_IN) {
19303 ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
19305 ndr_print_ptr(ndr, "servername", r->in.servername);
19307 if (r->in.servername) {
19308 ndr_print_string(ndr, "servername", r->in.servername);
19311 ndr_print_uint32(ndr, "level", r->in.level);
19312 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19314 if (r->in.buffer) {
19315 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19318 ndr_print_uint32(ndr, "offered", r->in.offered);
19321 if (flags & NDR_OUT) {
19322 ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
19324 ndr_print_ptr(ndr, "count", r->out.count);
19326 ndr_print_uint32(ndr, "count", *r->out.count);
19328 ndr_print_ptr(ndr, "info", r->out.info);
19331 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
19333 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
19335 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
19336 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
19337 ndr_print_spoolss_PortInfo(ndr, "info", &r->out.info[cntr_info_1]);
19344 ndr_print_ptr(ndr, "needed", r->out.needed);
19346 ndr_print_uint32(ndr, "needed", *r->out.needed);
19348 ndr_print_WERROR(ndr, "result", r->out.result);
19354 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumMonitors *r)
19356 if (flags & NDR_IN) {
19357 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
19358 if (r->in.servername) {
19359 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
19360 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19361 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
19362 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19364 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19365 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19366 if (r->in.buffer) {
19367 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19369 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19371 if (flags & NDR_OUT) {
19372 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19374 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
19376 if (r->out.needed == NULL) {
19377 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19379 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19380 if (r->out.count == NULL) {
19381 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19383 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
19384 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19386 return NDR_ERR_SUCCESS;
19389 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumMonitors *r)
19391 uint32_t _ptr_servername;
19392 uint32_t _ptr_buffer;
19393 uint32_t _ptr_info;
19394 TALLOC_CTX *_mem_save_servername_0;
19395 TALLOC_CTX *_mem_save_buffer_0;
19396 TALLOC_CTX *_mem_save_info_0;
19397 TALLOC_CTX *_mem_save_needed_0;
19398 TALLOC_CTX *_mem_save_count_0;
19399 if (flags & NDR_IN) {
19400 ZERO_STRUCT(r->out);
19402 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
19403 if (_ptr_servername) {
19404 NDR_PULL_ALLOC(ndr, r->in.servername);
19406 r->in.servername = NULL;
19408 if (r->in.servername) {
19409 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
19410 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
19411 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
19412 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
19413 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
19414 return 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));
19416 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
19417 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
19418 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
19420 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19421 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19423 NDR_PULL_ALLOC(ndr, r->in.buffer);
19425 r->in.buffer = NULL;
19427 if (r->in.buffer) {
19428 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19429 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19430 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19431 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19433 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19434 NDR_PULL_ALLOC(ndr, r->out.needed);
19435 ZERO_STRUCTP(r->out.needed);
19436 NDR_PULL_ALLOC(ndr, r->out.count);
19437 ZERO_STRUCTP(r->out.count);
19439 if (flags & NDR_OUT) {
19440 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19442 NDR_PULL_ALLOC(ndr, r->out.info);
19444 r->out.info = NULL;
19447 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19448 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19449 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
19450 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19452 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19453 NDR_PULL_ALLOC(ndr, r->out.needed);
19455 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19456 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19457 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19458 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19459 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19460 NDR_PULL_ALLOC(ndr, r->out.count);
19462 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
19463 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
19464 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
19465 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
19466 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19468 return NDR_ERR_SUCCESS;
19471 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumMonitors *r)
19473 uint32_t cntr_info_0;
19474 if (flags & NDR_IN) {
19475 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19476 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
19478 if (flags & NDR_OUT) {
19479 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19480 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19481 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19483 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19484 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19487 return NDR_ERR_SUCCESS;
19490 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumMonitors *r)
19492 uint32_t cntr_info_0;
19493 TALLOC_CTX *_mem_save_info_0;
19494 if (flags & NDR_IN) {
19495 ZERO_STRUCT(r->out);
19497 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19498 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
19500 if (flags & NDR_OUT) {
19501 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
19502 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19503 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19504 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19505 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19506 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19508 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19509 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19511 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19513 return NDR_ERR_SUCCESS;
19516 _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumMonitors *r)
19518 uint32_t cntr_info_1;
19519 ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
19521 if (flags & NDR_SET_VALUES) {
19522 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19524 if (flags & NDR_IN) {
19525 ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
19527 ndr_print_ptr(ndr, "servername", r->in.servername);
19529 if (r->in.servername) {
19530 ndr_print_string(ndr, "servername", r->in.servername);
19533 ndr_print_uint32(ndr, "level", r->in.level);
19534 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19536 if (r->in.buffer) {
19537 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19540 ndr_print_uint32(ndr, "offered", r->in.offered);
19543 if (flags & NDR_OUT) {
19544 ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
19546 ndr_print_ptr(ndr, "count", r->out.count);
19548 ndr_print_uint32(ndr, "count", *r->out.count);
19550 ndr_print_ptr(ndr, "info", r->out.info);
19553 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
19555 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
19557 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
19558 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
19559 ndr_print_spoolss_MonitorInfo(ndr, "info", &r->out.info[cntr_info_1]);
19566 ndr_print_ptr(ndr, "needed", r->out.needed);
19568 ndr_print_uint32(ndr, "needed", *r->out.needed);
19570 ndr_print_WERROR(ndr, "result", r->out.result);
19576 static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, int flags, const struct spoolss_AddPort *r)
19578 if (flags & NDR_IN) {
19579 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
19580 if (r->in.server_name) {
19581 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
19582 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19583 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
19584 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));
19586 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
19587 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
19588 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19589 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
19590 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));
19592 if (flags & NDR_OUT) {
19593 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19595 return NDR_ERR_SUCCESS;
19598 static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, int flags, struct spoolss_AddPort *r)
19600 uint32_t _ptr_server_name;
19601 TALLOC_CTX *_mem_save_server_name_0;
19602 if (flags & NDR_IN) {
19603 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
19604 if (_ptr_server_name) {
19605 NDR_PULL_ALLOC(ndr, r->in.server_name);
19607 r->in.server_name = NULL;
19609 if (r->in.server_name) {
19610 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
19611 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
19612 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
19613 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
19614 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
19615 return 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));
19617 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
19618 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));
19619 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
19621 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
19622 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
19623 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
19624 if (ndr_get_array_length(ndr, &r->in.monitor_name) > ndr_get_array_size(ndr, &r->in.monitor_name)) {
19625 return 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));
19627 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t)));
19628 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));
19630 if (flags & NDR_OUT) {
19631 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19633 return NDR_ERR_SUCCESS;
19636 _PUBLIC_ void ndr_print_spoolss_AddPort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPort *r)
19638 ndr_print_struct(ndr, name, "spoolss_AddPort");
19640 if (flags & NDR_SET_VALUES) {
19641 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19643 if (flags & NDR_IN) {
19644 ndr_print_struct(ndr, "in", "spoolss_AddPort");
19646 ndr_print_ptr(ndr, "server_name", r->in.server_name);
19648 if (r->in.server_name) {
19649 ndr_print_string(ndr, "server_name", r->in.server_name);
19652 ndr_print_uint32(ndr, "unknown", r->in.unknown);
19653 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
19656 if (flags & NDR_OUT) {
19657 ndr_print_struct(ndr, "out", "spoolss_AddPort");
19659 ndr_print_WERROR(ndr, "result", r->out.result);
19665 static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, int flags, const struct spoolss_ConfigurePort *r)
19667 if (flags & NDR_IN) {
19669 if (flags & NDR_OUT) {
19670 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19672 return NDR_ERR_SUCCESS;
19675 static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, int flags, struct spoolss_ConfigurePort *r)
19677 if (flags & NDR_IN) {
19679 if (flags & NDR_OUT) {
19680 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19682 return NDR_ERR_SUCCESS;
19685 _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ConfigurePort *r)
19687 ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
19689 if (flags & NDR_SET_VALUES) {
19690 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19692 if (flags & NDR_IN) {
19693 ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
19697 if (flags & NDR_OUT) {
19698 ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
19700 ndr_print_WERROR(ndr, "result", r->out.result);
19706 static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, int flags, const struct spoolss_DeletePort *r)
19708 if (flags & NDR_IN) {
19710 if (flags & NDR_OUT) {
19711 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19713 return NDR_ERR_SUCCESS;
19716 static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, int flags, struct spoolss_DeletePort *r)
19718 if (flags & NDR_IN) {
19720 if (flags & NDR_OUT) {
19721 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19723 return NDR_ERR_SUCCESS;
19726 _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePort *r)
19728 ndr_print_struct(ndr, name, "spoolss_DeletePort");
19730 if (flags & NDR_SET_VALUES) {
19731 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19733 if (flags & NDR_IN) {
19734 ndr_print_struct(ndr, "in", "spoolss_DeletePort");
19738 if (flags & NDR_OUT) {
19739 ndr_print_struct(ndr, "out", "spoolss_DeletePort");
19741 ndr_print_WERROR(ndr, "result", r->out.result);
19747 static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_CreatePrinterIC *r)
19749 if (flags & NDR_IN) {
19751 if (flags & NDR_OUT) {
19752 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19754 return NDR_ERR_SUCCESS;
19757 static enum ndr_err_code ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_CreatePrinterIC *r)
19759 if (flags & NDR_IN) {
19761 if (flags & NDR_OUT) {
19762 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19764 return NDR_ERR_SUCCESS;
19767 _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_CreatePrinterIC *r)
19769 ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
19771 if (flags & NDR_SET_VALUES) {
19772 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19774 if (flags & NDR_IN) {
19775 ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
19779 if (flags & NDR_OUT) {
19780 ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
19782 ndr_print_WERROR(ndr, "result", r->out.result);
19788 static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
19790 if (flags & NDR_IN) {
19792 if (flags & NDR_OUT) {
19793 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19795 return NDR_ERR_SUCCESS;
19798 static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
19800 if (flags & NDR_IN) {
19802 if (flags & NDR_OUT) {
19803 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19805 return NDR_ERR_SUCCESS;
19808 _PUBLIC_ void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
19810 ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
19812 if (flags & NDR_SET_VALUES) {
19813 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19815 if (flags & NDR_IN) {
19816 ndr_print_struct(ndr, "in", "spoolss_PlayGDIScriptOnPrinterIC");
19820 if (flags & NDR_OUT) {
19821 ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
19823 ndr_print_WERROR(ndr, "result", r->out.result);
19829 static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterIC *r)
19831 if (flags & NDR_IN) {
19833 if (flags & NDR_OUT) {
19834 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19836 return NDR_ERR_SUCCESS;
19839 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterIC *r)
19841 if (flags & NDR_IN) {
19843 if (flags & NDR_OUT) {
19844 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19846 return NDR_ERR_SUCCESS;
19849 _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterIC *r)
19851 ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
19853 if (flags & NDR_SET_VALUES) {
19854 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19856 if (flags & NDR_IN) {
19857 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
19861 if (flags & NDR_OUT) {
19862 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
19864 ndr_print_WERROR(ndr, "result", r->out.result);
19870 static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterConnection *r)
19872 if (flags & NDR_IN) {
19874 if (flags & NDR_OUT) {
19875 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19877 return NDR_ERR_SUCCESS;
19880 static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterConnection *r)
19882 if (flags & NDR_IN) {
19884 if (flags & NDR_OUT) {
19885 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19887 return NDR_ERR_SUCCESS;
19890 _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterConnection *r)
19892 ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
19894 if (flags & NDR_SET_VALUES) {
19895 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19897 if (flags & NDR_IN) {
19898 ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
19902 if (flags & NDR_OUT) {
19903 ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
19905 ndr_print_WERROR(ndr, "result", r->out.result);
19911 static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterConnection *r)
19913 if (flags & NDR_IN) {
19915 if (flags & NDR_OUT) {
19916 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19918 return NDR_ERR_SUCCESS;
19921 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterConnection *r)
19923 if (flags & NDR_IN) {
19925 if (flags & NDR_OUT) {
19926 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19928 return NDR_ERR_SUCCESS;
19931 _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterConnection *r)
19933 ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
19935 if (flags & NDR_SET_VALUES) {
19936 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19938 if (flags & NDR_IN) {
19939 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
19943 if (flags & NDR_OUT) {
19944 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
19946 ndr_print_WERROR(ndr, "result", r->out.result);
19952 static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, int flags, const struct spoolss_PrinterMessageBox *r)
19954 if (flags & NDR_IN) {
19956 if (flags & NDR_OUT) {
19957 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19959 return NDR_ERR_SUCCESS;
19962 static enum ndr_err_code ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull *ndr, int flags, struct spoolss_PrinterMessageBox *r)
19964 if (flags & NDR_IN) {
19966 if (flags & NDR_OUT) {
19967 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19969 return NDR_ERR_SUCCESS;
19972 _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PrinterMessageBox *r)
19974 ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
19976 if (flags & NDR_SET_VALUES) {
19977 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19979 if (flags & NDR_IN) {
19980 ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
19984 if (flags & NDR_OUT) {
19985 ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
19987 ndr_print_WERROR(ndr, "result", r->out.result);
19993 static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, int flags, const struct spoolss_AddMonitor *r)
19995 if (flags & NDR_IN) {
19997 if (flags & NDR_OUT) {
19998 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20000 return NDR_ERR_SUCCESS;
20003 static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, int flags, struct spoolss_AddMonitor *r)
20005 if (flags & NDR_IN) {
20007 if (flags & NDR_OUT) {
20008 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20010 return NDR_ERR_SUCCESS;
20013 _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddMonitor *r)
20015 ndr_print_struct(ndr, name, "spoolss_AddMonitor");
20017 if (flags & NDR_SET_VALUES) {
20018 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20020 if (flags & NDR_IN) {
20021 ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
20025 if (flags & NDR_OUT) {
20026 ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
20028 ndr_print_WERROR(ndr, "result", r->out.result);
20034 static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, int flags, const struct spoolss_DeleteMonitor *r)
20036 if (flags & NDR_IN) {
20038 if (flags & NDR_OUT) {
20039 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20041 return NDR_ERR_SUCCESS;
20044 static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, int flags, struct spoolss_DeleteMonitor *r)
20046 if (flags & NDR_IN) {
20048 if (flags & NDR_OUT) {
20049 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20051 return NDR_ERR_SUCCESS;
20054 _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteMonitor *r)
20056 ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
20058 if (flags & NDR_SET_VALUES) {
20059 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20061 if (flags & NDR_IN) {
20062 ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
20066 if (flags & NDR_OUT) {
20067 ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
20069 ndr_print_WERROR(ndr, "result", r->out.result);
20075 static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProcessor *r)
20077 if (flags & NDR_IN) {
20079 if (flags & NDR_OUT) {
20080 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20082 return NDR_ERR_SUCCESS;
20085 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProcessor *r)
20087 if (flags & NDR_IN) {
20089 if (flags & NDR_OUT) {
20090 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20092 return NDR_ERR_SUCCESS;
20095 _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProcessor *r)
20097 ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
20099 if (flags & NDR_SET_VALUES) {
20100 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20102 if (flags & NDR_IN) {
20103 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
20107 if (flags & NDR_OUT) {
20108 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
20110 ndr_print_WERROR(ndr, "result", r->out.result);
20116 static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProvidor *r)
20118 if (flags & NDR_IN) {
20120 if (flags & NDR_OUT) {
20121 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20123 return NDR_ERR_SUCCESS;
20126 static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProvidor *r)
20128 if (flags & NDR_IN) {
20130 if (flags & NDR_OUT) {
20131 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20133 return NDR_ERR_SUCCESS;
20136 _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProvidor *r)
20138 ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
20140 if (flags & NDR_SET_VALUES) {
20141 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20143 if (flags & NDR_IN) {
20144 ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
20148 if (flags & NDR_OUT) {
20149 ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
20151 ndr_print_WERROR(ndr, "result", r->out.result);
20157 static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProvidor *r)
20159 if (flags & NDR_IN) {
20161 if (flags & NDR_OUT) {
20162 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20164 return NDR_ERR_SUCCESS;
20167 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProvidor *r)
20169 if (flags & NDR_IN) {
20171 if (flags & NDR_OUT) {
20172 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20174 return NDR_ERR_SUCCESS;
20177 _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProvidor *r)
20179 ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
20181 if (flags & NDR_SET_VALUES) {
20182 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20184 if (flags & NDR_IN) {
20185 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
20189 if (flags & NDR_OUT) {
20190 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
20192 ndr_print_WERROR(ndr, "result", r->out.result);
20198 static enum ndr_err_code ndr_push_spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
20200 if (flags & NDR_IN) {
20202 if (flags & NDR_OUT) {
20203 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20205 return NDR_ERR_SUCCESS;
20208 static enum ndr_err_code ndr_pull_spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrintProcDataTypes *r)
20210 if (flags & NDR_IN) {
20212 if (flags & NDR_OUT) {
20213 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20215 return NDR_ERR_SUCCESS;
20218 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
20220 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcDataTypes");
20222 if (flags & NDR_SET_VALUES) {
20223 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20225 if (flags & NDR_IN) {
20226 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcDataTypes");
20230 if (flags & NDR_OUT) {
20231 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcDataTypes");
20233 ndr_print_WERROR(ndr, "result", r->out.result);
20239 static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinter *r)
20241 if (flags & NDR_IN) {
20242 if (r->in.handle == NULL) {
20243 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20245 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20246 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_type));
20247 if (r->in.data_type) {
20248 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
20249 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20250 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
20251 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));
20253 if (r->in.devmode_ctr == NULL) {
20254 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20256 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20258 if (flags & NDR_OUT) {
20259 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20261 return NDR_ERR_SUCCESS;
20264 static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinter *r)
20266 uint32_t _ptr_data_type;
20267 TALLOC_CTX *_mem_save_handle_0;
20268 TALLOC_CTX *_mem_save_data_type_0;
20269 TALLOC_CTX *_mem_save_devmode_ctr_0;
20270 if (flags & NDR_IN) {
20271 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20272 NDR_PULL_ALLOC(ndr, r->in.handle);
20274 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20275 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20276 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20277 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20278 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
20279 if (_ptr_data_type) {
20280 NDR_PULL_ALLOC(ndr, r->in.data_type);
20282 r->in.data_type = NULL;
20284 if (r->in.data_type) {
20285 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
20286 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
20287 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
20288 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
20289 if (ndr_get_array_length(ndr, &r->in.data_type) > ndr_get_array_size(ndr, &r->in.data_type)) {
20290 return 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));
20292 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t)));
20293 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));
20294 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
20296 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20297 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
20299 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20300 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
20301 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20302 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20304 if (flags & NDR_OUT) {
20305 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20307 return NDR_ERR_SUCCESS;
20310 _PUBLIC_ void ndr_print_spoolss_ResetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinter *r)
20312 ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
20314 if (flags & NDR_SET_VALUES) {
20315 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20317 if (flags & NDR_IN) {
20318 ndr_print_struct(ndr, "in", "spoolss_ResetPrinter");
20320 ndr_print_ptr(ndr, "handle", r->in.handle);
20322 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20324 ndr_print_ptr(ndr, "data_type", r->in.data_type);
20326 if (r->in.data_type) {
20327 ndr_print_string(ndr, "data_type", r->in.data_type);
20330 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
20332 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
20336 if (flags & NDR_OUT) {
20337 ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
20339 ndr_print_WERROR(ndr, "result", r->out.result);
20345 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver2 *r)
20347 if (flags & NDR_IN) {
20348 if (r->in.handle == NULL) {
20349 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20351 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20352 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
20353 if (r->in.architecture) {
20354 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20355 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20356 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20357 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20359 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20360 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20361 if (r->in.buffer) {
20362 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20364 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20365 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
20366 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
20368 if (flags & NDR_OUT) {
20369 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20372 struct ndr_push *_ndr_info;
20373 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20374 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
20375 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20376 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20379 if (r->out.needed == NULL) {
20380 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20382 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20383 if (r->out.server_major_version == NULL) {
20384 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
20387 if (r->out.server_minor_version == NULL) {
20388 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20390 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
20391 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20393 return NDR_ERR_SUCCESS;
20396 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver2 *r)
20398 uint32_t _ptr_architecture;
20399 uint32_t _ptr_buffer;
20400 uint32_t _ptr_info;
20401 TALLOC_CTX *_mem_save_handle_0;
20402 TALLOC_CTX *_mem_save_architecture_0;
20403 TALLOC_CTX *_mem_save_buffer_0;
20404 TALLOC_CTX *_mem_save_info_0;
20405 TALLOC_CTX *_mem_save_needed_0;
20406 TALLOC_CTX *_mem_save_server_major_version_0;
20407 TALLOC_CTX *_mem_save_server_minor_version_0;
20408 if (flags & NDR_IN) {
20409 ZERO_STRUCT(r->out);
20411 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20412 NDR_PULL_ALLOC(ndr, r->in.handle);
20414 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20415 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20416 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20417 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20418 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
20419 if (_ptr_architecture) {
20420 NDR_PULL_ALLOC(ndr, r->in.architecture);
20422 r->in.architecture = NULL;
20424 if (r->in.architecture) {
20425 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
20426 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
20427 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
20428 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
20429 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
20430 return 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));
20432 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
20433 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
20434 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
20436 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20437 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20439 NDR_PULL_ALLOC(ndr, r->in.buffer);
20441 r->in.buffer = NULL;
20443 if (r->in.buffer) {
20444 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20445 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20446 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20447 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20449 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20450 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
20451 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
20452 NDR_PULL_ALLOC(ndr, r->out.needed);
20453 ZERO_STRUCTP(r->out.needed);
20454 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
20455 ZERO_STRUCTP(r->out.server_major_version);
20456 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
20457 ZERO_STRUCTP(r->out.server_minor_version);
20459 if (flags & NDR_OUT) {
20460 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20462 NDR_PULL_ALLOC(ndr, r->out.info);
20464 r->out.info = NULL;
20467 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20468 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20470 struct ndr_pull *_ndr_info;
20471 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20472 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
20473 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20474 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20476 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20478 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20479 NDR_PULL_ALLOC(ndr, r->out.needed);
20481 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20482 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20483 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20484 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20485 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20486 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
20488 _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
20489 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
20490 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
20491 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
20492 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20493 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
20495 _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
20496 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
20497 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
20498 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
20499 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20501 return NDR_ERR_SUCCESS;
20504 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver2 *r)
20506 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
20508 if (flags & NDR_SET_VALUES) {
20509 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20511 if (flags & NDR_IN) {
20512 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
20514 ndr_print_ptr(ndr, "handle", r->in.handle);
20516 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20518 ndr_print_ptr(ndr, "architecture", r->in.architecture);
20520 if (r->in.architecture) {
20521 ndr_print_string(ndr, "architecture", r->in.architecture);
20524 ndr_print_uint32(ndr, "level", r->in.level);
20525 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20527 if (r->in.buffer) {
20528 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20531 ndr_print_uint32(ndr, "offered", r->in.offered);
20532 ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
20533 ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
20536 if (flags & NDR_OUT) {
20537 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
20539 ndr_print_ptr(ndr, "info", r->out.info);
20542 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
20543 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
20546 ndr_print_ptr(ndr, "needed", r->out.needed);
20548 ndr_print_uint32(ndr, "needed", *r->out.needed);
20550 ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
20552 ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
20554 ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
20556 ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
20558 ndr_print_WERROR(ndr, "result", r->out.result);
20564 static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
20566 if (flags & NDR_IN) {
20568 if (flags & NDR_OUT) {
20569 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20571 return NDR_ERR_SUCCESS;
20574 static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindFirstPrinterChangeNotification *r)
20576 if (flags & NDR_IN) {
20578 if (flags & NDR_OUT) {
20579 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20581 return NDR_ERR_SUCCESS;
20584 _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
20586 ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
20588 if (flags & NDR_SET_VALUES) {
20589 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20591 if (flags & NDR_IN) {
20592 ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
20596 if (flags & NDR_OUT) {
20597 ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
20599 ndr_print_WERROR(ndr, "result", r->out.result);
20605 static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
20607 if (flags & NDR_IN) {
20609 if (flags & NDR_OUT) {
20610 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20612 return NDR_ERR_SUCCESS;
20615 static enum ndr_err_code ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindNextPrinterChangeNotification *r)
20617 if (flags & NDR_IN) {
20619 if (flags & NDR_OUT) {
20620 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20622 return NDR_ERR_SUCCESS;
20625 _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
20627 ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
20629 if (flags & NDR_SET_VALUES) {
20630 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20632 if (flags & NDR_IN) {
20633 ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
20637 if (flags & NDR_OUT) {
20638 ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
20640 ndr_print_WERROR(ndr, "result", r->out.result);
20646 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, int flags, const struct spoolss_FindClosePrinterNotify *r)
20648 if (flags & NDR_IN) {
20649 if (r->in.handle == NULL) {
20650 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20652 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20654 if (flags & NDR_OUT) {
20655 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20657 return NDR_ERR_SUCCESS;
20660 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, int flags, struct spoolss_FindClosePrinterNotify *r)
20662 TALLOC_CTX *_mem_save_handle_0;
20663 if (flags & NDR_IN) {
20664 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20665 NDR_PULL_ALLOC(ndr, r->in.handle);
20667 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20668 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20669 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20670 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20672 if (flags & NDR_OUT) {
20673 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20675 return NDR_ERR_SUCCESS;
20678 _PUBLIC_ void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindClosePrinterNotify *r)
20680 ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
20682 if (flags & NDR_SET_VALUES) {
20683 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20685 if (flags & NDR_IN) {
20686 ndr_print_struct(ndr, "in", "spoolss_FindClosePrinterNotify");
20688 ndr_print_ptr(ndr, "handle", r->in.handle);
20690 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20694 if (flags & NDR_OUT) {
20695 ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
20697 ndr_print_WERROR(ndr, "result", r->out.result);
20703 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
20705 if (flags & NDR_IN) {
20707 if (flags & NDR_OUT) {
20708 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20710 return NDR_ERR_SUCCESS;
20713 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
20715 if (flags & NDR_IN) {
20717 if (flags & NDR_OUT) {
20718 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20720 return NDR_ERR_SUCCESS;
20723 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
20725 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
20727 if (flags & NDR_SET_VALUES) {
20728 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20730 if (flags & NDR_IN) {
20731 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
20735 if (flags & NDR_OUT) {
20736 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
20738 ndr_print_WERROR(ndr, "result", r->out.result);
20744 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyOpenPrinter *r)
20746 if (flags & NDR_IN) {
20747 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
20748 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20749 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
20750 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));
20751 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
20752 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
20753 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
20754 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20755 if (r->in.buffer) {
20756 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
20757 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
20760 if (flags & NDR_OUT) {
20761 if (r->out.handle == NULL) {
20762 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20764 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20765 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20767 return NDR_ERR_SUCCESS;
20770 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyOpenPrinter *r)
20772 uint32_t _ptr_buffer;
20773 TALLOC_CTX *_mem_save_buffer_0;
20774 TALLOC_CTX *_mem_save_handle_0;
20775 if (flags & NDR_IN) {
20776 ZERO_STRUCT(r->out);
20778 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
20779 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
20780 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
20781 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
20783 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
20784 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));
20785 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
20786 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
20787 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
20788 if (r->in.bufsize > 512) {
20789 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
20791 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20793 NDR_PULL_ALLOC(ndr, r->in.buffer);
20795 r->in.buffer = NULL;
20797 if (r->in.buffer) {
20798 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20799 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20800 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
20801 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
20802 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
20803 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20805 NDR_PULL_ALLOC(ndr, r->out.handle);
20806 ZERO_STRUCTP(r->out.handle);
20807 if (r->in.buffer) {
20808 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
20811 if (flags & NDR_OUT) {
20812 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20813 NDR_PULL_ALLOC(ndr, r->out.handle);
20815 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20816 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
20817 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20818 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20819 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20821 return NDR_ERR_SUCCESS;
20824 _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyOpenPrinter *r)
20826 ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
20828 if (flags & NDR_SET_VALUES) {
20829 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20831 if (flags & NDR_IN) {
20832 ndr_print_struct(ndr, "in", "spoolss_ReplyOpenPrinter");
20834 ndr_print_string(ndr, "server_name", r->in.server_name);
20835 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
20836 ndr_print_winreg_Type(ndr, "type", r->in.type);
20837 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
20838 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20840 if (r->in.buffer) {
20841 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
20846 if (flags & NDR_OUT) {
20847 ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
20849 ndr_print_ptr(ndr, "handle", r->out.handle);
20851 ndr_print_policy_handle(ndr, "handle", r->out.handle);
20853 ndr_print_WERROR(ndr, "result", r->out.result);
20859 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinter *r)
20861 if (flags & NDR_IN) {
20862 if (r->in.handle == NULL) {
20863 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20865 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20866 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
20867 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
20868 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20869 if (r->in.buffer) {
20870 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
20871 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
20874 if (flags & NDR_OUT) {
20875 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20877 return NDR_ERR_SUCCESS;
20880 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinter *r)
20882 uint32_t _ptr_buffer;
20883 TALLOC_CTX *_mem_save_handle_0;
20884 TALLOC_CTX *_mem_save_buffer_0;
20885 if (flags & NDR_IN) {
20886 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20887 NDR_PULL_ALLOC(ndr, r->in.handle);
20889 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20890 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20891 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20892 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20893 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
20894 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
20895 if (r->in.bufsize > 512) {
20896 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
20898 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20900 NDR_PULL_ALLOC(ndr, r->in.buffer);
20902 r->in.buffer = NULL;
20904 if (r->in.buffer) {
20905 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20906 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20907 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
20908 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
20909 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
20910 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20912 if (r->in.buffer) {
20913 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
20916 if (flags & NDR_OUT) {
20917 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20919 return NDR_ERR_SUCCESS;
20922 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinter *r)
20924 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
20926 if (flags & NDR_SET_VALUES) {
20927 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20929 if (flags & NDR_IN) {
20930 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
20932 ndr_print_ptr(ndr, "handle", r->in.handle);
20934 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20936 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
20937 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
20938 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20940 if (r->in.buffer) {
20941 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
20946 if (flags & NDR_OUT) {
20947 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
20949 ndr_print_WERROR(ndr, "result", r->out.result);
20955 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyClosePrinter *r)
20957 if (flags & NDR_IN) {
20958 if (r->in.handle == NULL) {
20959 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20961 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20963 if (flags & NDR_OUT) {
20964 if (r->out.handle == NULL) {
20965 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20967 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20968 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20970 return NDR_ERR_SUCCESS;
20973 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyClosePrinter *r)
20975 TALLOC_CTX *_mem_save_handle_0;
20976 if (flags & NDR_IN) {
20977 ZERO_STRUCT(r->out);
20979 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20980 NDR_PULL_ALLOC(ndr, r->in.handle);
20982 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20983 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20984 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20985 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20986 NDR_PULL_ALLOC(ndr, r->out.handle);
20987 *r->out.handle = *r->in.handle;
20989 if (flags & NDR_OUT) {
20990 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20991 NDR_PULL_ALLOC(ndr, r->out.handle);
20993 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20994 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
20995 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20996 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20997 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20999 return NDR_ERR_SUCCESS;
21002 _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyClosePrinter *r)
21004 ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
21006 if (flags & NDR_SET_VALUES) {
21007 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21009 if (flags & NDR_IN) {
21010 ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
21012 ndr_print_ptr(ndr, "handle", r->in.handle);
21014 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21018 if (flags & NDR_OUT) {
21019 ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
21021 ndr_print_ptr(ndr, "handle", r->out.handle);
21023 ndr_print_policy_handle(ndr, "handle", r->out.handle);
21025 ndr_print_WERROR(ndr, "result", r->out.result);
21031 static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPortEx *r)
21033 if (flags & NDR_IN) {
21035 if (flags & NDR_OUT) {
21036 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21038 return NDR_ERR_SUCCESS;
21041 static enum ndr_err_code ndr_pull_spoolss_AddPortEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPortEx *r)
21043 if (flags & NDR_IN) {
21045 if (flags & NDR_OUT) {
21046 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21048 return NDR_ERR_SUCCESS;
21051 _PUBLIC_ void ndr_print_spoolss_AddPortEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPortEx *r)
21053 ndr_print_struct(ndr, name, "spoolss_AddPortEx");
21055 if (flags & NDR_SET_VALUES) {
21056 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21058 if (flags & NDR_IN) {
21059 ndr_print_struct(ndr, "in", "spoolss_AddPortEx");
21063 if (flags & NDR_OUT) {
21064 ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
21066 ndr_print_WERROR(ndr, "result", r->out.result);
21072 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
21074 if (flags & NDR_IN) {
21076 if (flags & NDR_OUT) {
21077 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21079 return NDR_ERR_SUCCESS;
21082 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
21084 if (flags & NDR_IN) {
21086 if (flags & NDR_OUT) {
21087 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21089 return NDR_ERR_SUCCESS;
21092 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
21094 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
21096 if (flags & NDR_SET_VALUES) {
21097 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21099 if (flags & NDR_IN) {
21100 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
21104 if (flags & NDR_OUT) {
21105 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
21107 ndr_print_WERROR(ndr, "result", r->out.result);
21113 static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, int flags, const struct spoolss_SpoolerInit *r)
21115 if (flags & NDR_IN) {
21117 if (flags & NDR_OUT) {
21118 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21120 return NDR_ERR_SUCCESS;
21123 static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, int flags, struct spoolss_SpoolerInit *r)
21125 if (flags & NDR_IN) {
21127 if (flags & NDR_OUT) {
21128 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21130 return NDR_ERR_SUCCESS;
21133 _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SpoolerInit *r)
21135 ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
21137 if (flags & NDR_SET_VALUES) {
21138 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21140 if (flags & NDR_IN) {
21141 ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
21145 if (flags & NDR_OUT) {
21146 ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
21148 ndr_print_WERROR(ndr, "result", r->out.result);
21154 static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinterEx *r)
21156 if (flags & NDR_IN) {
21158 if (flags & NDR_OUT) {
21159 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21161 return NDR_ERR_SUCCESS;
21164 static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinterEx *r)
21166 if (flags & NDR_IN) {
21168 if (flags & NDR_OUT) {
21169 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21171 return NDR_ERR_SUCCESS;
21174 _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinterEx *r)
21176 ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
21178 if (flags & NDR_SET_VALUES) {
21179 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21181 if (flags & NDR_IN) {
21182 ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
21186 if (flags & NDR_OUT) {
21187 ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
21189 ndr_print_WERROR(ndr, "result", r->out.result);
21195 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
21197 if (flags & NDR_IN) {
21198 if (r->in.handle == NULL) {
21199 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21201 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21202 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
21203 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
21204 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.local_machine));
21205 if (r->in.local_machine) {
21206 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
21207 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21208 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
21209 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));
21211 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
21212 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.notify_options));
21213 if (r->in.notify_options) {
21214 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
21217 if (flags & NDR_OUT) {
21218 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21220 return NDR_ERR_SUCCESS;
21223 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
21225 uint32_t _ptr_local_machine;
21226 uint32_t _ptr_notify_options;
21227 TALLOC_CTX *_mem_save_handle_0;
21228 TALLOC_CTX *_mem_save_local_machine_0;
21229 TALLOC_CTX *_mem_save_notify_options_0;
21230 if (flags & NDR_IN) {
21231 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21232 NDR_PULL_ALLOC(ndr, r->in.handle);
21234 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21235 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21236 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21237 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21238 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
21239 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
21240 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local_machine));
21241 if (_ptr_local_machine) {
21242 NDR_PULL_ALLOC(ndr, r->in.local_machine);
21244 r->in.local_machine = NULL;
21246 if (r->in.local_machine) {
21247 _mem_save_local_machine_0 = NDR_PULL_GET_MEM_CTX(ndr);
21248 NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
21249 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
21250 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
21251 if (ndr_get_array_length(ndr, &r->in.local_machine) > ndr_get_array_size(ndr, &r->in.local_machine)) {
21252 return 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));
21254 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t)));
21255 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));
21256 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
21258 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
21259 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_options));
21260 if (_ptr_notify_options) {
21261 NDR_PULL_ALLOC(ndr, r->in.notify_options);
21263 r->in.notify_options = NULL;
21265 if (r->in.notify_options) {
21266 _mem_save_notify_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
21267 NDR_PULL_SET_MEM_CTX(ndr, r->in.notify_options, 0);
21268 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
21269 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_options_0, 0);
21272 if (flags & NDR_OUT) {
21273 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21275 return NDR_ERR_SUCCESS;
21278 _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
21280 ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
21282 if (flags & NDR_SET_VALUES) {
21283 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21285 if (flags & NDR_IN) {
21286 ndr_print_struct(ndr, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
21288 ndr_print_ptr(ndr, "handle", r->in.handle);
21290 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21292 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
21293 ndr_print_uint32(ndr, "options", r->in.options);
21294 ndr_print_ptr(ndr, "local_machine", r->in.local_machine);
21296 if (r->in.local_machine) {
21297 ndr_print_string(ndr, "local_machine", r->in.local_machine);
21300 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
21301 ndr_print_ptr(ndr, "notify_options", r->in.notify_options);
21303 if (r->in.notify_options) {
21304 ndr_print_spoolss_NotifyOption(ndr, "notify_options", r->in.notify_options);
21309 if (flags & NDR_OUT) {
21310 ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
21312 ndr_print_WERROR(ndr, "result", r->out.result);
21318 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinterEx *r)
21320 if (flags & NDR_IN) {
21321 if (r->in.handle == NULL) {
21322 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21324 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21325 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.color));
21326 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
21327 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reply_type));
21328 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.reply_type));
21329 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
21331 if (flags & NDR_OUT) {
21332 if (r->out.reply_result == NULL) {
21333 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21335 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, *r->out.reply_result));
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_RouterReplyPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinterEx *r)
21343 TALLOC_CTX *_mem_save_handle_0;
21344 TALLOC_CTX *_mem_save_reply_result_0;
21345 if (flags & NDR_IN) {
21346 ZERO_STRUCT(r->out);
21348 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21349 NDR_PULL_ALLOC(ndr, r->in.handle);
21351 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21352 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21353 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21354 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21355 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.color));
21356 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
21357 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reply_type));
21358 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.reply_type));
21359 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
21360 NDR_PULL_ALLOC(ndr, r->out.reply_result);
21361 ZERO_STRUCTP(r->out.reply_result);
21363 if (flags & NDR_OUT) {
21364 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21365 NDR_PULL_ALLOC(ndr, r->out.reply_result);
21367 _mem_save_reply_result_0 = NDR_PULL_GET_MEM_CTX(ndr);
21368 NDR_PULL_SET_MEM_CTX(ndr, r->out.reply_result, LIBNDR_FLAG_REF_ALLOC);
21369 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, r->out.reply_result));
21370 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reply_result_0, LIBNDR_FLAG_REF_ALLOC);
21371 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21373 return NDR_ERR_SUCCESS;
21376 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinterEx *r)
21378 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinterEx");
21380 if (flags & NDR_SET_VALUES) {
21381 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21383 if (flags & NDR_IN) {
21384 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinterEx");
21386 ndr_print_ptr(ndr, "handle", r->in.handle);
21388 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21390 ndr_print_uint32(ndr, "color", r->in.color);
21391 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
21392 ndr_print_uint32(ndr, "reply_type", r->in.reply_type);
21393 ndr_print_set_switch_value(ndr, &r->in.info, r->in.reply_type);
21394 ndr_print_spoolss_ReplyPrinterInfo(ndr, "info", &r->in.info);
21397 if (flags & NDR_OUT) {
21398 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinterEx");
21400 ndr_print_ptr(ndr, "reply_result", r->out.reply_result);
21402 ndr_print_spoolss_PrinterNotifyFlags(ndr, "reply_result", *r->out.reply_result);
21404 ndr_print_WERROR(ndr, "result", r->out.result);
21410 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push *ndr, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
21412 if (flags & NDR_IN) {
21413 if (r->in.handle == NULL) {
21414 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21416 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21417 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
21418 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.options));
21419 if (r->in.options) {
21420 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
21423 if (flags & NDR_OUT) {
21424 if (r->out.info == NULL) {
21425 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21427 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
21428 if (*r->out.info) {
21429 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
21431 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21433 return NDR_ERR_SUCCESS;
21436 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull *ndr, int flags, struct spoolss_RouterRefreshPrinterChangeNotify *r)
21438 uint32_t _ptr_options;
21439 uint32_t _ptr_info;
21440 TALLOC_CTX *_mem_save_handle_0;
21441 TALLOC_CTX *_mem_save_options_0;
21442 TALLOC_CTX *_mem_save_info_0;
21443 TALLOC_CTX *_mem_save_info_1;
21444 if (flags & NDR_IN) {
21445 ZERO_STRUCT(r->out);
21447 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21448 NDR_PULL_ALLOC(ndr, r->in.handle);
21450 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21451 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21452 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21453 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21454 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
21455 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
21456 if (_ptr_options) {
21457 NDR_PULL_ALLOC(ndr, r->in.options);
21459 r->in.options = NULL;
21461 if (r->in.options) {
21462 _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
21463 NDR_PULL_SET_MEM_CTX(ndr, r->in.options, 0);
21464 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
21465 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
21467 NDR_PULL_ALLOC(ndr, r->out.info);
21468 ZERO_STRUCTP(r->out.info);
21470 if (flags & NDR_OUT) {
21471 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21472 NDR_PULL_ALLOC(ndr, r->out.info);
21474 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21475 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
21476 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21478 NDR_PULL_ALLOC(ndr, *r->out.info);
21480 *r->out.info = NULL;
21482 if (*r->out.info) {
21483 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
21484 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
21485 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
21486 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
21488 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
21489 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21491 return NDR_ERR_SUCCESS;
21494 _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
21496 ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotify");
21498 if (flags & NDR_SET_VALUES) {
21499 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21501 if (flags & NDR_IN) {
21502 ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotify");
21504 ndr_print_ptr(ndr, "handle", r->in.handle);
21506 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21508 ndr_print_uint32(ndr, "change_low", r->in.change_low);
21509 ndr_print_ptr(ndr, "options", r->in.options);
21511 if (r->in.options) {
21512 ndr_print_spoolss_NotifyOption(ndr, "options", r->in.options);
21517 if (flags & NDR_OUT) {
21518 ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotify");
21520 ndr_print_ptr(ndr, "info", r->out.info);
21522 ndr_print_ptr(ndr, "info", *r->out.info);
21524 if (*r->out.info) {
21525 ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
21529 ndr_print_WERROR(ndr, "result", r->out.result);
21535 static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, int flags, const struct spoolss_44 *r)
21537 if (flags & NDR_IN) {
21539 if (flags & NDR_OUT) {
21540 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21542 return NDR_ERR_SUCCESS;
21545 static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, int flags, struct spoolss_44 *r)
21547 if (flags & NDR_IN) {
21549 if (flags & NDR_OUT) {
21550 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21552 return NDR_ERR_SUCCESS;
21555 _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_44 *r)
21557 ndr_print_struct(ndr, name, "spoolss_44");
21559 if (flags & NDR_SET_VALUES) {
21560 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21562 if (flags & NDR_IN) {
21563 ndr_print_struct(ndr, "in", "spoolss_44");
21567 if (flags & NDR_OUT) {
21568 ndr_print_struct(ndr, "out", "spoolss_44");
21570 ndr_print_WERROR(ndr, "result", r->out.result);
21576 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinterEx *r)
21578 if (flags & NDR_IN) {
21579 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
21580 if (r->in.printername) {
21581 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
21582 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21583 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
21584 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21586 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
21587 if (r->in.datatype) {
21588 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
21589 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21590 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
21591 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21593 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
21594 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
21595 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21596 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.userlevel, r->in.level));
21597 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
21599 if (flags & NDR_OUT) {
21600 if (r->out.handle == NULL) {
21601 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21603 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21604 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21606 return NDR_ERR_SUCCESS;
21609 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinterEx *r)
21611 uint32_t _ptr_printername;
21612 uint32_t _ptr_datatype;
21613 TALLOC_CTX *_mem_save_printername_0;
21614 TALLOC_CTX *_mem_save_datatype_0;
21615 TALLOC_CTX *_mem_save_handle_0;
21616 if (flags & NDR_IN) {
21617 ZERO_STRUCT(r->out);
21619 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
21620 if (_ptr_printername) {
21621 NDR_PULL_ALLOC(ndr, r->in.printername);
21623 r->in.printername = NULL;
21625 if (r->in.printername) {
21626 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
21627 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
21628 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
21629 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
21630 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
21631 return 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));
21633 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
21634 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
21635 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
21637 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
21638 if (_ptr_datatype) {
21639 NDR_PULL_ALLOC(ndr, r->in.datatype);
21641 r->in.datatype = NULL;
21643 if (r->in.datatype) {
21644 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
21645 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
21646 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
21647 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
21648 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
21649 return 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));
21651 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
21652 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
21653 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
21655 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
21656 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
21657 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21658 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.userlevel, r->in.level));
21659 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
21660 NDR_PULL_ALLOC(ndr, r->out.handle);
21661 ZERO_STRUCTP(r->out.handle);
21663 if (flags & NDR_OUT) {
21664 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21665 NDR_PULL_ALLOC(ndr, r->out.handle);
21667 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21668 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
21669 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21670 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21671 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21673 return NDR_ERR_SUCCESS;
21676 _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinterEx *r)
21678 ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
21680 if (flags & NDR_SET_VALUES) {
21681 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21683 if (flags & NDR_IN) {
21684 ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
21686 ndr_print_ptr(ndr, "printername", r->in.printername);
21688 if (r->in.printername) {
21689 ndr_print_string(ndr, "printername", r->in.printername);
21692 ndr_print_ptr(ndr, "datatype", r->in.datatype);
21694 if (r->in.datatype) {
21695 ndr_print_string(ndr, "datatype", r->in.datatype);
21698 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
21699 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
21700 ndr_print_uint32(ndr, "level", r->in.level);
21701 ndr_print_set_switch_value(ndr, &r->in.userlevel, r->in.level);
21702 ndr_print_spoolss_UserLevel(ndr, "userlevel", &r->in.userlevel);
21705 if (flags & NDR_OUT) {
21706 ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
21708 ndr_print_ptr(ndr, "handle", r->out.handle);
21710 ndr_print_policy_handle(ndr, "handle", r->out.handle);
21712 ndr_print_WERROR(ndr, "result", r->out.result);
21718 static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterEx *r)
21720 if (flags & NDR_IN) {
21721 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21722 if (r->in.server) {
21723 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, 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.server, CH_UTF16)));
21726 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21728 if (r->in.info_ctr == NULL) {
21729 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21731 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21732 if (r->in.devmode_ctr == NULL) {
21733 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21735 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21736 if (r->in.secdesc_ctr == NULL) {
21737 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21739 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21740 if (r->in.userlevel_ctr == NULL) {
21741 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21743 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
21745 if (flags & NDR_OUT) {
21746 if (r->out.handle == NULL) {
21747 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21749 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21750 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21752 return NDR_ERR_SUCCESS;
21755 static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterEx *r)
21757 uint32_t _ptr_server;
21758 TALLOC_CTX *_mem_save_server_0;
21759 TALLOC_CTX *_mem_save_info_ctr_0;
21760 TALLOC_CTX *_mem_save_devmode_ctr_0;
21761 TALLOC_CTX *_mem_save_secdesc_ctr_0;
21762 TALLOC_CTX *_mem_save_userlevel_ctr_0;
21763 TALLOC_CTX *_mem_save_handle_0;
21764 if (flags & NDR_IN) {
21765 ZERO_STRUCT(r->out);
21767 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21769 NDR_PULL_ALLOC(ndr, r->in.server);
21771 r->in.server = NULL;
21773 if (r->in.server) {
21774 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21775 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21776 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21777 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21778 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21779 return 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));
21781 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21782 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21783 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21785 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21786 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
21788 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21789 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
21790 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21791 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21792 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21793 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
21795 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21796 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
21797 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21798 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21799 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21800 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
21802 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21803 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
21804 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21805 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21806 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21807 NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
21809 _mem_save_userlevel_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21810 NDR_PULL_SET_MEM_CTX(ndr, r->in.userlevel_ctr, LIBNDR_FLAG_REF_ALLOC);
21811 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
21812 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userlevel_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21813 NDR_PULL_ALLOC(ndr, r->out.handle);
21814 ZERO_STRUCTP(r->out.handle);
21816 if (flags & NDR_OUT) {
21817 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21818 NDR_PULL_ALLOC(ndr, r->out.handle);
21820 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21821 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
21822 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21823 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21824 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21826 return NDR_ERR_SUCCESS;
21829 _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterEx *r)
21831 ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
21833 if (flags & NDR_SET_VALUES) {
21834 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21836 if (flags & NDR_IN) {
21837 ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
21839 ndr_print_ptr(ndr, "server", r->in.server);
21841 if (r->in.server) {
21842 ndr_print_string(ndr, "server", r->in.server);
21845 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
21847 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
21849 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
21851 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
21853 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21855 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21857 ndr_print_ptr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
21859 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
21863 if (flags & NDR_OUT) {
21864 ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
21866 ndr_print_ptr(ndr, "handle", r->out.handle);
21868 ndr_print_policy_handle(ndr, "handle", r->out.handle);
21870 ndr_print_WERROR(ndr, "result", r->out.result);
21876 static enum ndr_err_code ndr_push_spoolss_47(struct ndr_push *ndr, int flags, const struct spoolss_47 *r)
21878 if (flags & NDR_IN) {
21880 if (flags & NDR_OUT) {
21881 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21883 return NDR_ERR_SUCCESS;
21886 static enum ndr_err_code ndr_pull_spoolss_47(struct ndr_pull *ndr, int flags, struct spoolss_47 *r)
21888 if (flags & NDR_IN) {
21890 if (flags & NDR_OUT) {
21891 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21893 return NDR_ERR_SUCCESS;
21896 _PUBLIC_ void ndr_print_spoolss_47(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_47 *r)
21898 ndr_print_struct(ndr, name, "spoolss_47");
21900 if (flags & NDR_SET_VALUES) {
21901 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21903 if (flags & NDR_IN) {
21904 ndr_print_struct(ndr, "in", "spoolss_47");
21908 if (flags & NDR_OUT) {
21909 ndr_print_struct(ndr, "out", "spoolss_47");
21911 ndr_print_WERROR(ndr, "result", r->out.result);
21917 static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterData *r)
21919 if (flags & NDR_IN) {
21920 if (r->in.handle == NULL) {
21921 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21923 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21924 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
21925 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
21926 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
21928 if (flags & NDR_OUT) {
21929 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered / 2));
21930 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
21931 if (r->out.value_needed == NULL) {
21932 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21934 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
21935 if (r->out.printerdata_type == NULL) {
21936 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21938 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.printerdata_type));
21939 if (r->out.buffer == NULL) {
21940 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21942 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.buffer));
21943 if (r->out.data_needed == NULL) {
21944 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21946 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
21947 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21949 return NDR_ERR_SUCCESS;
21952 static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterData *r)
21954 TALLOC_CTX *_mem_save_handle_0;
21955 TALLOC_CTX *_mem_save_value_needed_0;
21956 TALLOC_CTX *_mem_save_printerdata_type_0;
21957 TALLOC_CTX *_mem_save_buffer_0;
21958 TALLOC_CTX *_mem_save_data_needed_0;
21959 if (flags & NDR_IN) {
21960 ZERO_STRUCT(r->out);
21962 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21963 NDR_PULL_ALLOC(ndr, r->in.handle);
21965 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21966 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21967 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21968 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21969 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
21970 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
21971 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
21972 NDR_PULL_ALLOC(ndr, r->out.value_needed);
21973 ZERO_STRUCTP(r->out.value_needed);
21974 NDR_PULL_ALLOC(ndr, r->out.printerdata_type);
21975 ZERO_STRUCTP(r->out.printerdata_type);
21976 NDR_PULL_ALLOC(ndr, r->out.buffer);
21977 ZERO_STRUCTP(r->out.buffer);
21978 NDR_PULL_ALLOC(ndr, r->out.data_needed);
21979 ZERO_STRUCTP(r->out.data_needed);
21981 if (flags & NDR_OUT) {
21982 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
21983 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));
21984 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21985 NDR_PULL_ALLOC(ndr, r->out.value_needed);
21987 _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21988 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
21989 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
21990 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
21991 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21992 NDR_PULL_ALLOC(ndr, r->out.printerdata_type);
21994 _mem_save_printerdata_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
21995 NDR_PULL_SET_MEM_CTX(ndr, r->out.printerdata_type, LIBNDR_FLAG_REF_ALLOC);
21996 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.printerdata_type));
21997 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printerdata_type_0, LIBNDR_FLAG_REF_ALLOC);
21998 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21999 NDR_PULL_ALLOC(ndr, r->out.buffer);
22001 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22002 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
22003 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.buffer));
22004 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
22005 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22006 NDR_PULL_ALLOC(ndr, r->out.data_needed);
22008 _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22009 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
22010 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
22011 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
22012 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22013 if (r->out.value_name) {
22014 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
22017 return NDR_ERR_SUCCESS;
22020 _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterData *r)
22022 ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
22024 if (flags & NDR_SET_VALUES) {
22025 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22027 if (flags & NDR_IN) {
22028 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
22030 ndr_print_ptr(ndr, "handle", r->in.handle);
22032 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22034 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
22035 ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
22036 ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
22039 if (flags & NDR_OUT) {
22040 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
22042 ndr_print_string(ndr, "value_name", r->out.value_name);
22043 ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
22045 ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
22047 ndr_print_ptr(ndr, "printerdata_type", r->out.printerdata_type);
22049 ndr_print_uint32(ndr, "printerdata_type", *r->out.printerdata_type);
22051 ndr_print_ptr(ndr, "buffer", r->out.buffer);
22053 ndr_print_DATA_BLOB(ndr, "buffer", *r->out.buffer);
22055 ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
22057 ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
22059 ndr_print_WERROR(ndr, "result", r->out.result);
22065 static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterData *r)
22067 if (flags & NDR_IN) {
22068 if (r->in.handle == NULL) {
22069 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22071 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22072 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22073 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22074 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22075 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));
22077 if (flags & NDR_OUT) {
22078 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22080 return NDR_ERR_SUCCESS;
22083 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterData(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterData *r)
22085 TALLOC_CTX *_mem_save_handle_0;
22086 if (flags & NDR_IN) {
22087 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22088 NDR_PULL_ALLOC(ndr, r->in.handle);
22090 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22091 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22092 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22093 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22094 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
22095 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
22096 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
22097 return 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));
22099 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
22100 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));
22102 if (flags & NDR_OUT) {
22103 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22105 return NDR_ERR_SUCCESS;
22108 _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterData *r)
22110 ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
22112 if (flags & NDR_SET_VALUES) {
22113 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22115 if (flags & NDR_IN) {
22116 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
22118 ndr_print_ptr(ndr, "handle", r->in.handle);
22120 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22122 ndr_print_string(ndr, "value_name", r->in.value_name);
22125 if (flags & NDR_OUT) {
22126 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
22128 ndr_print_WERROR(ndr, "result", r->out.result);
22134 static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, int flags, const struct spoolss_4a *r)
22136 if (flags & NDR_IN) {
22138 if (flags & NDR_OUT) {
22139 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22141 return NDR_ERR_SUCCESS;
22144 static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, int flags, struct spoolss_4a *r)
22146 if (flags & NDR_IN) {
22148 if (flags & NDR_OUT) {
22149 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22151 return NDR_ERR_SUCCESS;
22154 _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4a *r)
22156 ndr_print_struct(ndr, name, "spoolss_4a");
22158 if (flags & NDR_SET_VALUES) {
22159 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22161 if (flags & NDR_IN) {
22162 ndr_print_struct(ndr, "in", "spoolss_4a");
22166 if (flags & NDR_OUT) {
22167 ndr_print_struct(ndr, "out", "spoolss_4a");
22169 ndr_print_WERROR(ndr, "result", r->out.result);
22175 static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, int flags, const struct spoolss_4b *r)
22177 if (flags & NDR_IN) {
22179 if (flags & NDR_OUT) {
22180 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22182 return NDR_ERR_SUCCESS;
22185 static enum ndr_err_code ndr_pull_spoolss_4b(struct ndr_pull *ndr, int flags, struct spoolss_4b *r)
22187 if (flags & NDR_IN) {
22189 if (flags & NDR_OUT) {
22190 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22192 return NDR_ERR_SUCCESS;
22195 _PUBLIC_ void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r)
22197 ndr_print_struct(ndr, name, "spoolss_4b");
22199 if (flags & NDR_SET_VALUES) {
22200 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22202 if (flags & NDR_IN) {
22203 ndr_print_struct(ndr, "in", "spoolss_4b");
22207 if (flags & NDR_OUT) {
22208 ndr_print_struct(ndr, "out", "spoolss_4b");
22210 ndr_print_WERROR(ndr, "result", r->out.result);
22216 static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, int flags, const struct spoolss_4c *r)
22218 if (flags & NDR_IN) {
22220 if (flags & NDR_OUT) {
22221 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22223 return NDR_ERR_SUCCESS;
22226 static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, int flags, struct spoolss_4c *r)
22228 if (flags & NDR_IN) {
22230 if (flags & NDR_OUT) {
22231 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22233 return NDR_ERR_SUCCESS;
22236 _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4c *r)
22238 ndr_print_struct(ndr, name, "spoolss_4c");
22240 if (flags & NDR_SET_VALUES) {
22241 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22243 if (flags & NDR_IN) {
22244 ndr_print_struct(ndr, "in", "spoolss_4c");
22248 if (flags & NDR_OUT) {
22249 ndr_print_struct(ndr, "out", "spoolss_4c");
22251 ndr_print_WERROR(ndr, "result", r->out.result);
22257 static enum ndr_err_code ndr_push_spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterDataEx *r)
22259 if (flags & NDR_IN) {
22260 if (r->in.handle == NULL) {
22261 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22263 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22264 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22265 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22266 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22267 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));
22268 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22269 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22270 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22271 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));
22272 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.type));
22273 if (r->in.buffer == NULL) {
22274 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22276 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22277 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
22278 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22280 if (flags & NDR_OUT) {
22281 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22283 return NDR_ERR_SUCCESS;
22286 static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterDataEx *r)
22288 TALLOC_CTX *_mem_save_handle_0;
22289 if (flags & NDR_IN) {
22290 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22291 NDR_PULL_ALLOC(ndr, r->in.handle);
22293 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22294 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22295 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22296 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22297 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
22298 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
22299 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
22300 return 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));
22302 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
22303 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));
22304 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
22305 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
22306 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
22307 return 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));
22309 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
22310 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));
22311 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.type));
22312 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
22313 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22314 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
22316 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
22317 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22318 if (r->in.buffer) {
22319 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
22322 if (flags & NDR_OUT) {
22323 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22325 return NDR_ERR_SUCCESS;
22328 _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterDataEx *r)
22330 ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
22332 if (flags & NDR_SET_VALUES) {
22333 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22335 if (flags & NDR_IN) {
22336 ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
22338 ndr_print_ptr(ndr, "handle", r->in.handle);
22340 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22342 ndr_print_string(ndr, "key_name", r->in.key_name);
22343 ndr_print_string(ndr, "value_name", r->in.value_name);
22344 ndr_print_uint32(ndr, "type", r->in.type);
22345 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22347 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
22349 ndr_print_uint32(ndr, "offered", r->in.offered);
22352 if (flags & NDR_OUT) {
22353 ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
22355 ndr_print_WERROR(ndr, "result", r->out.result);
22361 static enum ndr_err_code ndr_push_spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDataEx *r)
22363 if (flags & NDR_IN) {
22364 if (r->in.handle == NULL) {
22365 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22367 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22368 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22369 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22370 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22371 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));
22372 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22373 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22374 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22375 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));
22376 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22378 if (flags & NDR_OUT) {
22379 if (r->out.type == NULL) {
22380 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22382 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.type));
22383 if (r->out.buffer == NULL) {
22384 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22387 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
22388 if (r->out.needed == NULL) {
22389 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22391 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22392 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22394 return NDR_ERR_SUCCESS;
22397 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDataEx *r)
22399 TALLOC_CTX *_mem_save_handle_0;
22400 TALLOC_CTX *_mem_save_type_0;
22401 TALLOC_CTX *_mem_save_needed_0;
22402 if (flags & NDR_IN) {
22403 ZERO_STRUCT(r->out);
22405 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22406 NDR_PULL_ALLOC(ndr, r->in.handle);
22408 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22409 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22410 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22411 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22412 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
22413 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
22414 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
22415 return 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));
22417 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
22418 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));
22419 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
22420 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
22421 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
22422 return 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));
22424 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
22425 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));
22426 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22427 NDR_PULL_ALLOC(ndr, r->out.type);
22428 ZERO_STRUCTP(r->out.type);
22429 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
22430 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
22431 NDR_PULL_ALLOC(ndr, r->out.needed);
22432 ZERO_STRUCTP(r->out.needed);
22434 if (flags & NDR_OUT) {
22435 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22436 NDR_PULL_ALLOC(ndr, r->out.type);
22438 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
22439 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
22440 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.type));
22441 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
22442 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
22443 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22444 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
22446 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
22447 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22448 NDR_PULL_ALLOC(ndr, r->out.needed);
22450 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22451 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22452 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22453 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22454 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22455 if (r->out.buffer) {
22456 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
22459 return NDR_ERR_SUCCESS;
22462 _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r)
22464 ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
22466 if (flags & NDR_SET_VALUES) {
22467 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22469 if (flags & NDR_IN) {
22470 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
22472 ndr_print_ptr(ndr, "handle", r->in.handle);
22474 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22476 ndr_print_string(ndr, "key_name", r->in.key_name);
22477 ndr_print_string(ndr, "value_name", r->in.value_name);
22478 ndr_print_uint32(ndr, "offered", r->in.offered);
22481 if (flags & NDR_OUT) {
22482 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
22484 ndr_print_ptr(ndr, "type", r->out.type);
22486 ndr_print_uint32(ndr, "type", *r->out.type);
22488 ndr_print_ptr(ndr, "buffer", r->out.buffer);
22490 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
22492 ndr_print_ptr(ndr, "needed", r->out.needed);
22494 ndr_print_uint32(ndr, "needed", *r->out.needed);
22496 ndr_print_WERROR(ndr, "result", r->out.result);
22502 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterDataEx *r)
22504 if (flags & NDR_IN) {
22505 if (r->in.handle == NULL) {
22506 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22508 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22509 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22510 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22511 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22512 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));
22513 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22515 if (flags & NDR_OUT) {
22516 if (r->out.buffer == NULL) {
22517 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22519 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22520 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
22521 if (r->out.needed == NULL) {
22522 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22524 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22525 if (r->out.count == NULL) {
22526 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22528 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22529 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22531 return NDR_ERR_SUCCESS;
22534 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterDataEx *r)
22536 TALLOC_CTX *_mem_save_handle_0;
22537 TALLOC_CTX *_mem_save_needed_0;
22538 TALLOC_CTX *_mem_save_count_0;
22539 if (flags & NDR_IN) {
22540 ZERO_STRUCT(r->out);
22542 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22543 NDR_PULL_ALLOC(ndr, r->in.handle);
22545 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22546 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22547 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22548 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22549 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
22550 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
22551 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
22552 return 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));
22554 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
22555 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));
22556 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22557 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
22558 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
22559 NDR_PULL_ALLOC(ndr, r->out.needed);
22560 ZERO_STRUCTP(r->out.needed);
22561 NDR_PULL_ALLOC(ndr, r->out.count);
22562 ZERO_STRUCTP(r->out.count);
22564 if (flags & NDR_OUT) {
22565 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
22566 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22567 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
22569 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
22570 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22571 NDR_PULL_ALLOC(ndr, r->out.needed);
22573 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22574 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22575 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22576 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22577 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22578 NDR_PULL_ALLOC(ndr, r->out.count);
22580 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22581 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22582 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22583 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22584 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22585 if (r->out.buffer) {
22586 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
22589 return NDR_ERR_SUCCESS;
22592 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDataEx *r)
22594 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
22596 if (flags & NDR_SET_VALUES) {
22597 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22599 if (flags & NDR_IN) {
22600 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDataEx");
22602 ndr_print_ptr(ndr, "handle", r->in.handle);
22604 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22606 ndr_print_string(ndr, "key_name", r->in.key_name);
22607 ndr_print_uint32(ndr, "offered", r->in.offered);
22610 if (flags & NDR_OUT) {
22611 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
22613 ndr_print_ptr(ndr, "buffer", r->out.buffer);
22615 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
22617 ndr_print_ptr(ndr, "needed", r->out.needed);
22619 ndr_print_uint32(ndr, "needed", *r->out.needed);
22621 ndr_print_ptr(ndr, "count", r->out.count);
22623 ndr_print_uint32(ndr, "count", *r->out.count);
22625 ndr_print_WERROR(ndr, "result", r->out.result);
22631 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterKey *r)
22633 uint32_t cntr_key_buffer_1;
22634 if (flags & NDR_IN) {
22635 if (r->in.handle == NULL) {
22636 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22638 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22639 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22640 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22641 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22642 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));
22643 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.key_buffer_size));
22645 if (flags & NDR_OUT) {
22646 if (r->out.key_buffer == NULL) {
22647 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22649 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.key_buffer_size / 2));
22650 for (cntr_key_buffer_1 = 0; cntr_key_buffer_1 < r->in.key_buffer_size / 2; cntr_key_buffer_1++) {
22651 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.key_buffer[cntr_key_buffer_1]));
22653 if (r->out.needed == NULL) {
22654 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22656 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22657 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22659 return NDR_ERR_SUCCESS;
22662 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterKey *r)
22664 uint32_t cntr_key_buffer_1;
22665 TALLOC_CTX *_mem_save_handle_0;
22666 TALLOC_CTX *_mem_save_key_buffer_1;
22667 TALLOC_CTX *_mem_save_needed_0;
22668 if (flags & NDR_IN) {
22669 ZERO_STRUCT(r->out);
22671 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22672 NDR_PULL_ALLOC(ndr, r->in.handle);
22674 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22675 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22676 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22677 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22678 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
22679 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
22680 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
22681 return 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));
22683 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
22684 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));
22685 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.key_buffer_size));
22686 NDR_PULL_ALLOC_N(ndr, r->out.key_buffer, r->in.key_buffer_size / 2);
22687 memset(r->out.key_buffer, 0, (r->in.key_buffer_size / 2) * sizeof(*r->out.key_buffer));
22688 NDR_PULL_ALLOC(ndr, r->out.needed);
22689 ZERO_STRUCTP(r->out.needed);
22691 if (flags & NDR_OUT) {
22692 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.key_buffer));
22693 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22694 NDR_PULL_ALLOC_N(ndr, r->out.key_buffer, ndr_get_array_size(ndr, &r->out.key_buffer));
22696 _mem_save_key_buffer_1 = NDR_PULL_GET_MEM_CTX(ndr);
22697 NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, 0);
22698 for (cntr_key_buffer_1 = 0; cntr_key_buffer_1 < r->in.key_buffer_size / 2; cntr_key_buffer_1++) {
22699 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.key_buffer[cntr_key_buffer_1]));
22701 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_1, 0);
22702 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22703 NDR_PULL_ALLOC(ndr, r->out.needed);
22705 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22706 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22707 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22708 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22709 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22710 if (r->out.key_buffer) {
22711 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.key_buffer, r->in.key_buffer_size / 2));
22714 return NDR_ERR_SUCCESS;
22717 _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterKey *r)
22719 uint32_t cntr_key_buffer_1;
22720 ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
22722 if (flags & NDR_SET_VALUES) {
22723 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22725 if (flags & NDR_IN) {
22726 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterKey");
22728 ndr_print_ptr(ndr, "handle", r->in.handle);
22730 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22732 ndr_print_string(ndr, "key_name", r->in.key_name);
22733 ndr_print_uint32(ndr, "key_buffer_size", r->in.key_buffer_size);
22736 if (flags & NDR_OUT) {
22737 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
22739 ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
22741 ndr->print(ndr, "%s: ARRAY(%d)", "key_buffer", (int)r->in.key_buffer_size / 2);
22743 for (cntr_key_buffer_1=0;cntr_key_buffer_1<r->in.key_buffer_size / 2;cntr_key_buffer_1++) {
22745 if (asprintf(&idx_1, "[%d]", cntr_key_buffer_1) != -1) {
22746 ndr_print_uint16(ndr, "key_buffer", r->out.key_buffer[cntr_key_buffer_1]);
22752 ndr_print_ptr(ndr, "needed", r->out.needed);
22754 ndr_print_uint32(ndr, "needed", *r->out.needed);
22756 ndr_print_WERROR(ndr, "result", r->out.result);
22762 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDataEx *r)
22764 if (flags & NDR_IN) {
22765 if (r->in.handle == NULL) {
22766 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22768 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22769 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22770 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22771 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22772 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));
22773 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22774 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22775 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22776 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));
22778 if (flags & NDR_OUT) {
22779 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22781 return NDR_ERR_SUCCESS;
22784 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDataEx *r)
22786 TALLOC_CTX *_mem_save_handle_0;
22787 if (flags & NDR_IN) {
22788 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22789 NDR_PULL_ALLOC(ndr, r->in.handle);
22791 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22792 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22793 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22794 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22795 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
22796 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
22797 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
22798 return 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));
22800 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
22801 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));
22802 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
22803 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
22804 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
22805 return 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));
22807 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
22808 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));
22810 if (flags & NDR_OUT) {
22811 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22813 return NDR_ERR_SUCCESS;
22816 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDataEx *r)
22818 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
22820 if (flags & NDR_SET_VALUES) {
22821 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22823 if (flags & NDR_IN) {
22824 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDataEx");
22826 ndr_print_ptr(ndr, "handle", r->in.handle);
22828 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22830 ndr_print_string(ndr, "key_name", r->in.key_name);
22831 ndr_print_string(ndr, "value_name", r->in.value_name);
22834 if (flags & NDR_OUT) {
22835 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
22837 ndr_print_WERROR(ndr, "result", r->out.result);
22843 static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterKey *r)
22845 if (flags & NDR_IN) {
22846 if (r->in.handle == NULL) {
22847 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22849 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22850 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22851 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22852 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22853 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));
22855 if (flags & NDR_OUT) {
22856 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22858 return NDR_ERR_SUCCESS;
22861 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterKey *r)
22863 TALLOC_CTX *_mem_save_handle_0;
22864 if (flags & NDR_IN) {
22865 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22866 NDR_PULL_ALLOC(ndr, r->in.handle);
22868 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22869 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22870 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22871 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22872 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
22873 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
22874 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
22875 return 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));
22877 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
22878 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));
22880 if (flags & NDR_OUT) {
22881 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22883 return NDR_ERR_SUCCESS;
22886 _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterKey *r)
22888 ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
22890 if (flags & NDR_SET_VALUES) {
22891 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22893 if (flags & NDR_IN) {
22894 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
22896 ndr_print_ptr(ndr, "handle", r->in.handle);
22898 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22900 ndr_print_string(ndr, "key_name", r->in.key_name);
22903 if (flags & NDR_OUT) {
22904 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
22906 ndr_print_WERROR(ndr, "result", r->out.result);
22912 static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, int flags, const struct spoolss_53 *r)
22914 if (flags & NDR_IN) {
22916 if (flags & NDR_OUT) {
22917 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22919 return NDR_ERR_SUCCESS;
22922 static enum ndr_err_code ndr_pull_spoolss_53(struct ndr_pull *ndr, int flags, struct spoolss_53 *r)
22924 if (flags & NDR_IN) {
22926 if (flags & NDR_OUT) {
22927 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22929 return NDR_ERR_SUCCESS;
22932 _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_53 *r)
22934 ndr_print_struct(ndr, name, "spoolss_53");
22936 if (flags & NDR_SET_VALUES) {
22937 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22939 if (flags & NDR_IN) {
22940 ndr_print_struct(ndr, "in", "spoolss_53");
22944 if (flags & NDR_OUT) {
22945 ndr_print_struct(ndr, "out", "spoolss_53");
22947 ndr_print_WERROR(ndr, "result", r->out.result);
22953 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriverEx *r)
22955 if (flags & NDR_IN) {
22956 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22957 if (r->in.server) {
22958 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22959 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22960 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22961 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22963 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22964 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22965 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22966 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22967 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
22968 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22969 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
22970 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22971 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
22972 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
22974 if (flags & NDR_OUT) {
22975 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22977 return NDR_ERR_SUCCESS;
22980 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriverEx *r)
22982 uint32_t _ptr_server;
22983 TALLOC_CTX *_mem_save_server_0;
22984 if (flags & NDR_IN) {
22985 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22987 NDR_PULL_ALLOC(ndr, r->in.server);
22989 r->in.server = NULL;
22991 if (r->in.server) {
22992 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22993 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22994 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22995 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22996 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22997 return 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));
22999 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
23000 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
23001 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
23003 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
23004 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
23005 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
23006 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.architecture), ndr_get_array_length(ndr, &r->in.architecture));
23008 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
23009 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
23010 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
23011 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
23012 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
23013 return 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));
23015 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
23016 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
23017 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
23018 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
23020 if (flags & NDR_OUT) {
23021 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23023 return NDR_ERR_SUCCESS;
23026 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriverEx *r)
23028 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
23030 if (flags & NDR_SET_VALUES) {
23031 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23033 if (flags & NDR_IN) {
23034 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
23036 ndr_print_ptr(ndr, "server", r->in.server);
23038 if (r->in.server) {
23039 ndr_print_string(ndr, "server", r->in.server);
23042 ndr_print_string(ndr, "architecture", r->in.architecture);
23043 ndr_print_string(ndr, "driver", r->in.driver);
23044 ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
23045 ndr_print_uint32(ndr, "version", r->in.version);
23048 if (flags & NDR_OUT) {
23049 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
23051 ndr_print_WERROR(ndr, "result", r->out.result);
23057 static enum ndr_err_code ndr_push_spoolss_55(struct ndr_push *ndr, int flags, const struct spoolss_55 *r)
23059 if (flags & NDR_IN) {
23061 if (flags & NDR_OUT) {
23062 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23064 return NDR_ERR_SUCCESS;
23067 static enum ndr_err_code ndr_pull_spoolss_55(struct ndr_pull *ndr, int flags, struct spoolss_55 *r)
23069 if (flags & NDR_IN) {
23071 if (flags & NDR_OUT) {
23072 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23074 return NDR_ERR_SUCCESS;
23077 _PUBLIC_ void ndr_print_spoolss_55(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_55 *r)
23079 ndr_print_struct(ndr, name, "spoolss_55");
23081 if (flags & NDR_SET_VALUES) {
23082 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23084 if (flags & NDR_IN) {
23085 ndr_print_struct(ndr, "in", "spoolss_55");
23089 if (flags & NDR_OUT) {
23090 ndr_print_struct(ndr, "out", "spoolss_55");
23092 ndr_print_WERROR(ndr, "result", r->out.result);
23098 static enum ndr_err_code ndr_push_spoolss_56(struct ndr_push *ndr, int flags, const struct spoolss_56 *r)
23100 if (flags & NDR_IN) {
23102 if (flags & NDR_OUT) {
23103 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23105 return NDR_ERR_SUCCESS;
23108 static enum ndr_err_code ndr_pull_spoolss_56(struct ndr_pull *ndr, int flags, struct spoolss_56 *r)
23110 if (flags & NDR_IN) {
23112 if (flags & NDR_OUT) {
23113 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23115 return NDR_ERR_SUCCESS;
23118 _PUBLIC_ void ndr_print_spoolss_56(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_56 *r)
23120 ndr_print_struct(ndr, name, "spoolss_56");
23122 if (flags & NDR_SET_VALUES) {
23123 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23125 if (flags & NDR_IN) {
23126 ndr_print_struct(ndr, "in", "spoolss_56");
23130 if (flags & NDR_OUT) {
23131 ndr_print_struct(ndr, "out", "spoolss_56");
23133 ndr_print_WERROR(ndr, "result", r->out.result);
23139 static enum ndr_err_code ndr_push_spoolss_57(struct ndr_push *ndr, int flags, const struct spoolss_57 *r)
23141 if (flags & NDR_IN) {
23143 if (flags & NDR_OUT) {
23144 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23146 return NDR_ERR_SUCCESS;
23149 static enum ndr_err_code ndr_pull_spoolss_57(struct ndr_pull *ndr, int flags, struct spoolss_57 *r)
23151 if (flags & NDR_IN) {
23153 if (flags & NDR_OUT) {
23154 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23156 return NDR_ERR_SUCCESS;
23159 _PUBLIC_ void ndr_print_spoolss_57(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_57 *r)
23161 ndr_print_struct(ndr, name, "spoolss_57");
23163 if (flags & NDR_SET_VALUES) {
23164 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23166 if (flags & NDR_IN) {
23167 ndr_print_struct(ndr, "in", "spoolss_57");
23171 if (flags & NDR_OUT) {
23172 ndr_print_struct(ndr, "out", "spoolss_57");
23174 ndr_print_WERROR(ndr, "result", r->out.result);
23180 static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, int flags, const struct spoolss_XcvData *r)
23182 if (flags & NDR_IN) {
23183 if (r->in.handle == NULL) {
23184 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23186 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23187 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
23188 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23189 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
23190 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));
23191 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
23192 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
23193 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
23194 if (r->in.status_code == NULL) {
23195 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23197 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
23199 if (flags & NDR_OUT) {
23200 if (r->out.out_data == NULL) {
23201 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23203 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
23204 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
23205 if (r->out.needed == NULL) {
23206 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23208 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23209 if (r->out.status_code == NULL) {
23210 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23212 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
23213 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23215 return NDR_ERR_SUCCESS;
23218 static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flags, struct spoolss_XcvData *r)
23220 TALLOC_CTX *_mem_save_handle_0;
23221 TALLOC_CTX *_mem_save_needed_0;
23222 TALLOC_CTX *_mem_save_status_code_0;
23223 if (flags & NDR_IN) {
23224 ZERO_STRUCT(r->out);
23226 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23227 NDR_PULL_ALLOC(ndr, r->in.handle);
23229 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23230 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23231 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23232 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23233 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
23234 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
23235 if (ndr_get_array_length(ndr, &r->in.function_name) > ndr_get_array_size(ndr, &r->in.function_name)) {
23236 return 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));
23238 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t)));
23239 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));
23240 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
23241 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
23242 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
23243 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23244 NDR_PULL_ALLOC(ndr, r->in.status_code);
23246 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
23247 NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
23248 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
23249 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
23250 NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
23251 memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
23252 NDR_PULL_ALLOC(ndr, r->out.needed);
23253 ZERO_STRUCTP(r->out.needed);
23254 NDR_PULL_ALLOC(ndr, r->out.status_code);
23255 *r->out.status_code = *r->in.status_code;
23257 if (flags & NDR_OUT) {
23258 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
23259 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23260 NDR_PULL_ALLOC_N(ndr, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data));
23262 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data)));
23263 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23264 NDR_PULL_ALLOC(ndr, r->out.needed);
23266 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23267 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23268 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23269 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23270 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23271 NDR_PULL_ALLOC(ndr, r->out.status_code);
23273 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
23274 NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
23275 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
23276 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
23277 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23278 if (r->out.out_data) {
23279 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
23282 return NDR_ERR_SUCCESS;
23285 _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_XcvData *r)
23287 ndr_print_struct(ndr, name, "spoolss_XcvData");
23289 if (flags & NDR_SET_VALUES) {
23290 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23292 if (flags & NDR_IN) {
23293 ndr_print_struct(ndr, "in", "spoolss_XcvData");
23295 ndr_print_ptr(ndr, "handle", r->in.handle);
23297 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23299 ndr_print_string(ndr, "function_name", r->in.function_name);
23300 ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
23301 ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
23302 ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
23303 ndr_print_ptr(ndr, "status_code", r->in.status_code);
23305 ndr_print_uint32(ndr, "status_code", *r->in.status_code);
23309 if (flags & NDR_OUT) {
23310 ndr_print_struct(ndr, "out", "spoolss_XcvData");
23312 ndr_print_ptr(ndr, "out_data", r->out.out_data);
23314 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
23316 ndr_print_ptr(ndr, "needed", r->out.needed);
23318 ndr_print_uint32(ndr, "needed", *r->out.needed);
23320 ndr_print_ptr(ndr, "status_code", r->out.status_code);
23322 ndr_print_uint32(ndr, "status_code", *r->out.status_code);
23324 ndr_print_WERROR(ndr, "result", r->out.result);
23330 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriverEx *r)
23332 if (flags & NDR_IN) {
23333 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
23334 if (r->in.servername) {
23335 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23336 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23337 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23338 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23340 if (r->in.info_ctr == NULL) {
23341 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23343 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
23344 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
23346 if (flags & NDR_OUT) {
23347 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23349 return NDR_ERR_SUCCESS;
23352 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriverEx *r)
23354 uint32_t _ptr_servername;
23355 TALLOC_CTX *_mem_save_servername_0;
23356 TALLOC_CTX *_mem_save_info_ctr_0;
23357 if (flags & NDR_IN) {
23358 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
23359 if (_ptr_servername) {
23360 NDR_PULL_ALLOC(ndr, r->in.servername);
23362 r->in.servername = NULL;
23364 if (r->in.servername) {
23365 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
23366 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
23367 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
23368 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
23369 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
23370 return 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));
23372 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
23373 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
23374 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
23376 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23377 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
23379 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
23380 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
23381 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
23382 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
23383 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
23385 if (flags & NDR_OUT) {
23386 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23388 return NDR_ERR_SUCCESS;
23391 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriverEx *r)
23393 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
23395 if (flags & NDR_SET_VALUES) {
23396 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23398 if (flags & NDR_IN) {
23399 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
23401 ndr_print_ptr(ndr, "servername", r->in.servername);
23403 if (r->in.servername) {
23404 ndr_print_string(ndr, "servername", r->in.servername);
23407 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
23409 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
23411 ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
23414 if (flags & NDR_OUT) {
23415 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
23417 ndr_print_WERROR(ndr, "result", r->out.result);
23423 static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, int flags, const struct spoolss_5a *r)
23425 if (flags & NDR_IN) {
23427 if (flags & NDR_OUT) {
23428 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23430 return NDR_ERR_SUCCESS;
23433 static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, int flags, struct spoolss_5a *r)
23435 if (flags & NDR_IN) {
23437 if (flags & NDR_OUT) {
23438 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23440 return NDR_ERR_SUCCESS;
23443 _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5a *r)
23445 ndr_print_struct(ndr, name, "spoolss_5a");
23447 if (flags & NDR_SET_VALUES) {
23448 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23450 if (flags & NDR_IN) {
23451 ndr_print_struct(ndr, "in", "spoolss_5a");
23455 if (flags & NDR_OUT) {
23456 ndr_print_struct(ndr, "out", "spoolss_5a");
23458 ndr_print_WERROR(ndr, "result", r->out.result);
23464 static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, int flags, const struct spoolss_5b *r)
23466 if (flags & NDR_IN) {
23468 if (flags & NDR_OUT) {
23469 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23471 return NDR_ERR_SUCCESS;
23474 static enum ndr_err_code ndr_pull_spoolss_5b(struct ndr_pull *ndr, int flags, struct spoolss_5b *r)
23476 if (flags & NDR_IN) {
23478 if (flags & NDR_OUT) {
23479 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23481 return NDR_ERR_SUCCESS;
23484 _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5b *r)
23486 ndr_print_struct(ndr, name, "spoolss_5b");
23488 if (flags & NDR_SET_VALUES) {
23489 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23491 if (flags & NDR_IN) {
23492 ndr_print_struct(ndr, "in", "spoolss_5b");
23496 if (flags & NDR_OUT) {
23497 ndr_print_struct(ndr, "out", "spoolss_5b");
23499 ndr_print_WERROR(ndr, "result", r->out.result);
23505 static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, int flags, const struct spoolss_5c *r)
23507 if (flags & NDR_IN) {
23509 if (flags & NDR_OUT) {
23510 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23512 return NDR_ERR_SUCCESS;
23515 static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, int flags, struct spoolss_5c *r)
23517 if (flags & NDR_IN) {
23519 if (flags & NDR_OUT) {
23520 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23522 return NDR_ERR_SUCCESS;
23525 _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5c *r)
23527 ndr_print_struct(ndr, name, "spoolss_5c");
23529 if (flags & NDR_SET_VALUES) {
23530 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23532 if (flags & NDR_IN) {
23533 ndr_print_struct(ndr, "in", "spoolss_5c");
23537 if (flags & NDR_OUT) {
23538 ndr_print_struct(ndr, "out", "spoolss_5c");
23540 ndr_print_WERROR(ndr, "result", r->out.result);
23546 static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, int flags, const struct spoolss_5d *r)
23548 if (flags & NDR_IN) {
23550 if (flags & NDR_OUT) {
23551 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23553 return NDR_ERR_SUCCESS;
23556 static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, int flags, struct spoolss_5d *r)
23558 if (flags & NDR_IN) {
23560 if (flags & NDR_OUT) {
23561 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23563 return NDR_ERR_SUCCESS;
23566 _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5d *r)
23568 ndr_print_struct(ndr, name, "spoolss_5d");
23570 if (flags & NDR_SET_VALUES) {
23571 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23573 if (flags & NDR_IN) {
23574 ndr_print_struct(ndr, "in", "spoolss_5d");
23578 if (flags & NDR_OUT) {
23579 ndr_print_struct(ndr, "out", "spoolss_5d");
23581 ndr_print_WERROR(ndr, "result", r->out.result);
23587 static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, int flags, const struct spoolss_5e *r)
23589 if (flags & NDR_IN) {
23591 if (flags & NDR_OUT) {
23592 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23594 return NDR_ERR_SUCCESS;
23597 static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, int flags, struct spoolss_5e *r)
23599 if (flags & NDR_IN) {
23601 if (flags & NDR_OUT) {
23602 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23604 return NDR_ERR_SUCCESS;
23607 _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5e *r)
23609 ndr_print_struct(ndr, name, "spoolss_5e");
23611 if (flags & NDR_SET_VALUES) {
23612 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23614 if (flags & NDR_IN) {
23615 ndr_print_struct(ndr, "in", "spoolss_5e");
23619 if (flags & NDR_OUT) {
23620 ndr_print_struct(ndr, "out", "spoolss_5e");
23622 ndr_print_WERROR(ndr, "result", r->out.result);
23628 static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, int flags, const struct spoolss_5f *r)
23630 if (flags & NDR_IN) {
23632 if (flags & NDR_OUT) {
23633 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23635 return NDR_ERR_SUCCESS;
23638 static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, int flags, struct spoolss_5f *r)
23640 if (flags & NDR_IN) {
23642 if (flags & NDR_OUT) {
23643 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23645 return NDR_ERR_SUCCESS;
23648 _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5f *r)
23650 ndr_print_struct(ndr, name, "spoolss_5f");
23652 if (flags & NDR_SET_VALUES) {
23653 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23655 if (flags & NDR_IN) {
23656 ndr_print_struct(ndr, "in", "spoolss_5f");
23660 if (flags & NDR_OUT) {
23661 ndr_print_struct(ndr, "out", "spoolss_5f");
23663 ndr_print_WERROR(ndr, "result", r->out.result);
23669 static const struct ndr_interface_call spoolss_calls[] = {
23671 "spoolss_EnumPrinters",
23672 sizeof(struct spoolss_EnumPrinters),
23673 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
23674 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
23675 (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
23679 "spoolss_OpenPrinter",
23680 sizeof(struct spoolss_OpenPrinter),
23681 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
23682 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
23683 (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
23688 sizeof(struct spoolss_SetJob),
23689 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
23690 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
23691 (ndr_print_function_t) ndr_print_spoolss_SetJob,
23696 sizeof(struct spoolss_GetJob),
23697 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
23698 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
23699 (ndr_print_function_t) ndr_print_spoolss_GetJob,
23703 "spoolss_EnumJobs",
23704 sizeof(struct spoolss_EnumJobs),
23705 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
23706 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
23707 (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
23711 "spoolss_AddPrinter",
23712 sizeof(struct spoolss_AddPrinter),
23713 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
23714 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
23715 (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
23719 "spoolss_DeletePrinter",
23720 sizeof(struct spoolss_DeletePrinter),
23721 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
23722 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
23723 (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
23727 "spoolss_SetPrinter",
23728 sizeof(struct spoolss_SetPrinter),
23729 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
23730 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
23731 (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
23735 "spoolss_GetPrinter",
23736 sizeof(struct spoolss_GetPrinter),
23737 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
23738 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
23739 (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
23743 "spoolss_AddPrinterDriver",
23744 sizeof(struct spoolss_AddPrinterDriver),
23745 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
23746 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
23747 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
23751 "spoolss_EnumPrinterDrivers",
23752 sizeof(struct spoolss_EnumPrinterDrivers),
23753 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
23754 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
23755 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
23759 "spoolss_GetPrinterDriver",
23760 sizeof(struct spoolss_GetPrinterDriver),
23761 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
23762 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
23763 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
23767 "spoolss_GetPrinterDriverDirectory",
23768 sizeof(struct spoolss_GetPrinterDriverDirectory),
23769 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
23770 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
23771 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
23775 "spoolss_DeletePrinterDriver",
23776 sizeof(struct spoolss_DeletePrinterDriver),
23777 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
23778 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
23779 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
23783 "spoolss_AddPrintProcessor",
23784 sizeof(struct spoolss_AddPrintProcessor),
23785 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
23786 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
23787 (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
23791 "spoolss_EnumPrintProcessors",
23792 sizeof(struct spoolss_EnumPrintProcessors),
23793 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
23794 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
23795 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
23799 "spoolss_GetPrintProcessorDirectory",
23800 sizeof(struct spoolss_GetPrintProcessorDirectory),
23801 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
23802 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
23803 (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
23807 "spoolss_StartDocPrinter",
23808 sizeof(struct spoolss_StartDocPrinter),
23809 (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
23810 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
23811 (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
23815 "spoolss_StartPagePrinter",
23816 sizeof(struct spoolss_StartPagePrinter),
23817 (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
23818 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
23819 (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
23823 "spoolss_WritePrinter",
23824 sizeof(struct spoolss_WritePrinter),
23825 (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
23826 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
23827 (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
23831 "spoolss_EndPagePrinter",
23832 sizeof(struct spoolss_EndPagePrinter),
23833 (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
23834 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
23835 (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
23839 "spoolss_AbortPrinter",
23840 sizeof(struct spoolss_AbortPrinter),
23841 (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
23842 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
23843 (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
23847 "spoolss_ReadPrinter",
23848 sizeof(struct spoolss_ReadPrinter),
23849 (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
23850 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
23851 (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
23855 "spoolss_EndDocPrinter",
23856 sizeof(struct spoolss_EndDocPrinter),
23857 (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
23858 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
23859 (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
23864 sizeof(struct spoolss_AddJob),
23865 (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
23866 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
23867 (ndr_print_function_t) ndr_print_spoolss_AddJob,
23871 "spoolss_ScheduleJob",
23872 sizeof(struct spoolss_ScheduleJob),
23873 (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
23874 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
23875 (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
23879 "spoolss_GetPrinterData",
23880 sizeof(struct spoolss_GetPrinterData),
23881 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
23882 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
23883 (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
23887 "spoolss_SetPrinterData",
23888 sizeof(struct spoolss_SetPrinterData),
23889 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
23890 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
23891 (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
23895 "spoolss_WaitForPrinterChange",
23896 sizeof(struct spoolss_WaitForPrinterChange),
23897 (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
23898 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
23899 (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
23903 "spoolss_ClosePrinter",
23904 sizeof(struct spoolss_ClosePrinter),
23905 (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
23906 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
23907 (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
23912 sizeof(struct spoolss_AddForm),
23913 (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
23914 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
23915 (ndr_print_function_t) ndr_print_spoolss_AddForm,
23919 "spoolss_DeleteForm",
23920 sizeof(struct spoolss_DeleteForm),
23921 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
23922 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
23923 (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
23928 sizeof(struct spoolss_GetForm),
23929 (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
23930 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
23931 (ndr_print_function_t) ndr_print_spoolss_GetForm,
23936 sizeof(struct spoolss_SetForm),
23937 (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
23938 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
23939 (ndr_print_function_t) ndr_print_spoolss_SetForm,
23943 "spoolss_EnumForms",
23944 sizeof(struct spoolss_EnumForms),
23945 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
23946 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
23947 (ndr_print_function_t) ndr_print_spoolss_EnumForms,
23951 "spoolss_EnumPorts",
23952 sizeof(struct spoolss_EnumPorts),
23953 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
23954 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
23955 (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
23959 "spoolss_EnumMonitors",
23960 sizeof(struct spoolss_EnumMonitors),
23961 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
23962 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
23963 (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
23968 sizeof(struct spoolss_AddPort),
23969 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
23970 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
23971 (ndr_print_function_t) ndr_print_spoolss_AddPort,
23975 "spoolss_ConfigurePort",
23976 sizeof(struct spoolss_ConfigurePort),
23977 (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
23978 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
23979 (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
23983 "spoolss_DeletePort",
23984 sizeof(struct spoolss_DeletePort),
23985 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
23986 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
23987 (ndr_print_function_t) ndr_print_spoolss_DeletePort,
23991 "spoolss_CreatePrinterIC",
23992 sizeof(struct spoolss_CreatePrinterIC),
23993 (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
23994 (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
23995 (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
23999 "spoolss_PlayGDIScriptOnPrinterIC",
24000 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
24001 (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
24002 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
24003 (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
24007 "spoolss_DeletePrinterIC",
24008 sizeof(struct spoolss_DeletePrinterIC),
24009 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
24010 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
24011 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
24015 "spoolss_AddPrinterConnection",
24016 sizeof(struct spoolss_AddPrinterConnection),
24017 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
24018 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
24019 (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
24023 "spoolss_DeletePrinterConnection",
24024 sizeof(struct spoolss_DeletePrinterConnection),
24025 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
24026 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
24027 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
24031 "spoolss_PrinterMessageBox",
24032 sizeof(struct spoolss_PrinterMessageBox),
24033 (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
24034 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
24035 (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
24039 "spoolss_AddMonitor",
24040 sizeof(struct spoolss_AddMonitor),
24041 (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
24042 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
24043 (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
24047 "spoolss_DeleteMonitor",
24048 sizeof(struct spoolss_DeleteMonitor),
24049 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
24050 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
24051 (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
24055 "spoolss_DeletePrintProcessor",
24056 sizeof(struct spoolss_DeletePrintProcessor),
24057 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
24058 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
24059 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
24063 "spoolss_AddPrintProvidor",
24064 sizeof(struct spoolss_AddPrintProvidor),
24065 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
24066 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
24067 (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
24071 "spoolss_DeletePrintProvidor",
24072 sizeof(struct spoolss_DeletePrintProvidor),
24073 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
24074 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
24075 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
24079 "spoolss_EnumPrintProcDataTypes",
24080 sizeof(struct spoolss_EnumPrintProcDataTypes),
24081 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcDataTypes,
24082 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcDataTypes,
24083 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcDataTypes,
24087 "spoolss_ResetPrinter",
24088 sizeof(struct spoolss_ResetPrinter),
24089 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
24090 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
24091 (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
24095 "spoolss_GetPrinterDriver2",
24096 sizeof(struct spoolss_GetPrinterDriver2),
24097 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
24098 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
24099 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
24103 "spoolss_FindFirstPrinterChangeNotification",
24104 sizeof(struct spoolss_FindFirstPrinterChangeNotification),
24105 (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
24106 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
24107 (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
24111 "spoolss_FindNextPrinterChangeNotification",
24112 sizeof(struct spoolss_FindNextPrinterChangeNotification),
24113 (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
24114 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
24115 (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
24119 "spoolss_FindClosePrinterNotify",
24120 sizeof(struct spoolss_FindClosePrinterNotify),
24121 (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
24122 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
24123 (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
24127 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
24128 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
24129 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
24130 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
24131 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
24135 "spoolss_ReplyOpenPrinter",
24136 sizeof(struct spoolss_ReplyOpenPrinter),
24137 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
24138 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
24139 (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
24143 "spoolss_RouterReplyPrinter",
24144 sizeof(struct spoolss_RouterReplyPrinter),
24145 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
24146 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
24147 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
24151 "spoolss_ReplyClosePrinter",
24152 sizeof(struct spoolss_ReplyClosePrinter),
24153 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
24154 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
24155 (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
24159 "spoolss_AddPortEx",
24160 sizeof(struct spoolss_AddPortEx),
24161 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
24162 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
24163 (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
24167 "spoolss_RouterFindFirstPrinterChangeNotification",
24168 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
24169 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
24170 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
24171 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
24175 "spoolss_SpoolerInit",
24176 sizeof(struct spoolss_SpoolerInit),
24177 (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
24178 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
24179 (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
24183 "spoolss_ResetPrinterEx",
24184 sizeof(struct spoolss_ResetPrinterEx),
24185 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
24186 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
24187 (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
24191 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
24192 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
24193 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
24194 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
24195 (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
24199 "spoolss_RouterReplyPrinterEx",
24200 sizeof(struct spoolss_RouterReplyPrinterEx),
24201 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinterEx,
24202 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinterEx,
24203 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinterEx,
24207 "spoolss_RouterRefreshPrinterChangeNotify",
24208 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify),
24209 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotify,
24210 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify,
24211 (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotify,
24216 sizeof(struct spoolss_44),
24217 (ndr_push_flags_fn_t) ndr_push_spoolss_44,
24218 (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
24219 (ndr_print_function_t) ndr_print_spoolss_44,
24223 "spoolss_OpenPrinterEx",
24224 sizeof(struct spoolss_OpenPrinterEx),
24225 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
24226 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
24227 (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
24231 "spoolss_AddPrinterEx",
24232 sizeof(struct spoolss_AddPrinterEx),
24233 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
24234 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
24235 (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
24240 sizeof(struct spoolss_47),
24241 (ndr_push_flags_fn_t) ndr_push_spoolss_47,
24242 (ndr_pull_flags_fn_t) ndr_pull_spoolss_47,
24243 (ndr_print_function_t) ndr_print_spoolss_47,
24247 "spoolss_EnumPrinterData",
24248 sizeof(struct spoolss_EnumPrinterData),
24249 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
24250 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
24251 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
24255 "spoolss_DeletePrinterData",
24256 sizeof(struct spoolss_DeletePrinterData),
24257 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
24258 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
24259 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
24264 sizeof(struct spoolss_4a),
24265 (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
24266 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
24267 (ndr_print_function_t) ndr_print_spoolss_4a,
24272 sizeof(struct spoolss_4b),
24273 (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
24274 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
24275 (ndr_print_function_t) ndr_print_spoolss_4b,
24280 sizeof(struct spoolss_4c),
24281 (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
24282 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
24283 (ndr_print_function_t) ndr_print_spoolss_4c,
24287 "spoolss_SetPrinterDataEx",
24288 sizeof(struct spoolss_SetPrinterDataEx),
24289 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
24290 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
24291 (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
24295 "spoolss_GetPrinterDataEx",
24296 sizeof(struct spoolss_GetPrinterDataEx),
24297 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
24298 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
24299 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
24303 "spoolss_EnumPrinterDataEx",
24304 sizeof(struct spoolss_EnumPrinterDataEx),
24305 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
24306 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
24307 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
24311 "spoolss_EnumPrinterKey",
24312 sizeof(struct spoolss_EnumPrinterKey),
24313 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
24314 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
24315 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
24319 "spoolss_DeletePrinterDataEx",
24320 sizeof(struct spoolss_DeletePrinterDataEx),
24321 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
24322 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
24323 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
24327 "spoolss_DeletePrinterKey",
24328 sizeof(struct spoolss_DeletePrinterKey),
24329 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
24330 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
24331 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
24336 sizeof(struct spoolss_53),
24337 (ndr_push_flags_fn_t) ndr_push_spoolss_53,
24338 (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
24339 (ndr_print_function_t) ndr_print_spoolss_53,
24343 "spoolss_DeletePrinterDriverEx",
24344 sizeof(struct spoolss_DeletePrinterDriverEx),
24345 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
24346 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
24347 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
24352 sizeof(struct spoolss_55),
24353 (ndr_push_flags_fn_t) ndr_push_spoolss_55,
24354 (ndr_pull_flags_fn_t) ndr_pull_spoolss_55,
24355 (ndr_print_function_t) ndr_print_spoolss_55,
24360 sizeof(struct spoolss_56),
24361 (ndr_push_flags_fn_t) ndr_push_spoolss_56,
24362 (ndr_pull_flags_fn_t) ndr_pull_spoolss_56,
24363 (ndr_print_function_t) ndr_print_spoolss_56,
24368 sizeof(struct spoolss_57),
24369 (ndr_push_flags_fn_t) ndr_push_spoolss_57,
24370 (ndr_pull_flags_fn_t) ndr_pull_spoolss_57,
24371 (ndr_print_function_t) ndr_print_spoolss_57,
24376 sizeof(struct spoolss_XcvData),
24377 (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
24378 (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
24379 (ndr_print_function_t) ndr_print_spoolss_XcvData,
24383 "spoolss_AddPrinterDriverEx",
24384 sizeof(struct spoolss_AddPrinterDriverEx),
24385 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
24386 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
24387 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
24392 sizeof(struct spoolss_5a),
24393 (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
24394 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
24395 (ndr_print_function_t) ndr_print_spoolss_5a,
24400 sizeof(struct spoolss_5b),
24401 (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
24402 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
24403 (ndr_print_function_t) ndr_print_spoolss_5b,
24408 sizeof(struct spoolss_5c),
24409 (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
24410 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
24411 (ndr_print_function_t) ndr_print_spoolss_5c,
24416 sizeof(struct spoolss_5d),
24417 (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
24418 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
24419 (ndr_print_function_t) ndr_print_spoolss_5d,
24424 sizeof(struct spoolss_5e),
24425 (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
24426 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
24427 (ndr_print_function_t) ndr_print_spoolss_5e,
24432 sizeof(struct spoolss_5f),
24433 (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
24434 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
24435 (ndr_print_function_t) ndr_print_spoolss_5f,
24438 { NULL, 0, NULL, NULL, NULL, false }
24441 static const char * const spoolss_endpoint_strings[] = {
24442 "ncacn_np:[\\pipe\\spoolss]",
24445 static const struct ndr_interface_string_array spoolss_endpoints = {
24447 .names = spoolss_endpoint_strings
24450 static const char * const spoolss_authservice_strings[] = {
24454 static const struct ndr_interface_string_array spoolss_authservices = {
24456 .names = spoolss_authservice_strings
24460 const struct ndr_interface_table ndr_table_spoolss = {
24463 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
24464 NDR_SPOOLSS_VERSION
24466 .helpstring = NDR_SPOOLSS_HELPSTRING,
24468 .calls = spoolss_calls,
24469 .endpoints = &spoolss_endpoints,
24470 .authservices = &spoolss_authservices