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 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterStatus(struct ndr_push *ndr, int ndr_flags, uint32_t r)
229 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
230 return NDR_ERR_SUCCESS;
233 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterStatus(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
236 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
238 return NDR_ERR_SUCCESS;
241 _PUBLIC_ void ndr_print_spoolss_PrinterStatus(struct ndr_print *ndr, const char *name, uint32_t r)
243 ndr_print_uint32(ndr, name, r);
245 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAUSED", PRINTER_STATUS_PAUSED, r);
246 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_ERROR", PRINTER_STATUS_ERROR, r);
247 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PENDING_DELETION", PRINTER_STATUS_PENDING_DELETION, r);
248 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_JAM", PRINTER_STATUS_PAPER_JAM, r);
249 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_OUT", PRINTER_STATUS_PAPER_OUT, r);
250 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_MANUAL_FEED", PRINTER_STATUS_MANUAL_FEED, r);
251 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_PROBLEM", PRINTER_STATUS_PAPER_PROBLEM, r);
252 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OFFLINE", PRINTER_STATUS_OFFLINE, r);
253 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_IO_ACTIVE", PRINTER_STATUS_IO_ACTIVE, r);
254 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_BUSY", PRINTER_STATUS_BUSY, r);
255 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PRINTING", PRINTER_STATUS_PRINTING, r);
256 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUTPUT_BIN_FULL", PRINTER_STATUS_OUTPUT_BIN_FULL, r);
257 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NOT_AVAILABLE", PRINTER_STATUS_NOT_AVAILABLE, r);
258 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WAITING", PRINTER_STATUS_WAITING, r);
259 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PROCESSING", PRINTER_STATUS_PROCESSING, r);
260 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_INITIALIZING", PRINTER_STATUS_INITIALIZING, r);
261 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WARMING_UP", PRINTER_STATUS_WARMING_UP, r);
262 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_TONER_LOW", PRINTER_STATUS_TONER_LOW, r);
263 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NO_TONER", PRINTER_STATUS_NO_TONER, r);
264 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAGE_PUNT", PRINTER_STATUS_PAGE_PUNT, r);
265 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_USER_INTERVENTION", PRINTER_STATUS_USER_INTERVENTION, r);
266 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUT_OF_MEMORY", PRINTER_STATUS_OUT_OF_MEMORY, r);
267 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_DOOR_OPEN", PRINTER_STATUS_DOOR_OPEN, r);
268 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_SERVER_UNKNOWN", PRINTER_STATUS_SERVER_UNKNOWN, r);
269 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_POWER_SAVE", PRINTER_STATUS_POWER_SAVE, r);
273 static enum ndr_err_code ndr_push_spoolss_JobStatus(struct ndr_push *ndr, int ndr_flags, uint32_t r)
275 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
276 return NDR_ERR_SUCCESS;
279 static enum ndr_err_code ndr_pull_spoolss_JobStatus(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
282 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
284 return NDR_ERR_SUCCESS;
287 _PUBLIC_ void ndr_print_spoolss_JobStatus(struct ndr_print *ndr, const char *name, uint32_t r)
289 ndr_print_uint32(ndr, name, r);
291 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PAUSED", JOB_STATUS_PAUSED, r);
292 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_ERROR", JOB_STATUS_ERROR, r);
293 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_DELETING", JOB_STATUS_DELETING, r);
294 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_SPOOLING", JOB_STATUS_SPOOLING, r);
295 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PRINTING", JOB_STATUS_PRINTING, r);
296 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_OFFLINE", JOB_STATUS_OFFLINE, r);
297 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PAPEROUT", JOB_STATUS_PAPEROUT, r);
298 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PRINTED", JOB_STATUS_PRINTED, r);
299 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_DELETED", JOB_STATUS_DELETED, r);
300 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_BLOCKED_DEVQ", JOB_STATUS_BLOCKED_DEVQ, r);
301 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_USER_INTERVENTION", JOB_STATUS_USER_INTERVENTION, r);
302 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_RESTART", JOB_STATUS_RESTART, r);
303 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_COMPLETE", JOB_STATUS_COMPLETE, r);
307 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo0 *r)
309 if (ndr_flags & NDR_SCALARS) {
310 NDR_CHECK(ndr_push_align(ndr, 4));
312 uint32_t _flags_save_string = ndr->flags;
313 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
314 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
315 ndr->flags = _flags_save_string;
318 uint32_t _flags_save_string = ndr->flags;
319 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
320 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
321 ndr->flags = _flags_save_string;
323 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
324 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
325 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
326 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
327 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
329 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
330 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
332 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
333 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
334 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
335 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
336 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->job_error));
337 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
338 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
339 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
340 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
341 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
342 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
343 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
344 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
345 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
346 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
347 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
348 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
349 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
351 if (ndr_flags & NDR_BUFFERS) {
353 uint32_t _flags_save_string = ndr->flags;
354 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
355 if (r->printername) {
356 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printername));
357 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
358 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printername));
360 ndr->flags = _flags_save_string;
363 uint32_t _flags_save_string = ndr->flags;
364 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
366 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->servername));
367 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
368 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->servername));
370 ndr->flags = _flags_save_string;
373 return NDR_ERR_SUCCESS;
376 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo0 *r)
378 uint32_t _ptr_printername;
379 TALLOC_CTX *_mem_save_printername_0;
380 uint32_t _ptr_servername;
381 TALLOC_CTX *_mem_save_servername_0;
382 if (ndr_flags & NDR_SCALARS) {
383 NDR_CHECK(ndr_pull_align(ndr, 4));
385 uint32_t _flags_save_string = ndr->flags;
386 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
387 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
388 if (_ptr_printername) {
389 NDR_PULL_ALLOC(ndr, r->printername);
390 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
392 r->printername = NULL;
394 ndr->flags = _flags_save_string;
397 uint32_t _flags_save_string = ndr->flags;
398 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
399 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
400 if (_ptr_servername) {
401 NDR_PULL_ALLOC(ndr, r->servername);
402 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
404 r->servername = NULL;
406 ndr->flags = _flags_save_string;
408 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
409 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
410 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
411 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
412 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
413 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
414 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
415 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
416 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
417 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
418 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
419 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
420 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
421 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->job_error));
422 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
423 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
424 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
425 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
426 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
427 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
428 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
429 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
430 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
431 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
432 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
433 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
434 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
436 if (ndr_flags & NDR_BUFFERS) {
438 uint32_t _flags_save_string = ndr->flags;
439 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
440 if (r->printername) {
441 uint32_t _relative_save_offset;
442 _relative_save_offset = ndr->offset;
443 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
444 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
445 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
446 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
447 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
448 ndr->offset = _relative_save_offset;
450 ndr->flags = _flags_save_string;
453 uint32_t _flags_save_string = ndr->flags;
454 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
456 uint32_t _relative_save_offset;
457 _relative_save_offset = ndr->offset;
458 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
459 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
460 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
461 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
462 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
463 ndr->offset = _relative_save_offset;
465 ndr->flags = _flags_save_string;
468 return NDR_ERR_SUCCESS;
471 _PUBLIC_ void ndr_print_spoolss_PrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo0 *r)
473 ndr_print_struct(ndr, name, "spoolss_PrinterInfo0");
475 ndr_print_ptr(ndr, "printername", r->printername);
477 if (r->printername) {
478 ndr_print_string(ndr, "printername", r->printername);
481 ndr_print_ptr(ndr, "servername", r->servername);
484 ndr_print_string(ndr, "servername", r->servername);
487 ndr_print_uint32(ndr, "cjobs", r->cjobs);
488 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
489 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
490 ndr_print_spoolss_Time(ndr, "time", &r->time);
491 ndr_print_uint32(ndr, "global_counter", r->global_counter);
492 ndr_print_uint32(ndr, "total_pages", r->total_pages);
493 ndr_print_uint32(ndr, "version", r->version);
494 ndr_print_uint32(ndr, "free_build", r->free_build);
495 ndr_print_uint32(ndr, "spooling", r->spooling);
496 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
497 ndr_print_uint32(ndr, "session_counter", r->session_counter);
498 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
499 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
500 ndr_print_spoolss_JobStatus(ndr, "job_error", r->job_error);
501 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
502 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
503 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
504 ndr_print_uint32(ndr, "change_id", r->change_id);
505 ndr_print_WERROR(ndr, "last_error", r->last_error);
506 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
507 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
508 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
509 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
510 ndr_print_uint16(ndr, "processor_level", r->processor_level);
511 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
512 ndr_print_uint32(ndr, "reserved2", r->reserved2);
513 ndr_print_uint32(ndr, "reserved3", r->reserved3);
517 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo0(const struct spoolss_PrinterInfo0 *r, struct smb_iconv_convenience *ic, int flags)
519 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo0, ic);
522 static enum ndr_err_code ndr_push_spoolss_DeviceModeFields(struct ndr_push *ndr, int ndr_flags, uint32_t r)
524 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
525 return NDR_ERR_SUCCESS;
528 static enum ndr_err_code ndr_pull_spoolss_DeviceModeFields(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
531 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
533 return NDR_ERR_SUCCESS;
536 _PUBLIC_ void ndr_print_spoolss_DeviceModeFields(struct ndr_print *ndr, const char *name, uint32_t r)
538 ndr_print_uint32(ndr, name, r);
540 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ORIENTATION", DEVMODE_ORIENTATION, r);
541 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERSIZE", DEVMODE_PAPERSIZE, r);
542 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERLENGTH", DEVMODE_PAPERLENGTH, r);
543 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERWIDTH", DEVMODE_PAPERWIDTH, r);
544 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_SCALE", DEVMODE_SCALE, r);
545 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_POSITION", DEVMODE_POSITION, r);
546 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_NUP", DEVMODE_NUP, r);
547 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COPIES", DEVMODE_COPIES, r);
548 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DEFAULTSOURCE", DEVMODE_DEFAULTSOURCE, r);
549 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PRINTQUALITY", DEVMODE_PRINTQUALITY, r);
550 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLOR", DEVMODE_COLOR, r);
551 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DUPLEX", DEVMODE_DUPLEX, r);
552 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_YRESOLUTION", DEVMODE_YRESOLUTION, r);
553 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_TTOPTION", DEVMODE_TTOPTION, r);
554 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLLATE", DEVMODE_COLLATE, r);
555 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_FORMNAME", DEVMODE_FORMNAME, r);
556 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_LOGPIXELS", DEVMODE_LOGPIXELS, r);
557 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_BITSPERPEL", DEVMODE_BITSPERPEL, r);
558 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSWIDTH", DEVMODE_PELSWIDTH, r);
559 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSHEIGHT", DEVMODE_PELSHEIGHT, r);
560 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFLAGS", DEVMODE_DISPLAYFLAGS, r);
561 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFREQUENCY", DEVMODE_DISPLAYFREQUENCY, r);
562 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMMETHOD", DEVMODE_ICMMETHOD, r);
563 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMINTENT", DEVMODE_ICMINTENT, r);
564 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_MEDIATYPE", DEVMODE_MEDIATYPE, r);
565 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DITHERTYPE", DEVMODE_DITHERTYPE, r);
566 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGWIDTH", DEVMODE_PANNINGWIDTH, r);
567 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGHEIGHT", DEVMODE_PANNINGHEIGHT, r);
571 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeviceMode(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceMode *r)
573 if (ndr_flags & NDR_SCALARS) {
574 NDR_CHECK(ndr_push_align(ndr, 4));
575 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->devicename, 32, sizeof(uint16_t), CH_UTF16));
576 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->specversion));
577 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverversion));
578 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
579 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverextra_data.length));
580 NDR_CHECK(ndr_push_spoolss_DeviceModeFields(ndr, NDR_SCALARS, r->fields));
581 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->orientation));
582 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->papersize));
583 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperlength));
584 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperwidth));
585 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->scale));
586 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->copies));
587 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->defaultsource));
588 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->printquality));
589 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->color));
590 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->duplex));
591 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->yresolution));
592 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ttoption));
593 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->collate));
594 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, 32, sizeof(uint16_t), CH_UTF16));
595 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logpixels));
596 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bitsperpel));
597 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelswidth));
598 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelsheight));
599 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayflags));
600 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayfrequency));
601 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->icmmethod));
602 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->icmintent));
603 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->mediatype));
604 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dithertype));
605 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved1));
606 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
607 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningwidth));
608 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningheight));
610 uint32_t _flags_save_DATA_BLOB = ndr->flags;
611 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
613 struct ndr_push *_ndr_driverextra_data;
614 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->driverextra_data.length));
615 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, r->driverextra_data));
616 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_driverextra_data, 0, r->driverextra_data.length));
618 ndr->flags = _flags_save_DATA_BLOB;
621 if (ndr_flags & NDR_BUFFERS) {
623 return NDR_ERR_SUCCESS;
626 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeviceMode(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceMode *r)
628 if (ndr_flags & NDR_SCALARS) {
629 NDR_CHECK(ndr_pull_align(ndr, 4));
630 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->devicename, 32, sizeof(uint16_t), CH_UTF16));
631 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->specversion));
632 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->driverversion));
633 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
634 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->__driverextra_length));
635 NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr, NDR_SCALARS, &r->fields));
636 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->orientation));
637 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->papersize));
638 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperlength));
639 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperwidth));
640 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->scale));
641 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->copies));
642 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->defaultsource));
643 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->printquality));
644 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->color));
645 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->duplex));
646 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->yresolution));
647 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ttoption));
648 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->collate));
649 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, 32, sizeof(uint16_t), CH_UTF16));
650 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logpixels));
651 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bitsperpel));
652 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelswidth));
653 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelsheight));
654 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayflags));
655 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayfrequency));
656 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->icmmethod));
657 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->icmintent));
658 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->mediatype));
659 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dithertype));
660 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
661 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
662 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningwidth));
663 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningheight));
665 uint32_t _flags_save_DATA_BLOB = ndr->flags;
666 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
668 struct ndr_pull *_ndr_driverextra_data;
669 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->__driverextra_length));
670 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, &r->driverextra_data));
671 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_driverextra_data, 0, r->__driverextra_length));
673 ndr->flags = _flags_save_DATA_BLOB;
676 if (ndr_flags & NDR_BUFFERS) {
678 return NDR_ERR_SUCCESS;
681 _PUBLIC_ void ndr_print_spoolss_DeviceMode(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceMode *r)
683 ndr_print_struct(ndr, name, "spoolss_DeviceMode");
685 ndr_print_string(ndr, "devicename", r->devicename);
686 ndr_print_uint16(ndr, "specversion", r->specversion);
687 ndr_print_uint16(ndr, "driverversion", r->driverversion);
688 ndr_print_uint16(ndr, "size", r->size);
689 ndr_print_uint16(ndr, "__driverextra_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->driverextra_data.length:r->__driverextra_length);
690 ndr_print_spoolss_DeviceModeFields(ndr, "fields", r->fields);
691 ndr_print_uint16(ndr, "orientation", r->orientation);
692 ndr_print_uint16(ndr, "papersize", r->papersize);
693 ndr_print_uint16(ndr, "paperlength", r->paperlength);
694 ndr_print_uint16(ndr, "paperwidth", r->paperwidth);
695 ndr_print_uint16(ndr, "scale", r->scale);
696 ndr_print_uint16(ndr, "copies", r->copies);
697 ndr_print_uint16(ndr, "defaultsource", r->defaultsource);
698 ndr_print_uint16(ndr, "printquality", r->printquality);
699 ndr_print_uint16(ndr, "color", r->color);
700 ndr_print_uint16(ndr, "duplex", r->duplex);
701 ndr_print_uint16(ndr, "yresolution", r->yresolution);
702 ndr_print_uint16(ndr, "ttoption", r->ttoption);
703 ndr_print_uint16(ndr, "collate", r->collate);
704 ndr_print_string(ndr, "formname", r->formname);
705 ndr_print_uint16(ndr, "logpixels", r->logpixels);
706 ndr_print_uint32(ndr, "bitsperpel", r->bitsperpel);
707 ndr_print_uint32(ndr, "pelswidth", r->pelswidth);
708 ndr_print_uint32(ndr, "pelsheight", r->pelsheight);
709 ndr_print_uint32(ndr, "displayflags", r->displayflags);
710 ndr_print_uint32(ndr, "displayfrequency", r->displayfrequency);
711 ndr_print_uint32(ndr, "icmmethod", r->icmmethod);
712 ndr_print_uint32(ndr, "icmintent", r->icmintent);
713 ndr_print_uint32(ndr, "mediatype", r->mediatype);
714 ndr_print_uint32(ndr, "dithertype", r->dithertype);
715 ndr_print_uint32(ndr, "reserved1", r->reserved1);
716 ndr_print_uint32(ndr, "reserved2", r->reserved2);
717 ndr_print_uint32(ndr, "panningwidth", r->panningwidth);
718 ndr_print_uint32(ndr, "panningheight", r->panningheight);
719 ndr_print_DATA_BLOB(ndr, "driverextra_data", r->driverextra_data);
723 _PUBLIC_ size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode *r, struct smb_iconv_convenience *ic, int flags)
725 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DeviceMode, ic);
728 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
730 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
731 return NDR_ERR_SUCCESS;
734 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
737 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
739 return NDR_ERR_SUCCESS;
742 _PUBLIC_ void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print *ndr, const char *name, uint32_t r)
744 ndr_print_uint32(ndr, name, r);
746 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT, r);
747 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL, r);
748 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS, r);
749 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE, r);
750 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME, r);
751 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE, r);
752 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED, r);
753 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK, r);
754 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND, r);
755 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER, r);
756 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1, r);
757 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2, r);
758 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3, r);
759 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4, r);
760 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5, r);
761 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6, r);
762 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7, r);
763 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8, r);
764 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE, r);
768 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo1 *r)
770 if (ndr_flags & NDR_SCALARS) {
771 NDR_CHECK(ndr_push_align(ndr, 4));
772 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->flags));
774 uint32_t _flags_save_string = ndr->flags;
775 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
776 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
777 ndr->flags = _flags_save_string;
780 uint32_t _flags_save_string = ndr->flags;
781 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
782 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name));
783 ndr->flags = _flags_save_string;
786 uint32_t _flags_save_string = ndr->flags;
787 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
788 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
789 ndr->flags = _flags_save_string;
792 if (ndr_flags & NDR_BUFFERS) {
794 uint32_t _flags_save_string = ndr->flags;
795 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
796 if (r->description) {
797 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->description));
798 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
799 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->description));
801 ndr->flags = _flags_save_string;
804 uint32_t _flags_save_string = ndr->flags;
805 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
807 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->name));
808 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name));
809 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->name));
811 ndr->flags = _flags_save_string;
814 uint32_t _flags_save_string = ndr->flags;
815 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
817 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->comment));
818 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
819 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->comment));
821 ndr->flags = _flags_save_string;
824 return NDR_ERR_SUCCESS;
827 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo1 *r)
829 uint32_t _ptr_description;
830 TALLOC_CTX *_mem_save_description_0;
832 TALLOC_CTX *_mem_save_name_0;
833 uint32_t _ptr_comment;
834 TALLOC_CTX *_mem_save_comment_0;
835 if (ndr_flags & NDR_SCALARS) {
836 NDR_CHECK(ndr_pull_align(ndr, 4));
837 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->flags));
839 uint32_t _flags_save_string = ndr->flags;
840 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
841 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
842 if (_ptr_description) {
843 NDR_PULL_ALLOC(ndr, r->description);
844 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
846 r->description = NULL;
848 ndr->flags = _flags_save_string;
851 uint32_t _flags_save_string = ndr->flags;
852 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
853 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
855 NDR_PULL_ALLOC(ndr, r->name);
856 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name, _ptr_name));
860 ndr->flags = _flags_save_string;
863 uint32_t _flags_save_string = ndr->flags;
864 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
865 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
867 NDR_PULL_ALLOC(ndr, r->comment);
868 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
872 ndr->flags = _flags_save_string;
875 if (ndr_flags & NDR_BUFFERS) {
877 uint32_t _flags_save_string = ndr->flags;
878 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
879 if (r->description) {
880 uint32_t _relative_save_offset;
881 _relative_save_offset = ndr->offset;
882 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
883 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
884 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
885 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
886 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
887 ndr->offset = _relative_save_offset;
889 ndr->flags = _flags_save_string;
892 uint32_t _flags_save_string = ndr->flags;
893 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
895 uint32_t _relative_save_offset;
896 _relative_save_offset = ndr->offset;
897 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name));
898 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
899 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
900 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name));
901 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
902 ndr->offset = _relative_save_offset;
904 ndr->flags = _flags_save_string;
907 uint32_t _flags_save_string = ndr->flags;
908 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
910 uint32_t _relative_save_offset;
911 _relative_save_offset = ndr->offset;
912 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
913 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
914 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
915 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
916 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
917 ndr->offset = _relative_save_offset;
919 ndr->flags = _flags_save_string;
922 return NDR_ERR_SUCCESS;
925 _PUBLIC_ void ndr_print_spoolss_PrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo1 *r)
927 ndr_print_struct(ndr, name, "spoolss_PrinterInfo1");
929 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->flags);
930 ndr_print_ptr(ndr, "description", r->description);
932 if (r->description) {
933 ndr_print_string(ndr, "description", r->description);
936 ndr_print_ptr(ndr, "name", r->name);
939 ndr_print_string(ndr, "name", r->name);
942 ndr_print_ptr(ndr, "comment", r->comment);
945 ndr_print_string(ndr, "comment", r->comment);
951 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo1(const struct spoolss_PrinterInfo1 *r, struct smb_iconv_convenience *ic, int flags)
953 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo1, ic);
956 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
958 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
959 return NDR_ERR_SUCCESS;
962 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
965 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
967 return NDR_ERR_SUCCESS;
970 _PUBLIC_ void ndr_print_spoolss_PrinterAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
972 ndr_print_uint32(ndr, name, r);
974 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED, r);
975 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT, r);
976 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT, r);
977 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED, r);
978 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK, r);
979 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN, r);
980 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL, r);
981 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ, r);
982 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS, r);
983 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST, r);
984 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE, r);
985 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI, r);
986 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY, r);
987 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED, r);
988 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX, r);
989 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS, r);
993 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo2 *r)
995 if (ndr_flags & NDR_SCALARS) {
996 NDR_CHECK(ndr_push_align(ndr, 4));
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->servername));
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->printername));
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->sharename));
1013 ndr->flags = _flags_save_string;
1016 uint32_t _flags_save_string = ndr->flags;
1017 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1018 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
1019 ndr->flags = _flags_save_string;
1022 uint32_t _flags_save_string = ndr->flags;
1023 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1024 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->drivername));
1025 ndr->flags = _flags_save_string;
1028 uint32_t _flags_save_string = ndr->flags;
1029 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1030 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
1031 ndr->flags = _flags_save_string;
1034 uint32_t _flags_save_string = ndr->flags;
1035 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1036 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->location));
1037 ndr->flags = _flags_save_string;
1040 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
1041 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1042 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
1043 ndr->flags = _flags_save_spoolss_DeviceMode;
1046 uint32_t _flags_save_string = ndr->flags;
1047 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1048 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sepfile));
1049 ndr->flags = _flags_save_string;
1052 uint32_t _flags_save_string = ndr->flags;
1053 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1054 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printprocessor));
1055 ndr->flags = _flags_save_string;
1058 uint32_t _flags_save_string = ndr->flags;
1059 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1060 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->datatype));
1061 ndr->flags = _flags_save_string;
1064 uint32_t _flags_save_string = ndr->flags;
1065 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1066 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
1067 ndr->flags = _flags_save_string;
1070 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
1071 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1072 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
1073 ndr->flags = _flags_save_spoolss_security_descriptor;
1075 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1076 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
1077 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
1078 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
1079 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
1080 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
1081 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
1082 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
1084 if (ndr_flags & NDR_BUFFERS) {
1086 uint32_t _flags_save_string = ndr->flags;
1087 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1088 if (r->servername) {
1089 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->servername));
1090 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
1091 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->servername));
1093 ndr->flags = _flags_save_string;
1096 uint32_t _flags_save_string = ndr->flags;
1097 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1098 if (r->printername) {
1099 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printername));
1100 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1101 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printername));
1103 ndr->flags = _flags_save_string;
1106 uint32_t _flags_save_string = ndr->flags;
1107 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1109 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->sharename));
1110 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sharename));
1111 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->sharename));
1113 ndr->flags = _flags_save_string;
1116 uint32_t _flags_save_string = ndr->flags;
1117 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1119 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->portname));
1120 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
1121 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->portname));
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->drivername) {
1129 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->drivername));
1130 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->drivername));
1131 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->drivername));
1133 ndr->flags = _flags_save_string;
1136 uint32_t _flags_save_string = ndr->flags;
1137 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1139 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->comment));
1140 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
1141 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->comment));
1143 ndr->flags = _flags_save_string;
1146 uint32_t _flags_save_string = ndr->flags;
1147 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1149 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->location));
1150 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->location));
1151 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->location));
1153 ndr->flags = _flags_save_string;
1156 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
1157 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1159 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->devmode));
1161 struct ndr_push *_ndr_devmode;
1162 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1163 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1164 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
1166 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->devmode));
1168 ndr->flags = _flags_save_spoolss_DeviceMode;
1171 uint32_t _flags_save_string = ndr->flags;
1172 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1174 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->sepfile));
1175 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sepfile));
1176 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->sepfile));
1178 ndr->flags = _flags_save_string;
1181 uint32_t _flags_save_string = ndr->flags;
1182 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1183 if (r->printprocessor) {
1184 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printprocessor));
1185 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printprocessor));
1186 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printprocessor));
1188 ndr->flags = _flags_save_string;
1191 uint32_t _flags_save_string = ndr->flags;
1192 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1194 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->datatype));
1195 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->datatype));
1196 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->datatype));
1198 ndr->flags = _flags_save_string;
1201 uint32_t _flags_save_string = ndr->flags;
1202 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1203 if (r->parameters) {
1204 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->parameters));
1205 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
1206 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->parameters));
1208 ndr->flags = _flags_save_string;
1211 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
1212 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1214 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->secdesc));
1216 struct ndr_push *_ndr_secdesc;
1217 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1218 NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1219 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1221 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->secdesc));
1223 ndr->flags = _flags_save_spoolss_security_descriptor;
1226 return NDR_ERR_SUCCESS;
1229 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo2 *r)
1231 uint32_t _ptr_servername;
1232 TALLOC_CTX *_mem_save_servername_0;
1233 uint32_t _ptr_printername;
1234 TALLOC_CTX *_mem_save_printername_0;
1235 uint32_t _ptr_sharename;
1236 TALLOC_CTX *_mem_save_sharename_0;
1237 uint32_t _ptr_portname;
1238 TALLOC_CTX *_mem_save_portname_0;
1239 uint32_t _ptr_drivername;
1240 TALLOC_CTX *_mem_save_drivername_0;
1241 uint32_t _ptr_comment;
1242 TALLOC_CTX *_mem_save_comment_0;
1243 uint32_t _ptr_location;
1244 TALLOC_CTX *_mem_save_location_0;
1245 uint32_t _ptr_devmode;
1246 TALLOC_CTX *_mem_save_devmode_0;
1247 uint32_t _ptr_sepfile;
1248 TALLOC_CTX *_mem_save_sepfile_0;
1249 uint32_t _ptr_printprocessor;
1250 TALLOC_CTX *_mem_save_printprocessor_0;
1251 uint32_t _ptr_datatype;
1252 TALLOC_CTX *_mem_save_datatype_0;
1253 uint32_t _ptr_parameters;
1254 TALLOC_CTX *_mem_save_parameters_0;
1255 uint32_t _ptr_secdesc;
1256 TALLOC_CTX *_mem_save_secdesc_0;
1257 if (ndr_flags & NDR_SCALARS) {
1258 NDR_CHECK(ndr_pull_align(ndr, 4));
1260 uint32_t _flags_save_string = ndr->flags;
1261 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1262 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1263 if (_ptr_servername) {
1264 NDR_PULL_ALLOC(ndr, r->servername);
1265 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1267 r->servername = NULL;
1269 ndr->flags = _flags_save_string;
1272 uint32_t _flags_save_string = ndr->flags;
1273 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1274 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1275 if (_ptr_printername) {
1276 NDR_PULL_ALLOC(ndr, r->printername);
1277 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1279 r->printername = NULL;
1281 ndr->flags = _flags_save_string;
1284 uint32_t _flags_save_string = ndr->flags;
1285 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1286 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
1287 if (_ptr_sharename) {
1288 NDR_PULL_ALLOC(ndr, r->sharename);
1289 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sharename, _ptr_sharename));
1291 r->sharename = NULL;
1293 ndr->flags = _flags_save_string;
1296 uint32_t _flags_save_string = ndr->flags;
1297 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1298 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1299 if (_ptr_portname) {
1300 NDR_PULL_ALLOC(ndr, r->portname);
1301 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1305 ndr->flags = _flags_save_string;
1308 uint32_t _flags_save_string = ndr->flags;
1309 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1310 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
1311 if (_ptr_drivername) {
1312 NDR_PULL_ALLOC(ndr, r->drivername);
1313 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->drivername, _ptr_drivername));
1315 r->drivername = NULL;
1317 ndr->flags = _flags_save_string;
1320 uint32_t _flags_save_string = ndr->flags;
1321 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1322 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1324 NDR_PULL_ALLOC(ndr, r->comment);
1325 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1329 ndr->flags = _flags_save_string;
1332 uint32_t _flags_save_string = ndr->flags;
1333 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1334 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
1335 if (_ptr_location) {
1336 NDR_PULL_ALLOC(ndr, r->location);
1337 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->location, _ptr_location));
1341 ndr->flags = _flags_save_string;
1344 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
1345 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1346 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
1348 NDR_PULL_ALLOC(ndr, r->devmode);
1349 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
1353 ndr->flags = _flags_save_spoolss_DeviceMode;
1356 uint32_t _flags_save_string = ndr->flags;
1357 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1358 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
1360 NDR_PULL_ALLOC(ndr, r->sepfile);
1361 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sepfile, _ptr_sepfile));
1365 ndr->flags = _flags_save_string;
1368 uint32_t _flags_save_string = ndr->flags;
1369 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1370 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
1371 if (_ptr_printprocessor) {
1372 NDR_PULL_ALLOC(ndr, r->printprocessor);
1373 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printprocessor, _ptr_printprocessor));
1375 r->printprocessor = NULL;
1377 ndr->flags = _flags_save_string;
1380 uint32_t _flags_save_string = ndr->flags;
1381 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1382 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
1383 if (_ptr_datatype) {
1384 NDR_PULL_ALLOC(ndr, r->datatype);
1385 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->datatype, _ptr_datatype));
1389 ndr->flags = _flags_save_string;
1392 uint32_t _flags_save_string = ndr->flags;
1393 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1394 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
1395 if (_ptr_parameters) {
1396 NDR_PULL_ALLOC(ndr, r->parameters);
1397 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
1399 r->parameters = NULL;
1401 ndr->flags = _flags_save_string;
1404 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
1405 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1406 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1408 NDR_PULL_ALLOC(ndr, r->secdesc);
1409 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1413 ndr->flags = _flags_save_spoolss_security_descriptor;
1415 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1416 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
1417 if (r->priority > 99) {
1418 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
1420 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
1421 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
1422 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
1423 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
1424 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
1425 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
1427 if (ndr_flags & NDR_BUFFERS) {
1429 uint32_t _flags_save_string = ndr->flags;
1430 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1431 if (r->servername) {
1432 uint32_t _relative_save_offset;
1433 _relative_save_offset = ndr->offset;
1434 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1435 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1436 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1437 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1438 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
1439 ndr->offset = _relative_save_offset;
1441 ndr->flags = _flags_save_string;
1444 uint32_t _flags_save_string = ndr->flags;
1445 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1446 if (r->printername) {
1447 uint32_t _relative_save_offset;
1448 _relative_save_offset = ndr->offset;
1449 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1450 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1451 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1452 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1453 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1454 ndr->offset = _relative_save_offset;
1456 ndr->flags = _flags_save_string;
1459 uint32_t _flags_save_string = ndr->flags;
1460 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1462 uint32_t _relative_save_offset;
1463 _relative_save_offset = ndr->offset;
1464 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sharename));
1465 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
1466 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
1467 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sharename));
1468 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
1469 ndr->offset = _relative_save_offset;
1471 ndr->flags = _flags_save_string;
1474 uint32_t _flags_save_string = ndr->flags;
1475 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1477 uint32_t _relative_save_offset;
1478 _relative_save_offset = ndr->offset;
1479 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
1480 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1481 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
1482 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
1483 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
1484 ndr->offset = _relative_save_offset;
1486 ndr->flags = _flags_save_string;
1489 uint32_t _flags_save_string = ndr->flags;
1490 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1491 if (r->drivername) {
1492 uint32_t _relative_save_offset;
1493 _relative_save_offset = ndr->offset;
1494 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->drivername));
1495 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1496 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
1497 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->drivername));
1498 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
1499 ndr->offset = _relative_save_offset;
1501 ndr->flags = _flags_save_string;
1504 uint32_t _flags_save_string = ndr->flags;
1505 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1507 uint32_t _relative_save_offset;
1508 _relative_save_offset = ndr->offset;
1509 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
1510 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
1511 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
1512 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
1513 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
1514 ndr->offset = _relative_save_offset;
1516 ndr->flags = _flags_save_string;
1519 uint32_t _flags_save_string = ndr->flags;
1520 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1522 uint32_t _relative_save_offset;
1523 _relative_save_offset = ndr->offset;
1524 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->location));
1525 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
1526 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
1527 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->location));
1528 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
1529 ndr->offset = _relative_save_offset;
1531 ndr->flags = _flags_save_string;
1534 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
1535 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1537 uint32_t _relative_save_offset;
1538 _relative_save_offset = ndr->offset;
1539 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
1540 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
1541 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
1543 struct ndr_pull *_ndr_devmode;
1544 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1545 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1546 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
1548 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
1549 ndr->offset = _relative_save_offset;
1551 ndr->flags = _flags_save_spoolss_DeviceMode;
1554 uint32_t _flags_save_string = ndr->flags;
1555 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1557 uint32_t _relative_save_offset;
1558 _relative_save_offset = ndr->offset;
1559 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sepfile));
1560 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
1561 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
1562 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sepfile));
1563 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
1564 ndr->offset = _relative_save_offset;
1566 ndr->flags = _flags_save_string;
1569 uint32_t _flags_save_string = ndr->flags;
1570 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1571 if (r->printprocessor) {
1572 uint32_t _relative_save_offset;
1573 _relative_save_offset = ndr->offset;
1574 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printprocessor));
1575 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
1576 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
1577 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printprocessor));
1578 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
1579 ndr->offset = _relative_save_offset;
1581 ndr->flags = _flags_save_string;
1584 uint32_t _flags_save_string = ndr->flags;
1585 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1587 uint32_t _relative_save_offset;
1588 _relative_save_offset = ndr->offset;
1589 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->datatype));
1590 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
1591 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
1592 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->datatype));
1593 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
1594 ndr->offset = _relative_save_offset;
1596 ndr->flags = _flags_save_string;
1599 uint32_t _flags_save_string = ndr->flags;
1600 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1601 if (r->parameters) {
1602 uint32_t _relative_save_offset;
1603 _relative_save_offset = ndr->offset;
1604 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
1605 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
1606 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
1607 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
1608 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
1609 ndr->offset = _relative_save_offset;
1611 ndr->flags = _flags_save_string;
1614 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
1615 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1617 uint32_t _relative_save_offset;
1618 _relative_save_offset = ndr->offset;
1619 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
1620 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
1621 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
1623 struct ndr_pull *_ndr_secdesc;
1624 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1625 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1626 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1628 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
1629 ndr->offset = _relative_save_offset;
1631 ndr->flags = _flags_save_spoolss_security_descriptor;
1634 return NDR_ERR_SUCCESS;
1637 _PUBLIC_ void ndr_print_spoolss_PrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo2 *r)
1639 ndr_print_struct(ndr, name, "spoolss_PrinterInfo2");
1641 ndr_print_ptr(ndr, "servername", r->servername);
1643 if (r->servername) {
1644 ndr_print_string(ndr, "servername", r->servername);
1647 ndr_print_ptr(ndr, "printername", r->printername);
1649 if (r->printername) {
1650 ndr_print_string(ndr, "printername", r->printername);
1653 ndr_print_ptr(ndr, "sharename", r->sharename);
1656 ndr_print_string(ndr, "sharename", r->sharename);
1659 ndr_print_ptr(ndr, "portname", r->portname);
1662 ndr_print_string(ndr, "portname", r->portname);
1665 ndr_print_ptr(ndr, "drivername", r->drivername);
1667 if (r->drivername) {
1668 ndr_print_string(ndr, "drivername", r->drivername);
1671 ndr_print_ptr(ndr, "comment", r->comment);
1674 ndr_print_string(ndr, "comment", r->comment);
1677 ndr_print_ptr(ndr, "location", r->location);
1680 ndr_print_string(ndr, "location", r->location);
1683 ndr_print_ptr(ndr, "devmode", r->devmode);
1686 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
1689 ndr_print_ptr(ndr, "sepfile", r->sepfile);
1692 ndr_print_string(ndr, "sepfile", r->sepfile);
1695 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
1697 if (r->printprocessor) {
1698 ndr_print_string(ndr, "printprocessor", r->printprocessor);
1701 ndr_print_ptr(ndr, "datatype", r->datatype);
1704 ndr_print_string(ndr, "datatype", r->datatype);
1707 ndr_print_ptr(ndr, "parameters", r->parameters);
1709 if (r->parameters) {
1710 ndr_print_string(ndr, "parameters", r->parameters);
1713 ndr_print_ptr(ndr, "secdesc", r->secdesc);
1716 ndr_print_spoolss_security_descriptor(ndr, "secdesc", r->secdesc);
1719 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1720 ndr_print_uint32(ndr, "priority", r->priority);
1721 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
1722 ndr_print_uint32(ndr, "starttime", r->starttime);
1723 ndr_print_uint32(ndr, "untiltime", r->untiltime);
1724 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
1725 ndr_print_uint32(ndr, "cjobs", r->cjobs);
1726 ndr_print_uint32(ndr, "averageppm", r->averageppm);
1730 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo2(const struct spoolss_PrinterInfo2 *r, struct smb_iconv_convenience *ic, int flags)
1732 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo2, ic);
1735 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo3 *r)
1737 if (ndr_flags & NDR_SCALARS) {
1738 NDR_CHECK(ndr_push_align(ndr, 4));
1740 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
1741 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1742 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
1743 ndr->flags = _flags_save_spoolss_security_descriptor;
1746 if (ndr_flags & NDR_BUFFERS) {
1748 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
1749 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1751 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->secdesc));
1753 struct ndr_push *_ndr_secdesc;
1754 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1755 NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1756 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1758 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->secdesc));
1760 ndr->flags = _flags_save_spoolss_security_descriptor;
1763 return NDR_ERR_SUCCESS;
1766 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo3 *r)
1768 uint32_t _ptr_secdesc;
1769 TALLOC_CTX *_mem_save_secdesc_0;
1770 if (ndr_flags & NDR_SCALARS) {
1771 NDR_CHECK(ndr_pull_align(ndr, 4));
1773 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
1774 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1775 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1777 NDR_PULL_ALLOC(ndr, r->secdesc);
1778 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1782 ndr->flags = _flags_save_spoolss_security_descriptor;
1785 if (ndr_flags & NDR_BUFFERS) {
1787 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
1788 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1790 uint32_t _relative_save_offset;
1791 _relative_save_offset = ndr->offset;
1792 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
1793 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
1794 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
1796 struct ndr_pull *_ndr_secdesc;
1797 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1798 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1799 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1801 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
1802 ndr->offset = _relative_save_offset;
1804 ndr->flags = _flags_save_spoolss_security_descriptor;
1807 return NDR_ERR_SUCCESS;
1810 _PUBLIC_ void ndr_print_spoolss_PrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo3 *r)
1812 ndr_print_struct(ndr, name, "spoolss_PrinterInfo3");
1814 ndr_print_ptr(ndr, "secdesc", r->secdesc);
1817 ndr_print_spoolss_security_descriptor(ndr, "secdesc", r->secdesc);
1823 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo3(const struct spoolss_PrinterInfo3 *r, struct smb_iconv_convenience *ic, int flags)
1825 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo3, ic);
1828 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo4 *r)
1830 if (ndr_flags & NDR_SCALARS) {
1831 NDR_CHECK(ndr_push_align(ndr, 4));
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->printername));
1836 ndr->flags = _flags_save_string;
1839 uint32_t _flags_save_string = ndr->flags;
1840 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1841 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
1842 ndr->flags = _flags_save_string;
1844 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1846 if (ndr_flags & NDR_BUFFERS) {
1848 uint32_t _flags_save_string = ndr->flags;
1849 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1850 if (r->printername) {
1851 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printername));
1852 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1853 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printername));
1855 ndr->flags = _flags_save_string;
1858 uint32_t _flags_save_string = ndr->flags;
1859 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1860 if (r->servername) {
1861 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->servername));
1862 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
1863 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->servername));
1865 ndr->flags = _flags_save_string;
1868 return NDR_ERR_SUCCESS;
1871 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo4 *r)
1873 uint32_t _ptr_printername;
1874 TALLOC_CTX *_mem_save_printername_0;
1875 uint32_t _ptr_servername;
1876 TALLOC_CTX *_mem_save_servername_0;
1877 if (ndr_flags & NDR_SCALARS) {
1878 NDR_CHECK(ndr_pull_align(ndr, 4));
1880 uint32_t _flags_save_string = ndr->flags;
1881 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1882 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1883 if (_ptr_printername) {
1884 NDR_PULL_ALLOC(ndr, r->printername);
1885 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1887 r->printername = NULL;
1889 ndr->flags = _flags_save_string;
1892 uint32_t _flags_save_string = ndr->flags;
1893 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1894 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1895 if (_ptr_servername) {
1896 NDR_PULL_ALLOC(ndr, r->servername);
1897 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1899 r->servername = NULL;
1901 ndr->flags = _flags_save_string;
1903 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1905 if (ndr_flags & NDR_BUFFERS) {
1907 uint32_t _flags_save_string = ndr->flags;
1908 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1909 if (r->printername) {
1910 uint32_t _relative_save_offset;
1911 _relative_save_offset = ndr->offset;
1912 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1913 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1914 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1915 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1916 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1917 ndr->offset = _relative_save_offset;
1919 ndr->flags = _flags_save_string;
1922 uint32_t _flags_save_string = ndr->flags;
1923 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1924 if (r->servername) {
1925 uint32_t _relative_save_offset;
1926 _relative_save_offset = ndr->offset;
1927 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1928 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1929 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1930 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1931 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
1932 ndr->offset = _relative_save_offset;
1934 ndr->flags = _flags_save_string;
1937 return NDR_ERR_SUCCESS;
1940 _PUBLIC_ void ndr_print_spoolss_PrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo4 *r)
1942 ndr_print_struct(ndr, name, "spoolss_PrinterInfo4");
1944 ndr_print_ptr(ndr, "printername", r->printername);
1946 if (r->printername) {
1947 ndr_print_string(ndr, "printername", r->printername);
1950 ndr_print_ptr(ndr, "servername", r->servername);
1952 if (r->servername) {
1953 ndr_print_string(ndr, "servername", r->servername);
1956 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1960 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo4(const struct spoolss_PrinterInfo4 *r, struct smb_iconv_convenience *ic, int flags)
1962 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo4, ic);
1965 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo5 *r)
1967 if (ndr_flags & NDR_SCALARS) {
1968 NDR_CHECK(ndr_push_align(ndr, 4));
1970 uint32_t _flags_save_string = ndr->flags;
1971 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1972 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1973 ndr->flags = _flags_save_string;
1976 uint32_t _flags_save_string = ndr->flags;
1977 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1978 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
1979 ndr->flags = _flags_save_string;
1981 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1982 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
1983 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
1985 if (ndr_flags & NDR_BUFFERS) {
1987 uint32_t _flags_save_string = ndr->flags;
1988 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1989 if (r->printername) {
1990 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printername));
1991 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1992 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printername));
1994 ndr->flags = _flags_save_string;
1997 uint32_t _flags_save_string = ndr->flags;
1998 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2000 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->portname));
2001 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
2002 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->portname));
2004 ndr->flags = _flags_save_string;
2007 return NDR_ERR_SUCCESS;
2010 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo5 *r)
2012 uint32_t _ptr_printername;
2013 TALLOC_CTX *_mem_save_printername_0;
2014 uint32_t _ptr_portname;
2015 TALLOC_CTX *_mem_save_portname_0;
2016 if (ndr_flags & NDR_SCALARS) {
2017 NDR_CHECK(ndr_pull_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_pull_generic_ptr(ndr, &_ptr_printername));
2022 if (_ptr_printername) {
2023 NDR_PULL_ALLOC(ndr, r->printername);
2024 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
2026 r->printername = NULL;
2028 ndr->flags = _flags_save_string;
2031 uint32_t _flags_save_string = ndr->flags;
2032 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2033 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
2034 if (_ptr_portname) {
2035 NDR_PULL_ALLOC(ndr, r->portname);
2036 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
2040 ndr->flags = _flags_save_string;
2042 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
2043 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
2044 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
2046 if (ndr_flags & NDR_BUFFERS) {
2048 uint32_t _flags_save_string = ndr->flags;
2049 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2050 if (r->printername) {
2051 uint32_t _relative_save_offset;
2052 _relative_save_offset = ndr->offset;
2053 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
2054 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2055 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
2056 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
2057 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
2058 ndr->offset = _relative_save_offset;
2060 ndr->flags = _flags_save_string;
2063 uint32_t _flags_save_string = ndr->flags;
2064 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2066 uint32_t _relative_save_offset;
2067 _relative_save_offset = ndr->offset;
2068 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
2069 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2070 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
2071 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
2072 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
2073 ndr->offset = _relative_save_offset;
2075 ndr->flags = _flags_save_string;
2078 return NDR_ERR_SUCCESS;
2081 _PUBLIC_ void ndr_print_spoolss_PrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo5 *r)
2083 ndr_print_struct(ndr, name, "spoolss_PrinterInfo5");
2085 ndr_print_ptr(ndr, "printername", r->printername);
2087 if (r->printername) {
2088 ndr_print_string(ndr, "printername", r->printername);
2091 ndr_print_ptr(ndr, "portname", r->portname);
2094 ndr_print_string(ndr, "portname", r->portname);
2097 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2098 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
2099 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
2103 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo5(const struct spoolss_PrinterInfo5 *r, struct smb_iconv_convenience *ic, int flags)
2105 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo5, ic);
2108 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo6 *r)
2110 if (ndr_flags & NDR_SCALARS) {
2111 NDR_CHECK(ndr_push_align(ndr, 4));
2112 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
2114 if (ndr_flags & NDR_BUFFERS) {
2116 return NDR_ERR_SUCCESS;
2119 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo6 *r)
2121 if (ndr_flags & NDR_SCALARS) {
2122 NDR_CHECK(ndr_pull_align(ndr, 4));
2123 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
2125 if (ndr_flags & NDR_BUFFERS) {
2127 return NDR_ERR_SUCCESS;
2130 _PUBLIC_ void ndr_print_spoolss_PrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo6 *r)
2132 ndr_print_struct(ndr, name, "spoolss_PrinterInfo6");
2134 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
2138 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo6(const struct spoolss_PrinterInfo6 *r, struct smb_iconv_convenience *ic, int flags)
2140 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo6, ic);
2143 static enum ndr_err_code ndr_push_spoolss_DsPrintAction(struct ndr_push *ndr, int ndr_flags, uint32_t r)
2145 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
2146 return NDR_ERR_SUCCESS;
2149 static enum ndr_err_code ndr_pull_spoolss_DsPrintAction(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
2152 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
2154 return NDR_ERR_SUCCESS;
2157 _PUBLIC_ void ndr_print_spoolss_DsPrintAction(struct ndr_print *ndr, const char *name, uint32_t r)
2159 ndr_print_uint32(ndr, name, r);
2161 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH, r);
2162 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE, r);
2163 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH, r);
2164 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH, r);
2165 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING, r);
2169 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo7 *r)
2171 if (ndr_flags & NDR_SCALARS) {
2172 NDR_CHECK(ndr_push_align(ndr, 4));
2174 uint32_t _flags_save_string = ndr->flags;
2175 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2176 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->guid));
2177 ndr->flags = _flags_save_string;
2179 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
2181 if (ndr_flags & NDR_BUFFERS) {
2183 uint32_t _flags_save_string = ndr->flags;
2184 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2186 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->guid));
2187 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->guid));
2188 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->guid));
2190 ndr->flags = _flags_save_string;
2193 return NDR_ERR_SUCCESS;
2196 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo7 *r)
2199 TALLOC_CTX *_mem_save_guid_0;
2200 if (ndr_flags & NDR_SCALARS) {
2201 NDR_CHECK(ndr_pull_align(ndr, 4));
2203 uint32_t _flags_save_string = ndr->flags;
2204 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2205 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
2207 NDR_PULL_ALLOC(ndr, r->guid);
2208 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->guid, _ptr_guid));
2212 ndr->flags = _flags_save_string;
2214 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
2216 if (ndr_flags & NDR_BUFFERS) {
2218 uint32_t _flags_save_string = ndr->flags;
2219 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2221 uint32_t _relative_save_offset;
2222 _relative_save_offset = ndr->offset;
2223 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->guid));
2224 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
2225 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
2226 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->guid));
2227 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
2228 ndr->offset = _relative_save_offset;
2230 ndr->flags = _flags_save_string;
2233 return NDR_ERR_SUCCESS;
2236 _PUBLIC_ void ndr_print_spoolss_PrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo7 *r)
2238 ndr_print_struct(ndr, name, "spoolss_PrinterInfo7");
2240 ndr_print_ptr(ndr, "guid", r->guid);
2243 ndr_print_string(ndr, "guid", r->guid);
2246 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
2250 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo7(const struct spoolss_PrinterInfo7 *r, struct smb_iconv_convenience *ic, int flags)
2252 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo7, ic);
2255 static enum ndr_err_code ndr_push_spoolss_DeviceModeInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceModeInfo *r)
2257 if (ndr_flags & NDR_SCALARS) {
2258 NDR_CHECK(ndr_push_align(ndr, 4));
2260 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2261 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2262 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
2263 ndr->flags = _flags_save_spoolss_DeviceMode;
2266 if (ndr_flags & NDR_BUFFERS) {
2268 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2269 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2271 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->devmode));
2273 struct ndr_push *_ndr_devmode;
2274 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2275 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2276 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
2278 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->devmode));
2280 ndr->flags = _flags_save_spoolss_DeviceMode;
2283 return NDR_ERR_SUCCESS;
2286 static enum ndr_err_code ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceModeInfo *r)
2288 uint32_t _ptr_devmode;
2289 TALLOC_CTX *_mem_save_devmode_0;
2290 if (ndr_flags & NDR_SCALARS) {
2291 NDR_CHECK(ndr_pull_align(ndr, 4));
2293 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2294 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2295 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2297 NDR_PULL_ALLOC(ndr, r->devmode);
2298 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
2302 ndr->flags = _flags_save_spoolss_DeviceMode;
2305 if (ndr_flags & NDR_BUFFERS) {
2307 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2308 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2310 uint32_t _relative_save_offset;
2311 _relative_save_offset = ndr->offset;
2312 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
2313 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2314 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2316 struct ndr_pull *_ndr_devmode;
2317 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2318 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2319 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
2321 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2322 ndr->offset = _relative_save_offset;
2324 ndr->flags = _flags_save_spoolss_DeviceMode;
2327 return NDR_ERR_SUCCESS;
2330 _PUBLIC_ void ndr_print_spoolss_DeviceModeInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceModeInfo *r)
2332 ndr_print_struct(ndr, name, "spoolss_DeviceModeInfo");
2334 ndr_print_ptr(ndr, "devmode", r->devmode);
2337 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2343 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterInfo *r)
2345 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
2347 uint32_t _flags_save_UNION = ndr->flags;
2348 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
2349 if (ndr_flags & NDR_SCALARS) {
2350 int level = ndr_push_get_switch_value(ndr, r);
2353 NDR_CHECK(ndr_push_align(ndr, 4));
2354 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2355 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2359 NDR_CHECK(ndr_push_align(ndr, 4));
2360 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2361 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2365 NDR_CHECK(ndr_push_align(ndr, 4));
2366 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2367 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2371 NDR_CHECK(ndr_push_align(ndr, 4));
2372 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2373 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2377 NDR_CHECK(ndr_push_align(ndr, 4));
2378 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2379 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2383 NDR_CHECK(ndr_push_align(ndr, 4));
2384 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2385 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2389 NDR_CHECK(ndr_push_align(ndr, 4));
2390 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2391 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2395 NDR_CHECK(ndr_push_align(ndr, 4));
2396 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2397 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2401 NDR_CHECK(ndr_push_align(ndr, 4));
2402 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2403 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2407 NDR_CHECK(ndr_push_align(ndr, 4));
2408 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2409 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2417 if (ndr_flags & NDR_BUFFERS) {
2418 int level = ndr_push_get_switch_value(ndr, r);
2419 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
2422 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2426 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2430 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2434 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2438 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2442 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2449 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2453 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2457 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2465 ndr->flags = _flags_save_UNION;
2467 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
2468 return NDR_ERR_SUCCESS;
2471 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterInfo *r)
2473 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
2476 uint32_t _flags_save_UNION = ndr->flags;
2477 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
2478 level = ndr_pull_get_switch_value(ndr, r);
2479 if (ndr_flags & NDR_SCALARS) {
2482 NDR_CHECK(ndr_pull_align(ndr, 4));
2483 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2484 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2488 NDR_CHECK(ndr_pull_align(ndr, 4));
2489 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2490 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2494 NDR_CHECK(ndr_pull_align(ndr, 4));
2495 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2496 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2500 NDR_CHECK(ndr_pull_align(ndr, 4));
2501 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2502 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2506 NDR_CHECK(ndr_pull_align(ndr, 4));
2507 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2508 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2512 NDR_CHECK(ndr_pull_align(ndr, 4));
2513 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2514 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2518 NDR_CHECK(ndr_pull_align(ndr, 4));
2519 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2520 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2524 NDR_CHECK(ndr_pull_align(ndr, 4));
2525 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2526 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2530 NDR_CHECK(ndr_pull_align(ndr, 4));
2531 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2532 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2536 NDR_CHECK(ndr_pull_align(ndr, 4));
2537 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2538 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2546 if (ndr_flags & NDR_BUFFERS) {
2547 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
2550 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2554 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2558 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2562 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2566 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2570 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2577 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2581 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2585 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2593 ndr->flags = _flags_save_UNION;
2595 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
2596 return NDR_ERR_SUCCESS;
2599 _PUBLIC_ void ndr_print_spoolss_PrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrinterInfo *r)
2603 uint32_t _flags_save_UNION = ndr->flags;
2604 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
2605 level = ndr_print_get_switch_value(ndr, r);
2606 ndr_print_union(ndr, name, level, "spoolss_PrinterInfo");
2609 ndr_print_spoolss_PrinterInfo0(ndr, "info0", &r->info0);
2613 ndr_print_spoolss_PrinterInfo1(ndr, "info1", &r->info1);
2617 ndr_print_spoolss_PrinterInfo2(ndr, "info2", &r->info2);
2621 ndr_print_spoolss_PrinterInfo3(ndr, "info3", &r->info3);
2625 ndr_print_spoolss_PrinterInfo4(ndr, "info4", &r->info4);
2629 ndr_print_spoolss_PrinterInfo5(ndr, "info5", &r->info5);
2633 ndr_print_spoolss_PrinterInfo6(ndr, "info6", &r->info6);
2637 ndr_print_spoolss_PrinterInfo7(ndr, "info7", &r->info7);
2641 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", &r->info8);
2645 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", &r->info9);
2652 ndr->flags = _flags_save_UNION;
2656 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo(const union spoolss_PrinterInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
2658 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
2659 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo, ic);
2662 static enum ndr_err_code ndr_push_spoolss_DevmodeContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DevmodeContainer *r)
2664 if (ndr_flags & NDR_SCALARS) {
2665 NDR_CHECK(ndr_push_align(ndr, 4));
2666 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2667 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
2669 if (ndr_flags & NDR_BUFFERS) {
2672 struct ndr_push *_ndr_devmode;
2673 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2674 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2675 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2679 return NDR_ERR_SUCCESS;
2682 static enum ndr_err_code ndr_pull_spoolss_DevmodeContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DevmodeContainer *r)
2684 uint32_t _ptr_devmode;
2685 TALLOC_CTX *_mem_save_devmode_0;
2686 if (ndr_flags & NDR_SCALARS) {
2687 NDR_CHECK(ndr_pull_align(ndr, 4));
2688 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
2689 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2691 NDR_PULL_ALLOC(ndr, r->devmode);
2696 if (ndr_flags & NDR_BUFFERS) {
2698 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2699 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2701 struct ndr_pull *_ndr_devmode;
2702 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 4, r->_ndr_size));
2703 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2704 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 4, r->_ndr_size));
2706 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2709 return NDR_ERR_SUCCESS;
2712 _PUBLIC_ void ndr_print_spoolss_DevmodeContainer(struct ndr_print *ndr, const char *name, const struct spoolss_DevmodeContainer *r)
2714 ndr_print_struct(ndr, name, "spoolss_DevmodeContainer");
2716 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);
2717 ndr_print_ptr(ndr, "devmode", r->devmode);
2720 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2726 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo1 *r)
2728 if (ndr_flags & NDR_SCALARS) {
2729 NDR_CHECK(ndr_push_align(ndr, 4));
2730 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
2732 uint32_t _flags_save_string = ndr->flags;
2733 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2734 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
2735 ndr->flags = _flags_save_string;
2738 uint32_t _flags_save_string = ndr->flags;
2739 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2740 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
2741 ndr->flags = _flags_save_string;
2744 uint32_t _flags_save_string = ndr->flags;
2745 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2746 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
2747 ndr->flags = _flags_save_string;
2750 uint32_t _flags_save_string = ndr->flags;
2751 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2752 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
2753 ndr->flags = _flags_save_string;
2756 uint32_t _flags_save_string = ndr->flags;
2757 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2758 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
2759 ndr->flags = _flags_save_string;
2762 uint32_t _flags_save_string = ndr->flags;
2763 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2764 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
2765 ndr->flags = _flags_save_string;
2767 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
2768 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
2769 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
2770 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
2771 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
2772 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
2774 if (ndr_flags & NDR_BUFFERS) {
2776 uint32_t _flags_save_string = ndr->flags;
2777 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2778 if (r->printer_name) {
2779 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printer_name));
2780 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
2781 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printer_name));
2783 ndr->flags = _flags_save_string;
2786 uint32_t _flags_save_string = ndr->flags;
2787 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2788 if (r->server_name) {
2789 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->server_name));
2790 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
2791 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->server_name));
2793 ndr->flags = _flags_save_string;
2796 uint32_t _flags_save_string = ndr->flags;
2797 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2799 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->user_name));
2800 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
2801 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->user_name));
2803 ndr->flags = _flags_save_string;
2806 uint32_t _flags_save_string = ndr->flags;
2807 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2808 if (r->document_name) {
2809 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->document_name));
2810 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
2811 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->document_name));
2813 ndr->flags = _flags_save_string;
2816 uint32_t _flags_save_string = ndr->flags;
2817 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2819 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_type));
2820 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
2821 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_type));
2823 ndr->flags = _flags_save_string;
2826 uint32_t _flags_save_string = ndr->flags;
2827 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2828 if (r->text_status) {
2829 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->text_status));
2830 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
2831 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->text_status));
2833 ndr->flags = _flags_save_string;
2836 return NDR_ERR_SUCCESS;
2839 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo1 *r)
2841 uint32_t _ptr_printer_name;
2842 TALLOC_CTX *_mem_save_printer_name_0;
2843 uint32_t _ptr_server_name;
2844 TALLOC_CTX *_mem_save_server_name_0;
2845 uint32_t _ptr_user_name;
2846 TALLOC_CTX *_mem_save_user_name_0;
2847 uint32_t _ptr_document_name;
2848 TALLOC_CTX *_mem_save_document_name_0;
2849 uint32_t _ptr_data_type;
2850 TALLOC_CTX *_mem_save_data_type_0;
2851 uint32_t _ptr_text_status;
2852 TALLOC_CTX *_mem_save_text_status_0;
2853 if (ndr_flags & NDR_SCALARS) {
2854 NDR_CHECK(ndr_pull_align(ndr, 4));
2855 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
2857 uint32_t _flags_save_string = ndr->flags;
2858 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2859 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
2860 if (_ptr_printer_name) {
2861 NDR_PULL_ALLOC(ndr, r->printer_name);
2862 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
2864 r->printer_name = NULL;
2866 ndr->flags = _flags_save_string;
2869 uint32_t _flags_save_string = ndr->flags;
2870 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2871 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
2872 if (_ptr_server_name) {
2873 NDR_PULL_ALLOC(ndr, r->server_name);
2874 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
2876 r->server_name = NULL;
2878 ndr->flags = _flags_save_string;
2881 uint32_t _flags_save_string = ndr->flags;
2882 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2883 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
2884 if (_ptr_user_name) {
2885 NDR_PULL_ALLOC(ndr, r->user_name);
2886 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
2888 r->user_name = NULL;
2890 ndr->flags = _flags_save_string;
2893 uint32_t _flags_save_string = ndr->flags;
2894 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2895 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
2896 if (_ptr_document_name) {
2897 NDR_PULL_ALLOC(ndr, r->document_name);
2898 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
2900 r->document_name = NULL;
2902 ndr->flags = _flags_save_string;
2905 uint32_t _flags_save_string = ndr->flags;
2906 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2907 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
2908 if (_ptr_data_type) {
2909 NDR_PULL_ALLOC(ndr, r->data_type);
2910 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
2912 r->data_type = NULL;
2914 ndr->flags = _flags_save_string;
2917 uint32_t _flags_save_string = ndr->flags;
2918 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2919 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
2920 if (_ptr_text_status) {
2921 NDR_PULL_ALLOC(ndr, r->text_status);
2922 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
2924 r->text_status = NULL;
2926 ndr->flags = _flags_save_string;
2928 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
2929 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
2930 if (r->priority > 99) {
2931 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
2933 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
2934 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
2935 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
2936 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
2938 if (ndr_flags & NDR_BUFFERS) {
2940 uint32_t _flags_save_string = ndr->flags;
2941 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2942 if (r->printer_name) {
2943 uint32_t _relative_save_offset;
2944 _relative_save_offset = ndr->offset;
2945 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
2946 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2947 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
2948 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
2949 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
2950 ndr->offset = _relative_save_offset;
2952 ndr->flags = _flags_save_string;
2955 uint32_t _flags_save_string = ndr->flags;
2956 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2957 if (r->server_name) {
2958 uint32_t _relative_save_offset;
2959 _relative_save_offset = ndr->offset;
2960 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
2961 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2962 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
2963 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
2964 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
2965 ndr->offset = _relative_save_offset;
2967 ndr->flags = _flags_save_string;
2970 uint32_t _flags_save_string = ndr->flags;
2971 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2973 uint32_t _relative_save_offset;
2974 _relative_save_offset = ndr->offset;
2975 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
2976 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2977 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
2978 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
2979 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
2980 ndr->offset = _relative_save_offset;
2982 ndr->flags = _flags_save_string;
2985 uint32_t _flags_save_string = ndr->flags;
2986 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2987 if (r->document_name) {
2988 uint32_t _relative_save_offset;
2989 _relative_save_offset = ndr->offset;
2990 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
2991 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2992 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
2993 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
2994 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
2995 ndr->offset = _relative_save_offset;
2997 ndr->flags = _flags_save_string;
3000 uint32_t _flags_save_string = ndr->flags;
3001 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3003 uint32_t _relative_save_offset;
3004 _relative_save_offset = ndr->offset;
3005 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
3006 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
3007 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
3008 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
3009 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
3010 ndr->offset = _relative_save_offset;
3012 ndr->flags = _flags_save_string;
3015 uint32_t _flags_save_string = ndr->flags;
3016 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3017 if (r->text_status) {
3018 uint32_t _relative_save_offset;
3019 _relative_save_offset = ndr->offset;
3020 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
3021 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
3022 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
3023 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
3024 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
3025 ndr->offset = _relative_save_offset;
3027 ndr->flags = _flags_save_string;
3030 return NDR_ERR_SUCCESS;
3033 _PUBLIC_ void ndr_print_spoolss_JobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo1 *r)
3035 ndr_print_struct(ndr, name, "spoolss_JobInfo1");
3037 ndr_print_uint32(ndr, "job_id", r->job_id);
3038 ndr_print_ptr(ndr, "printer_name", r->printer_name);
3040 if (r->printer_name) {
3041 ndr_print_string(ndr, "printer_name", r->printer_name);
3044 ndr_print_ptr(ndr, "server_name", r->server_name);
3046 if (r->server_name) {
3047 ndr_print_string(ndr, "server_name", r->server_name);
3050 ndr_print_ptr(ndr, "user_name", r->user_name);
3053 ndr_print_string(ndr, "user_name", r->user_name);
3056 ndr_print_ptr(ndr, "document_name", r->document_name);
3058 if (r->document_name) {
3059 ndr_print_string(ndr, "document_name", r->document_name);
3062 ndr_print_ptr(ndr, "data_type", r->data_type);
3065 ndr_print_string(ndr, "data_type", r->data_type);
3068 ndr_print_ptr(ndr, "text_status", r->text_status);
3070 if (r->text_status) {
3071 ndr_print_string(ndr, "text_status", r->text_status);
3074 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
3075 ndr_print_uint32(ndr, "priority", r->priority);
3076 ndr_print_uint32(ndr, "position", r->position);
3077 ndr_print_uint32(ndr, "total_pages", r->total_pages);
3078 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
3079 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
3083 _PUBLIC_ size_t ndr_size_spoolss_JobInfo1(const struct spoolss_JobInfo1 *r, struct smb_iconv_convenience *ic, int flags)
3085 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo1, ic);
3088 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo2 *r)
3090 if (ndr_flags & NDR_SCALARS) {
3091 NDR_CHECK(ndr_push_align(ndr, 4));
3092 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3094 uint32_t _flags_save_string = ndr->flags;
3095 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3096 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
3097 ndr->flags = _flags_save_string;
3100 uint32_t _flags_save_string = ndr->flags;
3101 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3102 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
3103 ndr->flags = _flags_save_string;
3106 uint32_t _flags_save_string = ndr->flags;
3107 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3108 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
3109 ndr->flags = _flags_save_string;
3112 uint32_t _flags_save_string = ndr->flags;
3113 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3114 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
3115 ndr->flags = _flags_save_string;
3118 uint32_t _flags_save_string = ndr->flags;
3119 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3120 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
3121 ndr->flags = _flags_save_string;
3124 uint32_t _flags_save_string = ndr->flags;
3125 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3126 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
3127 ndr->flags = _flags_save_string;
3130 uint32_t _flags_save_string = ndr->flags;
3131 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3132 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
3133 ndr->flags = _flags_save_string;
3136 uint32_t _flags_save_string = ndr->flags;
3137 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3138 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
3139 ndr->flags = _flags_save_string;
3142 uint32_t _flags_save_string = ndr->flags;
3143 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3144 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
3145 ndr->flags = _flags_save_string;
3148 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
3149 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3150 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
3151 ndr->flags = _flags_save_spoolss_DeviceMode;
3154 uint32_t _flags_save_string = ndr->flags;
3155 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3156 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
3157 ndr->flags = _flags_save_string;
3160 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
3161 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3162 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
3163 ndr->flags = _flags_save_spoolss_security_descriptor;
3165 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
3166 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3167 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
3168 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
3169 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
3170 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3171 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
3172 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3173 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
3174 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
3176 if (ndr_flags & NDR_BUFFERS) {
3178 uint32_t _flags_save_string = ndr->flags;
3179 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3180 if (r->printer_name) {
3181 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printer_name));
3182 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
3183 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printer_name));
3185 ndr->flags = _flags_save_string;
3188 uint32_t _flags_save_string = ndr->flags;
3189 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3190 if (r->server_name) {
3191 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->server_name));
3192 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3193 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->server_name));
3195 ndr->flags = _flags_save_string;
3198 uint32_t _flags_save_string = ndr->flags;
3199 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3201 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->user_name));
3202 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3203 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->user_name));
3205 ndr->flags = _flags_save_string;
3208 uint32_t _flags_save_string = ndr->flags;
3209 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3210 if (r->document_name) {
3211 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->document_name));
3212 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3213 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->document_name));
3215 ndr->flags = _flags_save_string;
3218 uint32_t _flags_save_string = ndr->flags;
3219 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3220 if (r->notify_name) {
3221 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->notify_name));
3222 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
3223 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->notify_name));
3225 ndr->flags = _flags_save_string;
3228 uint32_t _flags_save_string = ndr->flags;
3229 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3231 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_type));
3232 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3233 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_type));
3235 ndr->flags = _flags_save_string;
3238 uint32_t _flags_save_string = ndr->flags;
3239 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3240 if (r->print_processor) {
3241 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor));
3242 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
3243 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor));
3245 ndr->flags = _flags_save_string;
3248 uint32_t _flags_save_string = ndr->flags;
3249 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3250 if (r->parameters) {
3251 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->parameters));
3252 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
3253 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->parameters));
3255 ndr->flags = _flags_save_string;
3258 uint32_t _flags_save_string = ndr->flags;
3259 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3260 if (r->driver_name) {
3261 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
3262 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
3263 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
3265 ndr->flags = _flags_save_string;
3268 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
3269 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3271 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->devmode));
3273 struct ndr_push *_ndr_devmode;
3274 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
3275 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3276 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
3278 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->devmode));
3280 ndr->flags = _flags_save_spoolss_DeviceMode;
3283 uint32_t _flags_save_string = ndr->flags;
3284 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3285 if (r->text_status) {
3286 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->text_status));
3287 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3288 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->text_status));
3290 ndr->flags = _flags_save_string;
3293 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
3294 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3296 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->secdesc));
3298 struct ndr_push *_ndr_secdesc;
3299 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
3300 NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3301 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
3303 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->secdesc));
3305 ndr->flags = _flags_save_spoolss_security_descriptor;
3308 return NDR_ERR_SUCCESS;
3311 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo2 *r)
3313 uint32_t _ptr_printer_name;
3314 TALLOC_CTX *_mem_save_printer_name_0;
3315 uint32_t _ptr_server_name;
3316 TALLOC_CTX *_mem_save_server_name_0;
3317 uint32_t _ptr_user_name;
3318 TALLOC_CTX *_mem_save_user_name_0;
3319 uint32_t _ptr_document_name;
3320 TALLOC_CTX *_mem_save_document_name_0;
3321 uint32_t _ptr_notify_name;
3322 TALLOC_CTX *_mem_save_notify_name_0;
3323 uint32_t _ptr_data_type;
3324 TALLOC_CTX *_mem_save_data_type_0;
3325 uint32_t _ptr_print_processor;
3326 TALLOC_CTX *_mem_save_print_processor_0;
3327 uint32_t _ptr_parameters;
3328 TALLOC_CTX *_mem_save_parameters_0;
3329 uint32_t _ptr_driver_name;
3330 TALLOC_CTX *_mem_save_driver_name_0;
3331 uint32_t _ptr_devmode;
3332 TALLOC_CTX *_mem_save_devmode_0;
3333 uint32_t _ptr_text_status;
3334 TALLOC_CTX *_mem_save_text_status_0;
3335 uint32_t _ptr_secdesc;
3336 TALLOC_CTX *_mem_save_secdesc_0;
3337 if (ndr_flags & NDR_SCALARS) {
3338 NDR_CHECK(ndr_pull_align(ndr, 4));
3339 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3341 uint32_t _flags_save_string = ndr->flags;
3342 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3343 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
3344 if (_ptr_printer_name) {
3345 NDR_PULL_ALLOC(ndr, r->printer_name);
3346 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
3348 r->printer_name = NULL;
3350 ndr->flags = _flags_save_string;
3353 uint32_t _flags_save_string = ndr->flags;
3354 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3355 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
3356 if (_ptr_server_name) {
3357 NDR_PULL_ALLOC(ndr, r->server_name);
3358 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
3360 r->server_name = NULL;
3362 ndr->flags = _flags_save_string;
3365 uint32_t _flags_save_string = ndr->flags;
3366 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3367 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
3368 if (_ptr_user_name) {
3369 NDR_PULL_ALLOC(ndr, r->user_name);
3370 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
3372 r->user_name = NULL;
3374 ndr->flags = _flags_save_string;
3377 uint32_t _flags_save_string = ndr->flags;
3378 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3379 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
3380 if (_ptr_document_name) {
3381 NDR_PULL_ALLOC(ndr, r->document_name);
3382 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
3384 r->document_name = NULL;
3386 ndr->flags = _flags_save_string;
3389 uint32_t _flags_save_string = ndr->flags;
3390 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3391 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
3392 if (_ptr_notify_name) {
3393 NDR_PULL_ALLOC(ndr, r->notify_name);
3394 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
3396 r->notify_name = NULL;
3398 ndr->flags = _flags_save_string;
3401 uint32_t _flags_save_string = ndr->flags;
3402 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3403 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
3404 if (_ptr_data_type) {
3405 NDR_PULL_ALLOC(ndr, r->data_type);
3406 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
3408 r->data_type = NULL;
3410 ndr->flags = _flags_save_string;
3413 uint32_t _flags_save_string = ndr->flags;
3414 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3415 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
3416 if (_ptr_print_processor) {
3417 NDR_PULL_ALLOC(ndr, r->print_processor);
3418 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
3420 r->print_processor = NULL;
3422 ndr->flags = _flags_save_string;
3425 uint32_t _flags_save_string = ndr->flags;
3426 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3427 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
3428 if (_ptr_parameters) {
3429 NDR_PULL_ALLOC(ndr, r->parameters);
3430 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
3432 r->parameters = NULL;
3434 ndr->flags = _flags_save_string;
3437 uint32_t _flags_save_string = ndr->flags;
3438 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3439 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
3440 if (_ptr_driver_name) {
3441 NDR_PULL_ALLOC(ndr, r->driver_name);
3442 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
3444 r->driver_name = NULL;
3446 ndr->flags = _flags_save_string;
3449 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
3450 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3451 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3453 NDR_PULL_ALLOC(ndr, r->devmode);
3454 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
3458 ndr->flags = _flags_save_spoolss_DeviceMode;
3461 uint32_t _flags_save_string = ndr->flags;
3462 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3463 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
3464 if (_ptr_text_status) {
3465 NDR_PULL_ALLOC(ndr, r->text_status);
3466 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
3468 r->text_status = NULL;
3470 ndr->flags = _flags_save_string;
3473 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
3474 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3475 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
3477 NDR_PULL_ALLOC(ndr, r->secdesc);
3478 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
3482 ndr->flags = _flags_save_spoolss_security_descriptor;
3484 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
3485 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3486 if (r->priority > 99) {
3487 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3489 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
3490 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
3491 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
3492 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3493 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
3494 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3495 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
3496 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
3498 if (ndr_flags & NDR_BUFFERS) {
3500 uint32_t _flags_save_string = ndr->flags;
3501 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3502 if (r->printer_name) {
3503 uint32_t _relative_save_offset;
3504 _relative_save_offset = ndr->offset;
3505 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
3506 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3507 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
3508 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
3509 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
3510 ndr->offset = _relative_save_offset;
3512 ndr->flags = _flags_save_string;
3515 uint32_t _flags_save_string = ndr->flags;
3516 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3517 if (r->server_name) {
3518 uint32_t _relative_save_offset;
3519 _relative_save_offset = ndr->offset;
3520 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
3521 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3522 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
3523 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
3524 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
3525 ndr->offset = _relative_save_offset;
3527 ndr->flags = _flags_save_string;
3530 uint32_t _flags_save_string = ndr->flags;
3531 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3533 uint32_t _relative_save_offset;
3534 _relative_save_offset = ndr->offset;
3535 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
3536 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3537 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
3538 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
3539 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
3540 ndr->offset = _relative_save_offset;
3542 ndr->flags = _flags_save_string;
3545 uint32_t _flags_save_string = ndr->flags;
3546 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3547 if (r->document_name) {
3548 uint32_t _relative_save_offset;
3549 _relative_save_offset = ndr->offset;
3550 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
3551 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3552 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
3553 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
3554 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
3555 ndr->offset = _relative_save_offset;
3557 ndr->flags = _flags_save_string;
3560 uint32_t _flags_save_string = ndr->flags;
3561 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3562 if (r->notify_name) {
3563 uint32_t _relative_save_offset;
3564 _relative_save_offset = ndr->offset;
3565 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
3566 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3567 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
3568 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
3569 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
3570 ndr->offset = _relative_save_offset;
3572 ndr->flags = _flags_save_string;
3575 uint32_t _flags_save_string = ndr->flags;
3576 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3578 uint32_t _relative_save_offset;
3579 _relative_save_offset = ndr->offset;
3580 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
3581 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
3582 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
3583 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
3584 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
3585 ndr->offset = _relative_save_offset;
3587 ndr->flags = _flags_save_string;
3590 uint32_t _flags_save_string = ndr->flags;
3591 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3592 if (r->print_processor) {
3593 uint32_t _relative_save_offset;
3594 _relative_save_offset = ndr->offset;
3595 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
3596 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
3597 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
3598 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
3599 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
3600 ndr->offset = _relative_save_offset;
3602 ndr->flags = _flags_save_string;
3605 uint32_t _flags_save_string = ndr->flags;
3606 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3607 if (r->parameters) {
3608 uint32_t _relative_save_offset;
3609 _relative_save_offset = ndr->offset;
3610 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
3611 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
3612 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
3613 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
3614 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
3615 ndr->offset = _relative_save_offset;
3617 ndr->flags = _flags_save_string;
3620 uint32_t _flags_save_string = ndr->flags;
3621 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3622 if (r->driver_name) {
3623 uint32_t _relative_save_offset;
3624 _relative_save_offset = ndr->offset;
3625 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
3626 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3627 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
3628 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
3629 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
3630 ndr->offset = _relative_save_offset;
3632 ndr->flags = _flags_save_string;
3635 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
3636 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3638 uint32_t _relative_save_offset;
3639 _relative_save_offset = ndr->offset;
3640 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
3641 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
3642 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
3644 struct ndr_pull *_ndr_devmode;
3645 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
3646 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3647 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
3649 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
3650 ndr->offset = _relative_save_offset;
3652 ndr->flags = _flags_save_spoolss_DeviceMode;
3655 uint32_t _flags_save_string = ndr->flags;
3656 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3657 if (r->text_status) {
3658 uint32_t _relative_save_offset;
3659 _relative_save_offset = ndr->offset;
3660 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
3661 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
3662 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
3663 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
3664 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
3665 ndr->offset = _relative_save_offset;
3667 ndr->flags = _flags_save_string;
3670 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
3671 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3673 uint32_t _relative_save_offset;
3674 _relative_save_offset = ndr->offset;
3675 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
3676 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
3677 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
3679 struct ndr_pull *_ndr_secdesc;
3680 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
3681 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3682 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
3684 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
3685 ndr->offset = _relative_save_offset;
3687 ndr->flags = _flags_save_spoolss_security_descriptor;
3690 return NDR_ERR_SUCCESS;
3693 _PUBLIC_ void ndr_print_spoolss_JobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo2 *r)
3695 ndr_print_struct(ndr, name, "spoolss_JobInfo2");
3697 ndr_print_uint32(ndr, "job_id", r->job_id);
3698 ndr_print_ptr(ndr, "printer_name", r->printer_name);
3700 if (r->printer_name) {
3701 ndr_print_string(ndr, "printer_name", r->printer_name);
3704 ndr_print_ptr(ndr, "server_name", r->server_name);
3706 if (r->server_name) {
3707 ndr_print_string(ndr, "server_name", r->server_name);
3710 ndr_print_ptr(ndr, "user_name", r->user_name);
3713 ndr_print_string(ndr, "user_name", r->user_name);
3716 ndr_print_ptr(ndr, "document_name", r->document_name);
3718 if (r->document_name) {
3719 ndr_print_string(ndr, "document_name", r->document_name);
3722 ndr_print_ptr(ndr, "notify_name", r->notify_name);
3724 if (r->notify_name) {
3725 ndr_print_string(ndr, "notify_name", r->notify_name);
3728 ndr_print_ptr(ndr, "data_type", r->data_type);
3731 ndr_print_string(ndr, "data_type", r->data_type);
3734 ndr_print_ptr(ndr, "print_processor", r->print_processor);
3736 if (r->print_processor) {
3737 ndr_print_string(ndr, "print_processor", r->print_processor);
3740 ndr_print_ptr(ndr, "parameters", r->parameters);
3742 if (r->parameters) {
3743 ndr_print_string(ndr, "parameters", r->parameters);
3746 ndr_print_ptr(ndr, "driver_name", r->driver_name);
3748 if (r->driver_name) {
3749 ndr_print_string(ndr, "driver_name", r->driver_name);
3752 ndr_print_ptr(ndr, "devmode", r->devmode);
3755 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
3758 ndr_print_ptr(ndr, "text_status", r->text_status);
3760 if (r->text_status) {
3761 ndr_print_string(ndr, "text_status", r->text_status);
3764 ndr_print_ptr(ndr, "secdesc", r->secdesc);
3767 ndr_print_spoolss_security_descriptor(ndr, "secdesc", r->secdesc);
3770 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
3771 ndr_print_uint32(ndr, "priority", r->priority);
3772 ndr_print_uint32(ndr, "position", r->position);
3773 ndr_print_uint32(ndr, "start_time", r->start_time);
3774 ndr_print_uint32(ndr, "until_time", r->until_time);
3775 ndr_print_uint32(ndr, "total_pages", r->total_pages);
3776 ndr_print_uint32(ndr, "size", r->size);
3777 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
3778 ndr_print_uint32(ndr, "time", r->time);
3779 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
3783 _PUBLIC_ size_t ndr_size_spoolss_JobInfo2(const struct spoolss_JobInfo2 *r, struct smb_iconv_convenience *ic, int flags)
3785 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo2, ic);
3788 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo3 *r)
3790 if (ndr_flags & NDR_SCALARS) {
3791 NDR_CHECK(ndr_push_align(ndr, 4));
3792 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3793 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->next_job_id));
3794 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
3796 if (ndr_flags & NDR_BUFFERS) {
3798 return NDR_ERR_SUCCESS;
3801 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo3 *r)
3803 if (ndr_flags & NDR_SCALARS) {
3804 NDR_CHECK(ndr_pull_align(ndr, 4));
3805 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3806 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->next_job_id));
3807 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
3809 if (ndr_flags & NDR_BUFFERS) {
3811 return NDR_ERR_SUCCESS;
3814 _PUBLIC_ void ndr_print_spoolss_JobInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo3 *r)
3816 ndr_print_struct(ndr, name, "spoolss_JobInfo3");
3818 ndr_print_uint32(ndr, "job_id", r->job_id);
3819 ndr_print_uint32(ndr, "next_job_id", r->next_job_id);
3820 ndr_print_uint32(ndr, "reserved", r->reserved);
3824 _PUBLIC_ size_t ndr_size_spoolss_JobInfo3(const struct spoolss_JobInfo3 *r, struct smb_iconv_convenience *ic, int flags)
3826 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo3, ic);
3829 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo4 *r)
3831 if (ndr_flags & NDR_SCALARS) {
3832 NDR_CHECK(ndr_push_align(ndr, 4));
3833 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3835 uint32_t _flags_save_string = ndr->flags;
3836 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3837 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
3838 ndr->flags = _flags_save_string;
3841 uint32_t _flags_save_string = ndr->flags;
3842 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3843 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
3844 ndr->flags = _flags_save_string;
3847 uint32_t _flags_save_string = ndr->flags;
3848 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3849 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
3850 ndr->flags = _flags_save_string;
3853 uint32_t _flags_save_string = ndr->flags;
3854 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3855 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
3856 ndr->flags = _flags_save_string;
3859 uint32_t _flags_save_string = ndr->flags;
3860 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3861 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
3862 ndr->flags = _flags_save_string;
3865 uint32_t _flags_save_string = ndr->flags;
3866 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3867 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
3868 ndr->flags = _flags_save_string;
3871 uint32_t _flags_save_string = ndr->flags;
3872 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3873 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
3874 ndr->flags = _flags_save_string;
3877 uint32_t _flags_save_string = ndr->flags;
3878 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3879 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
3880 ndr->flags = _flags_save_string;
3883 uint32_t _flags_save_string = ndr->flags;
3884 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3885 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
3886 ndr->flags = _flags_save_string;
3889 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
3890 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3891 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
3892 ndr->flags = _flags_save_spoolss_DeviceMode;
3895 uint32_t _flags_save_string = ndr->flags;
3896 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3897 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
3898 ndr->flags = _flags_save_string;
3901 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
3902 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3903 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
3904 ndr->flags = _flags_save_spoolss_security_descriptor;
3906 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
3907 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3908 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
3909 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
3910 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
3911 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3912 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
3913 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3914 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
3915 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
3916 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
3918 if (ndr_flags & NDR_BUFFERS) {
3920 uint32_t _flags_save_string = ndr->flags;
3921 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3922 if (r->printer_name) {
3923 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printer_name));
3924 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
3925 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printer_name));
3927 ndr->flags = _flags_save_string;
3930 uint32_t _flags_save_string = ndr->flags;
3931 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3932 if (r->server_name) {
3933 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->server_name));
3934 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3935 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->server_name));
3937 ndr->flags = _flags_save_string;
3940 uint32_t _flags_save_string = ndr->flags;
3941 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3943 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->user_name));
3944 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3945 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->user_name));
3947 ndr->flags = _flags_save_string;
3950 uint32_t _flags_save_string = ndr->flags;
3951 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3952 if (r->document_name) {
3953 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->document_name));
3954 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3955 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->document_name));
3957 ndr->flags = _flags_save_string;
3960 uint32_t _flags_save_string = ndr->flags;
3961 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3962 if (r->notify_name) {
3963 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->notify_name));
3964 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
3965 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->notify_name));
3967 ndr->flags = _flags_save_string;
3970 uint32_t _flags_save_string = ndr->flags;
3971 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3973 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_type));
3974 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3975 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_type));
3977 ndr->flags = _flags_save_string;
3980 uint32_t _flags_save_string = ndr->flags;
3981 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3982 if (r->print_processor) {
3983 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor));
3984 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
3985 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor));
3987 ndr->flags = _flags_save_string;
3990 uint32_t _flags_save_string = ndr->flags;
3991 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3992 if (r->parameters) {
3993 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->parameters));
3994 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
3995 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->parameters));
3997 ndr->flags = _flags_save_string;
4000 uint32_t _flags_save_string = ndr->flags;
4001 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4002 if (r->driver_name) {
4003 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
4004 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
4005 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
4007 ndr->flags = _flags_save_string;
4010 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
4011 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4013 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->devmode));
4015 struct ndr_push *_ndr_devmode;
4016 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
4017 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
4018 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
4020 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->devmode));
4022 ndr->flags = _flags_save_spoolss_DeviceMode;
4025 uint32_t _flags_save_string = ndr->flags;
4026 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4027 if (r->text_status) {
4028 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->text_status));
4029 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
4030 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->text_status));
4032 ndr->flags = _flags_save_string;
4035 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
4036 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4038 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->secdesc));
4040 struct ndr_push *_ndr_secdesc;
4041 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
4042 NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4043 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
4045 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->secdesc));
4047 ndr->flags = _flags_save_spoolss_security_descriptor;
4050 return NDR_ERR_SUCCESS;
4053 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo4 *r)
4055 uint32_t _ptr_printer_name;
4056 TALLOC_CTX *_mem_save_printer_name_0;
4057 uint32_t _ptr_server_name;
4058 TALLOC_CTX *_mem_save_server_name_0;
4059 uint32_t _ptr_user_name;
4060 TALLOC_CTX *_mem_save_user_name_0;
4061 uint32_t _ptr_document_name;
4062 TALLOC_CTX *_mem_save_document_name_0;
4063 uint32_t _ptr_notify_name;
4064 TALLOC_CTX *_mem_save_notify_name_0;
4065 uint32_t _ptr_data_type;
4066 TALLOC_CTX *_mem_save_data_type_0;
4067 uint32_t _ptr_print_processor;
4068 TALLOC_CTX *_mem_save_print_processor_0;
4069 uint32_t _ptr_parameters;
4070 TALLOC_CTX *_mem_save_parameters_0;
4071 uint32_t _ptr_driver_name;
4072 TALLOC_CTX *_mem_save_driver_name_0;
4073 uint32_t _ptr_devmode;
4074 TALLOC_CTX *_mem_save_devmode_0;
4075 uint32_t _ptr_text_status;
4076 TALLOC_CTX *_mem_save_text_status_0;
4077 uint32_t _ptr_secdesc;
4078 TALLOC_CTX *_mem_save_secdesc_0;
4079 if (ndr_flags & NDR_SCALARS) {
4080 NDR_CHECK(ndr_pull_align(ndr, 4));
4081 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4083 uint32_t _flags_save_string = ndr->flags;
4084 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4085 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
4086 if (_ptr_printer_name) {
4087 NDR_PULL_ALLOC(ndr, r->printer_name);
4088 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
4090 r->printer_name = NULL;
4092 ndr->flags = _flags_save_string;
4095 uint32_t _flags_save_string = ndr->flags;
4096 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4097 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
4098 if (_ptr_server_name) {
4099 NDR_PULL_ALLOC(ndr, r->server_name);
4100 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
4102 r->server_name = NULL;
4104 ndr->flags = _flags_save_string;
4107 uint32_t _flags_save_string = ndr->flags;
4108 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4109 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
4110 if (_ptr_user_name) {
4111 NDR_PULL_ALLOC(ndr, r->user_name);
4112 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
4114 r->user_name = NULL;
4116 ndr->flags = _flags_save_string;
4119 uint32_t _flags_save_string = ndr->flags;
4120 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4121 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
4122 if (_ptr_document_name) {
4123 NDR_PULL_ALLOC(ndr, r->document_name);
4124 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
4126 r->document_name = NULL;
4128 ndr->flags = _flags_save_string;
4131 uint32_t _flags_save_string = ndr->flags;
4132 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4133 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
4134 if (_ptr_notify_name) {
4135 NDR_PULL_ALLOC(ndr, r->notify_name);
4136 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
4138 r->notify_name = NULL;
4140 ndr->flags = _flags_save_string;
4143 uint32_t _flags_save_string = ndr->flags;
4144 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4145 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
4146 if (_ptr_data_type) {
4147 NDR_PULL_ALLOC(ndr, r->data_type);
4148 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
4150 r->data_type = NULL;
4152 ndr->flags = _flags_save_string;
4155 uint32_t _flags_save_string = ndr->flags;
4156 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4157 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
4158 if (_ptr_print_processor) {
4159 NDR_PULL_ALLOC(ndr, r->print_processor);
4160 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
4162 r->print_processor = NULL;
4164 ndr->flags = _flags_save_string;
4167 uint32_t _flags_save_string = ndr->flags;
4168 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4169 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
4170 if (_ptr_parameters) {
4171 NDR_PULL_ALLOC(ndr, r->parameters);
4172 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
4174 r->parameters = NULL;
4176 ndr->flags = _flags_save_string;
4179 uint32_t _flags_save_string = ndr->flags;
4180 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4181 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4182 if (_ptr_driver_name) {
4183 NDR_PULL_ALLOC(ndr, r->driver_name);
4184 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
4186 r->driver_name = NULL;
4188 ndr->flags = _flags_save_string;
4191 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
4192 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4193 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
4195 NDR_PULL_ALLOC(ndr, r->devmode);
4196 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
4200 ndr->flags = _flags_save_spoolss_DeviceMode;
4203 uint32_t _flags_save_string = ndr->flags;
4204 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4205 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
4206 if (_ptr_text_status) {
4207 NDR_PULL_ALLOC(ndr, r->text_status);
4208 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
4210 r->text_status = NULL;
4212 ndr->flags = _flags_save_string;
4215 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
4216 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4217 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
4219 NDR_PULL_ALLOC(ndr, r->secdesc);
4220 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
4224 ndr->flags = _flags_save_spoolss_security_descriptor;
4226 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
4227 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
4228 if (r->priority > 99) {
4229 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
4231 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
4232 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
4233 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
4234 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
4235 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
4236 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4237 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
4238 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
4239 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
4241 if (ndr_flags & NDR_BUFFERS) {
4243 uint32_t _flags_save_string = ndr->flags;
4244 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4245 if (r->printer_name) {
4246 uint32_t _relative_save_offset;
4247 _relative_save_offset = ndr->offset;
4248 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
4249 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4250 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4251 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
4252 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4253 ndr->offset = _relative_save_offset;
4255 ndr->flags = _flags_save_string;
4258 uint32_t _flags_save_string = ndr->flags;
4259 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4260 if (r->server_name) {
4261 uint32_t _relative_save_offset;
4262 _relative_save_offset = ndr->offset;
4263 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
4264 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4265 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4266 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
4267 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4268 ndr->offset = _relative_save_offset;
4270 ndr->flags = _flags_save_string;
4273 uint32_t _flags_save_string = ndr->flags;
4274 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4276 uint32_t _relative_save_offset;
4277 _relative_save_offset = ndr->offset;
4278 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
4279 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4280 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4281 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
4282 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4283 ndr->offset = _relative_save_offset;
4285 ndr->flags = _flags_save_string;
4288 uint32_t _flags_save_string = ndr->flags;
4289 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4290 if (r->document_name) {
4291 uint32_t _relative_save_offset;
4292 _relative_save_offset = ndr->offset;
4293 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
4294 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4295 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4296 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
4297 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
4298 ndr->offset = _relative_save_offset;
4300 ndr->flags = _flags_save_string;
4303 uint32_t _flags_save_string = ndr->flags;
4304 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4305 if (r->notify_name) {
4306 uint32_t _relative_save_offset;
4307 _relative_save_offset = ndr->offset;
4308 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
4309 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4310 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
4311 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
4312 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
4313 ndr->offset = _relative_save_offset;
4315 ndr->flags = _flags_save_string;
4318 uint32_t _flags_save_string = ndr->flags;
4319 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4321 uint32_t _relative_save_offset;
4322 _relative_save_offset = ndr->offset;
4323 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
4324 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4325 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4326 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
4327 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4328 ndr->offset = _relative_save_offset;
4330 ndr->flags = _flags_save_string;
4333 uint32_t _flags_save_string = ndr->flags;
4334 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4335 if (r->print_processor) {
4336 uint32_t _relative_save_offset;
4337 _relative_save_offset = ndr->offset;
4338 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
4339 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
4340 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
4341 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
4342 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
4343 ndr->offset = _relative_save_offset;
4345 ndr->flags = _flags_save_string;
4348 uint32_t _flags_save_string = ndr->flags;
4349 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4350 if (r->parameters) {
4351 uint32_t _relative_save_offset;
4352 _relative_save_offset = ndr->offset;
4353 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
4354 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
4355 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
4356 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
4357 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
4358 ndr->offset = _relative_save_offset;
4360 ndr->flags = _flags_save_string;
4363 uint32_t _flags_save_string = ndr->flags;
4364 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4365 if (r->driver_name) {
4366 uint32_t _relative_save_offset;
4367 _relative_save_offset = ndr->offset;
4368 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
4369 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4370 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4371 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
4372 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4373 ndr->offset = _relative_save_offset;
4375 ndr->flags = _flags_save_string;
4378 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
4379 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4381 uint32_t _relative_save_offset;
4382 _relative_save_offset = ndr->offset;
4383 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
4384 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
4385 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
4387 struct ndr_pull *_ndr_devmode;
4388 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
4389 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
4390 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
4392 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
4393 ndr->offset = _relative_save_offset;
4395 ndr->flags = _flags_save_spoolss_DeviceMode;
4398 uint32_t _flags_save_string = ndr->flags;
4399 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4400 if (r->text_status) {
4401 uint32_t _relative_save_offset;
4402 _relative_save_offset = ndr->offset;
4403 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
4404 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4405 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4406 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
4407 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4408 ndr->offset = _relative_save_offset;
4410 ndr->flags = _flags_save_string;
4413 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
4414 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4416 uint32_t _relative_save_offset;
4417 _relative_save_offset = ndr->offset;
4418 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
4419 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
4420 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
4422 struct ndr_pull *_ndr_secdesc;
4423 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
4424 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4425 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
4427 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
4428 ndr->offset = _relative_save_offset;
4430 ndr->flags = _flags_save_spoolss_security_descriptor;
4433 return NDR_ERR_SUCCESS;
4436 _PUBLIC_ void ndr_print_spoolss_JobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo4 *r)
4438 ndr_print_struct(ndr, name, "spoolss_JobInfo4");
4440 ndr_print_uint32(ndr, "job_id", r->job_id);
4441 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4443 if (r->printer_name) {
4444 ndr_print_string(ndr, "printer_name", r->printer_name);
4447 ndr_print_ptr(ndr, "server_name", r->server_name);
4449 if (r->server_name) {
4450 ndr_print_string(ndr, "server_name", r->server_name);
4453 ndr_print_ptr(ndr, "user_name", r->user_name);
4456 ndr_print_string(ndr, "user_name", r->user_name);
4459 ndr_print_ptr(ndr, "document_name", r->document_name);
4461 if (r->document_name) {
4462 ndr_print_string(ndr, "document_name", r->document_name);
4465 ndr_print_ptr(ndr, "notify_name", r->notify_name);
4467 if (r->notify_name) {
4468 ndr_print_string(ndr, "notify_name", r->notify_name);
4471 ndr_print_ptr(ndr, "data_type", r->data_type);
4474 ndr_print_string(ndr, "data_type", r->data_type);
4477 ndr_print_ptr(ndr, "print_processor", r->print_processor);
4479 if (r->print_processor) {
4480 ndr_print_string(ndr, "print_processor", r->print_processor);
4483 ndr_print_ptr(ndr, "parameters", r->parameters);
4485 if (r->parameters) {
4486 ndr_print_string(ndr, "parameters", r->parameters);
4489 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4491 if (r->driver_name) {
4492 ndr_print_string(ndr, "driver_name", r->driver_name);
4495 ndr_print_ptr(ndr, "devmode", r->devmode);
4498 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
4501 ndr_print_ptr(ndr, "text_status", r->text_status);
4503 if (r->text_status) {
4504 ndr_print_string(ndr, "text_status", r->text_status);
4507 ndr_print_ptr(ndr, "secdesc", r->secdesc);
4510 ndr_print_spoolss_security_descriptor(ndr, "secdesc", r->secdesc);
4513 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4514 ndr_print_uint32(ndr, "priority", r->priority);
4515 ndr_print_uint32(ndr, "position", r->position);
4516 ndr_print_uint32(ndr, "start_time", r->start_time);
4517 ndr_print_uint32(ndr, "until_time", r->until_time);
4518 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4519 ndr_print_uint32(ndr, "size", r->size);
4520 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4521 ndr_print_uint32(ndr, "time", r->time);
4522 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4523 ndr_print_uint32(ndr, "size_high", r->size_high);
4527 _PUBLIC_ size_t ndr_size_spoolss_JobInfo4(const struct spoolss_JobInfo4 *r, struct smb_iconv_convenience *ic, int flags)
4529 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo4, ic);
4532 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_JobInfo *r)
4534 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
4536 uint32_t _flags_save_UNION = ndr->flags;
4537 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
4538 if (ndr_flags & NDR_SCALARS) {
4539 int level = ndr_push_get_switch_value(ndr, r);
4542 NDR_CHECK(ndr_push_align(ndr, 4));
4543 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4544 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
4548 NDR_CHECK(ndr_push_align(ndr, 4));
4549 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4550 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
4554 NDR_CHECK(ndr_push_align(ndr, 4));
4555 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4556 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
4560 NDR_CHECK(ndr_push_align(ndr, 4));
4561 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4562 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
4570 if (ndr_flags & NDR_BUFFERS) {
4571 int level = ndr_push_get_switch_value(ndr, r);
4572 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
4575 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
4579 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
4586 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
4594 ndr->flags = _flags_save_UNION;
4596 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
4597 return NDR_ERR_SUCCESS;
4600 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_JobInfo *r)
4602 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
4605 uint32_t _flags_save_UNION = ndr->flags;
4606 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
4607 level = ndr_pull_get_switch_value(ndr, r);
4608 if (ndr_flags & NDR_SCALARS) {
4611 NDR_CHECK(ndr_pull_align(ndr, 4));
4612 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4613 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
4617 NDR_CHECK(ndr_pull_align(ndr, 4));
4618 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4619 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
4623 NDR_CHECK(ndr_pull_align(ndr, 4));
4624 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4625 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
4629 NDR_CHECK(ndr_pull_align(ndr, 4));
4630 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4631 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
4639 if (ndr_flags & NDR_BUFFERS) {
4640 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
4643 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
4647 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
4654 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
4662 ndr->flags = _flags_save_UNION;
4664 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
4665 return NDR_ERR_SUCCESS;
4668 _PUBLIC_ void ndr_print_spoolss_JobInfo(struct ndr_print *ndr, const char *name, const union spoolss_JobInfo *r)
4672 uint32_t _flags_save_UNION = ndr->flags;
4673 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
4674 level = ndr_print_get_switch_value(ndr, r);
4675 ndr_print_union(ndr, name, level, "spoolss_JobInfo");
4678 ndr_print_spoolss_JobInfo1(ndr, "info1", &r->info1);
4682 ndr_print_spoolss_JobInfo2(ndr, "info2", &r->info2);
4686 ndr_print_spoolss_JobInfo3(ndr, "info3", &r->info3);
4690 ndr_print_spoolss_JobInfo4(ndr, "info4", &r->info4);
4697 ndr->flags = _flags_save_UNION;
4701 _PUBLIC_ size_t ndr_size_spoolss_JobInfo(const union spoolss_JobInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
4703 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
4704 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo, ic);
4707 static enum ndr_err_code ndr_push_spoolss_SetJobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo1 *r)
4709 if (ndr_flags & NDR_SCALARS) {
4710 NDR_CHECK(ndr_push_align(ndr, 4));
4711 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4712 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
4713 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
4714 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
4715 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
4716 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
4717 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
4718 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
4719 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
4720 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
4721 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
4722 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
4723 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4725 if (ndr_flags & NDR_BUFFERS) {
4726 if (r->printer_name) {
4727 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4728 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4729 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4730 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4732 if (r->server_name) {
4733 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4734 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4735 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4736 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4739 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
4740 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4741 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
4742 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4744 if (r->document_name) {
4745 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
4746 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4747 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
4748 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4751 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
4752 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4753 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
4754 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4756 if (r->text_status) {
4757 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4758 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4759 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4760 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4763 return NDR_ERR_SUCCESS;
4766 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo1 *r)
4768 uint32_t _ptr_printer_name;
4769 TALLOC_CTX *_mem_save_printer_name_0;
4770 uint32_t _ptr_server_name;
4771 TALLOC_CTX *_mem_save_server_name_0;
4772 uint32_t _ptr_user_name;
4773 TALLOC_CTX *_mem_save_user_name_0;
4774 uint32_t _ptr_document_name;
4775 TALLOC_CTX *_mem_save_document_name_0;
4776 uint32_t _ptr_data_type;
4777 TALLOC_CTX *_mem_save_data_type_0;
4778 uint32_t _ptr_text_status;
4779 TALLOC_CTX *_mem_save_text_status_0;
4780 if (ndr_flags & NDR_SCALARS) {
4781 NDR_CHECK(ndr_pull_align(ndr, 4));
4782 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4783 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
4784 if (_ptr_printer_name) {
4785 NDR_PULL_ALLOC(ndr, r->printer_name);
4787 r->printer_name = NULL;
4789 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
4790 if (_ptr_server_name) {
4791 NDR_PULL_ALLOC(ndr, r->server_name);
4793 r->server_name = NULL;
4795 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
4796 if (_ptr_user_name) {
4797 NDR_PULL_ALLOC(ndr, r->user_name);
4799 r->user_name = NULL;
4801 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
4802 if (_ptr_document_name) {
4803 NDR_PULL_ALLOC(ndr, r->document_name);
4805 r->document_name = NULL;
4807 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
4808 if (_ptr_data_type) {
4809 NDR_PULL_ALLOC(ndr, r->data_type);
4811 r->data_type = NULL;
4813 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
4814 if (_ptr_text_status) {
4815 NDR_PULL_ALLOC(ndr, r->text_status);
4817 r->text_status = NULL;
4819 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
4820 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
4821 if (r->priority > 99) {
4822 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
4824 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
4825 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
4826 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
4827 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4829 if (ndr_flags & NDR_BUFFERS) {
4830 if (r->printer_name) {
4831 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4832 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4833 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
4834 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
4835 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
4836 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printer_name), ndr_get_array_length(ndr, &r->printer_name));
4838 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
4839 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
4840 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4842 if (r->server_name) {
4843 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4844 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4845 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
4846 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
4847 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
4848 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_name), ndr_get_array_length(ndr, &r->server_name));
4850 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
4851 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
4852 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4855 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4856 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4857 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
4858 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
4859 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
4860 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user_name), ndr_get_array_length(ndr, &r->user_name));
4862 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
4863 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
4864 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4866 if (r->document_name) {
4867 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4868 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4869 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
4870 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
4871 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
4872 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));
4874 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
4875 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
4876 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
4879 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4880 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4881 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
4882 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
4883 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
4884 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_type), ndr_get_array_length(ndr, &r->data_type));
4886 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
4887 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
4888 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4890 if (r->text_status) {
4891 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4892 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4893 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
4894 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
4895 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
4896 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->text_status), ndr_get_array_length(ndr, &r->text_status));
4898 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
4899 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
4900 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4903 return NDR_ERR_SUCCESS;
4906 _PUBLIC_ void ndr_print_spoolss_SetJobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo1 *r)
4908 ndr_print_struct(ndr, name, "spoolss_SetJobInfo1");
4910 ndr_print_uint32(ndr, "job_id", r->job_id);
4911 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4913 if (r->printer_name) {
4914 ndr_print_string(ndr, "printer_name", r->printer_name);
4917 ndr_print_ptr(ndr, "server_name", r->server_name);
4919 if (r->server_name) {
4920 ndr_print_string(ndr, "server_name", r->server_name);
4923 ndr_print_ptr(ndr, "user_name", r->user_name);
4926 ndr_print_string(ndr, "user_name", r->user_name);
4929 ndr_print_ptr(ndr, "document_name", r->document_name);
4931 if (r->document_name) {
4932 ndr_print_string(ndr, "document_name", r->document_name);
4935 ndr_print_ptr(ndr, "data_type", r->data_type);
4938 ndr_print_string(ndr, "data_type", r->data_type);
4941 ndr_print_ptr(ndr, "text_status", r->text_status);
4943 if (r->text_status) {
4944 ndr_print_string(ndr, "text_status", r->text_status);
4947 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4948 ndr_print_uint32(ndr, "priority", r->priority);
4949 ndr_print_uint32(ndr, "position", r->position);
4950 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4951 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4952 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4956 static enum ndr_err_code ndr_push_spoolss_SetJobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo2 *r)
4958 if (ndr_flags & NDR_SCALARS) {
4959 NDR_CHECK(ndr_push_align(ndr, 4));
4960 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4961 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
4962 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
4963 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
4964 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
4965 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
4966 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
4967 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
4968 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
4969 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
4970 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
4971 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
4972 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
4973 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
4974 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
4975 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
4976 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
4977 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
4978 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
4979 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
4980 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4981 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
4982 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
4984 if (ndr_flags & NDR_BUFFERS) {
4985 if (r->printer_name) {
4986 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4987 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4988 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4989 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4991 if (r->server_name) {
4992 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4993 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4994 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4995 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4998 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
4999 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5000 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5001 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5003 if (r->document_name) {
5004 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5005 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5006 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5007 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5009 if (r->notify_name) {
5010 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5011 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5012 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5013 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5016 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5017 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5018 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5019 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5021 if (r->print_processor) {
5022 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5023 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5024 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5025 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5027 if (r->parameters) {
5028 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5029 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5030 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5031 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5033 if (r->driver_name) {
5034 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5035 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5036 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5037 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5039 if (r->text_status) {
5040 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5041 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5042 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5043 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5046 return NDR_ERR_SUCCESS;
5049 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo2 *r)
5051 uint32_t _ptr_printer_name;
5052 TALLOC_CTX *_mem_save_printer_name_0;
5053 uint32_t _ptr_server_name;
5054 TALLOC_CTX *_mem_save_server_name_0;
5055 uint32_t _ptr_user_name;
5056 TALLOC_CTX *_mem_save_user_name_0;
5057 uint32_t _ptr_document_name;
5058 TALLOC_CTX *_mem_save_document_name_0;
5059 uint32_t _ptr_notify_name;
5060 TALLOC_CTX *_mem_save_notify_name_0;
5061 uint32_t _ptr_data_type;
5062 TALLOC_CTX *_mem_save_data_type_0;
5063 uint32_t _ptr_print_processor;
5064 TALLOC_CTX *_mem_save_print_processor_0;
5065 uint32_t _ptr_parameters;
5066 TALLOC_CTX *_mem_save_parameters_0;
5067 uint32_t _ptr_driver_name;
5068 TALLOC_CTX *_mem_save_driver_name_0;
5069 uint32_t _ptr_text_status;
5070 TALLOC_CTX *_mem_save_text_status_0;
5071 if (ndr_flags & NDR_SCALARS) {
5072 NDR_CHECK(ndr_pull_align(ndr, 4));
5073 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5074 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5075 if (_ptr_printer_name) {
5076 NDR_PULL_ALLOC(ndr, r->printer_name);
5078 r->printer_name = NULL;
5080 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5081 if (_ptr_server_name) {
5082 NDR_PULL_ALLOC(ndr, r->server_name);
5084 r->server_name = NULL;
5086 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5087 if (_ptr_user_name) {
5088 NDR_PULL_ALLOC(ndr, r->user_name);
5090 r->user_name = NULL;
5092 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5093 if (_ptr_document_name) {
5094 NDR_PULL_ALLOC(ndr, r->document_name);
5096 r->document_name = NULL;
5098 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
5099 if (_ptr_notify_name) {
5100 NDR_PULL_ALLOC(ndr, r->notify_name);
5102 r->notify_name = NULL;
5104 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5105 if (_ptr_data_type) {
5106 NDR_PULL_ALLOC(ndr, r->data_type);
5108 r->data_type = NULL;
5110 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
5111 if (_ptr_print_processor) {
5112 NDR_PULL_ALLOC(ndr, r->print_processor);
5114 r->print_processor = NULL;
5116 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
5117 if (_ptr_parameters) {
5118 NDR_PULL_ALLOC(ndr, r->parameters);
5120 r->parameters = NULL;
5122 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5123 if (_ptr_driver_name) {
5124 NDR_PULL_ALLOC(ndr, r->driver_name);
5126 r->driver_name = NULL;
5128 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
5129 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5130 if (_ptr_text_status) {
5131 NDR_PULL_ALLOC(ndr, r->text_status);
5133 r->text_status = NULL;
5135 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
5136 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5137 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5138 if (r->priority > 99) {
5139 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5141 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5142 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
5143 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
5144 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5145 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
5146 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5147 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
5148 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5150 if (ndr_flags & NDR_BUFFERS) {
5151 if (r->printer_name) {
5152 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5153 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5154 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5155 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5156 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5157 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printer_name), ndr_get_array_length(ndr, &r->printer_name));
5159 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5160 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
5161 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5163 if (r->server_name) {
5164 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5165 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5166 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5167 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5168 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5169 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_name), ndr_get_array_length(ndr, &r->server_name));
5171 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5172 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
5173 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5176 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5177 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5178 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5179 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5180 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5181 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user_name), ndr_get_array_length(ndr, &r->user_name));
5183 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5184 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
5185 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5187 if (r->document_name) {
5188 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5189 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5190 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5191 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5192 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5193 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));
5195 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5196 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
5197 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5199 if (r->notify_name) {
5200 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5201 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
5202 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
5203 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
5204 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
5205 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->notify_name), ndr_get_array_length(ndr, &r->notify_name));
5207 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
5208 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
5209 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
5212 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5213 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5214 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5215 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5216 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
5217 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_type), ndr_get_array_length(ndr, &r->data_type));
5219 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
5220 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
5221 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5223 if (r->print_processor) {
5224 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
5225 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
5226 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
5227 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
5228 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
5229 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));
5231 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
5232 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
5233 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
5235 if (r->parameters) {
5236 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
5237 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
5238 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
5239 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
5240 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
5241 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));
5243 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
5244 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
5245 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
5247 if (r->driver_name) {
5248 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5249 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5250 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5251 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5252 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5253 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));
5255 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5256 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5257 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5259 if (r->text_status) {
5260 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5261 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5262 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5263 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5264 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
5265 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->text_status), ndr_get_array_length(ndr, &r->text_status));
5267 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
5268 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
5269 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5272 return NDR_ERR_SUCCESS;
5275 _PUBLIC_ void ndr_print_spoolss_SetJobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo2 *r)
5277 ndr_print_struct(ndr, name, "spoolss_SetJobInfo2");
5279 ndr_print_uint32(ndr, "job_id", r->job_id);
5280 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5282 if (r->printer_name) {
5283 ndr_print_string(ndr, "printer_name", r->printer_name);
5286 ndr_print_ptr(ndr, "server_name", r->server_name);
5288 if (r->server_name) {
5289 ndr_print_string(ndr, "server_name", r->server_name);
5292 ndr_print_ptr(ndr, "user_name", r->user_name);
5295 ndr_print_string(ndr, "user_name", r->user_name);
5298 ndr_print_ptr(ndr, "document_name", r->document_name);
5300 if (r->document_name) {
5301 ndr_print_string(ndr, "document_name", r->document_name);
5304 ndr_print_ptr(ndr, "notify_name", r->notify_name);
5306 if (r->notify_name) {
5307 ndr_print_string(ndr, "notify_name", r->notify_name);
5310 ndr_print_ptr(ndr, "data_type", r->data_type);
5313 ndr_print_string(ndr, "data_type", r->data_type);
5316 ndr_print_ptr(ndr, "print_processor", r->print_processor);
5318 if (r->print_processor) {
5319 ndr_print_string(ndr, "print_processor", r->print_processor);
5322 ndr_print_ptr(ndr, "parameters", r->parameters);
5324 if (r->parameters) {
5325 ndr_print_string(ndr, "parameters", r->parameters);
5328 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5330 if (r->driver_name) {
5331 ndr_print_string(ndr, "driver_name", r->driver_name);
5334 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
5335 ndr_print_ptr(ndr, "text_status", r->text_status);
5337 if (r->text_status) {
5338 ndr_print_string(ndr, "text_status", r->text_status);
5341 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
5342 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5343 ndr_print_uint32(ndr, "priority", r->priority);
5344 ndr_print_uint32(ndr, "position", r->position);
5345 ndr_print_uint32(ndr, "start_time", r->start_time);
5346 ndr_print_uint32(ndr, "until_time", r->until_time);
5347 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5348 ndr_print_uint32(ndr, "size", r->size);
5349 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5350 ndr_print_uint32(ndr, "time", r->time);
5351 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5355 static enum ndr_err_code ndr_push_spoolss_SetJobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo4 *r)
5357 if (ndr_flags & NDR_SCALARS) {
5358 NDR_CHECK(ndr_push_align(ndr, 4));
5359 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
5360 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
5361 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
5362 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
5363 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
5364 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
5365 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
5366 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
5367 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
5368 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5369 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
5370 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
5371 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
5372 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5373 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5374 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5375 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
5376 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
5377 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5378 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
5379 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5380 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
5381 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5382 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
5384 if (ndr_flags & NDR_BUFFERS) {
5385 if (r->printer_name) {
5386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5387 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5388 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5389 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5391 if (r->server_name) {
5392 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5393 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5394 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5395 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5398 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5399 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5400 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5401 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5403 if (r->document_name) {
5404 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5405 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5406 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5407 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5409 if (r->notify_name) {
5410 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5411 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5412 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5413 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5416 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5417 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5418 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5419 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5421 if (r->print_processor) {
5422 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5423 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5424 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5425 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5427 if (r->parameters) {
5428 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5429 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5430 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5431 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5433 if (r->driver_name) {
5434 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5435 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5436 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5437 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5439 if (r->text_status) {
5440 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5441 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5442 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5443 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5446 return NDR_ERR_SUCCESS;
5449 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo4 *r)
5451 uint32_t _ptr_printer_name;
5452 TALLOC_CTX *_mem_save_printer_name_0;
5453 uint32_t _ptr_server_name;
5454 TALLOC_CTX *_mem_save_server_name_0;
5455 uint32_t _ptr_user_name;
5456 TALLOC_CTX *_mem_save_user_name_0;
5457 uint32_t _ptr_document_name;
5458 TALLOC_CTX *_mem_save_document_name_0;
5459 uint32_t _ptr_notify_name;
5460 TALLOC_CTX *_mem_save_notify_name_0;
5461 uint32_t _ptr_data_type;
5462 TALLOC_CTX *_mem_save_data_type_0;
5463 uint32_t _ptr_print_processor;
5464 TALLOC_CTX *_mem_save_print_processor_0;
5465 uint32_t _ptr_parameters;
5466 TALLOC_CTX *_mem_save_parameters_0;
5467 uint32_t _ptr_driver_name;
5468 TALLOC_CTX *_mem_save_driver_name_0;
5469 uint32_t _ptr_text_status;
5470 TALLOC_CTX *_mem_save_text_status_0;
5471 if (ndr_flags & NDR_SCALARS) {
5472 NDR_CHECK(ndr_pull_align(ndr, 4));
5473 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5474 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5475 if (_ptr_printer_name) {
5476 NDR_PULL_ALLOC(ndr, r->printer_name);
5478 r->printer_name = NULL;
5480 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5481 if (_ptr_server_name) {
5482 NDR_PULL_ALLOC(ndr, r->server_name);
5484 r->server_name = NULL;
5486 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5487 if (_ptr_user_name) {
5488 NDR_PULL_ALLOC(ndr, r->user_name);
5490 r->user_name = NULL;
5492 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5493 if (_ptr_document_name) {
5494 NDR_PULL_ALLOC(ndr, r->document_name);
5496 r->document_name = NULL;
5498 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
5499 if (_ptr_notify_name) {
5500 NDR_PULL_ALLOC(ndr, r->notify_name);
5502 r->notify_name = NULL;
5504 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5505 if (_ptr_data_type) {
5506 NDR_PULL_ALLOC(ndr, r->data_type);
5508 r->data_type = NULL;
5510 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
5511 if (_ptr_print_processor) {
5512 NDR_PULL_ALLOC(ndr, r->print_processor);
5514 r->print_processor = NULL;
5516 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
5517 if (_ptr_parameters) {
5518 NDR_PULL_ALLOC(ndr, r->parameters);
5520 r->parameters = NULL;
5522 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5523 if (_ptr_driver_name) {
5524 NDR_PULL_ALLOC(ndr, r->driver_name);
5526 r->driver_name = NULL;
5528 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
5529 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5530 if (_ptr_text_status) {
5531 NDR_PULL_ALLOC(ndr, r->text_status);
5533 r->text_status = NULL;
5535 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
5536 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5537 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5538 if (r->priority > 99) {
5539 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5541 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5542 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
5543 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
5544 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5545 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
5546 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5547 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
5548 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5549 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
5551 if (ndr_flags & NDR_BUFFERS) {
5552 if (r->printer_name) {
5553 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5554 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5555 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5556 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5557 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5558 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printer_name), ndr_get_array_length(ndr, &r->printer_name));
5560 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5561 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
5562 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5564 if (r->server_name) {
5565 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5566 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5567 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5568 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5569 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5570 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_name), ndr_get_array_length(ndr, &r->server_name));
5572 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5573 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
5574 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5577 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5578 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5579 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5580 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5581 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5582 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user_name), ndr_get_array_length(ndr, &r->user_name));
5584 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5585 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
5586 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5588 if (r->document_name) {
5589 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5590 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5591 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5592 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5593 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5594 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));
5596 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5597 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
5598 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5600 if (r->notify_name) {
5601 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5602 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
5603 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
5604 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
5605 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
5606 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->notify_name), ndr_get_array_length(ndr, &r->notify_name));
5608 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
5609 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
5610 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
5613 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5614 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5615 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5616 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5617 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
5618 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_type), ndr_get_array_length(ndr, &r->data_type));
5620 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
5621 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
5622 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5624 if (r->print_processor) {
5625 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
5626 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
5627 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
5628 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
5629 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
5630 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));
5632 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
5633 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
5634 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
5636 if (r->parameters) {
5637 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
5638 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
5639 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
5640 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
5641 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
5642 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));
5644 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
5645 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
5646 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
5648 if (r->driver_name) {
5649 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5650 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5651 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5652 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5653 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5654 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));
5656 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5657 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5658 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5660 if (r->text_status) {
5661 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5662 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5663 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5664 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5665 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
5666 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->text_status), ndr_get_array_length(ndr, &r->text_status));
5668 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
5669 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
5670 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5673 return NDR_ERR_SUCCESS;
5676 _PUBLIC_ void ndr_print_spoolss_SetJobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo4 *r)
5678 ndr_print_struct(ndr, name, "spoolss_SetJobInfo4");
5680 ndr_print_uint32(ndr, "job_id", r->job_id);
5681 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5683 if (r->printer_name) {
5684 ndr_print_string(ndr, "printer_name", r->printer_name);
5687 ndr_print_ptr(ndr, "server_name", r->server_name);
5689 if (r->server_name) {
5690 ndr_print_string(ndr, "server_name", r->server_name);
5693 ndr_print_ptr(ndr, "user_name", r->user_name);
5696 ndr_print_string(ndr, "user_name", r->user_name);
5699 ndr_print_ptr(ndr, "document_name", r->document_name);
5701 if (r->document_name) {
5702 ndr_print_string(ndr, "document_name", r->document_name);
5705 ndr_print_ptr(ndr, "notify_name", r->notify_name);
5707 if (r->notify_name) {
5708 ndr_print_string(ndr, "notify_name", r->notify_name);
5711 ndr_print_ptr(ndr, "data_type", r->data_type);
5714 ndr_print_string(ndr, "data_type", r->data_type);
5717 ndr_print_ptr(ndr, "print_processor", r->print_processor);
5719 if (r->print_processor) {
5720 ndr_print_string(ndr, "print_processor", r->print_processor);
5723 ndr_print_ptr(ndr, "parameters", r->parameters);
5725 if (r->parameters) {
5726 ndr_print_string(ndr, "parameters", r->parameters);
5729 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5731 if (r->driver_name) {
5732 ndr_print_string(ndr, "driver_name", r->driver_name);
5735 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
5736 ndr_print_ptr(ndr, "text_status", r->text_status);
5738 if (r->text_status) {
5739 ndr_print_string(ndr, "text_status", r->text_status);
5742 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
5743 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5744 ndr_print_uint32(ndr, "priority", r->priority);
5745 ndr_print_uint32(ndr, "position", r->position);
5746 ndr_print_uint32(ndr, "start_time", r->start_time);
5747 ndr_print_uint32(ndr, "until_time", r->until_time);
5748 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5749 ndr_print_uint32(ndr, "size", r->size);
5750 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5751 ndr_print_uint32(ndr, "time", r->time);
5752 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5753 ndr_print_uint32(ndr, "size_high", r->size_high);
5757 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetJobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetJobInfo *r)
5759 if (ndr_flags & NDR_SCALARS) {
5760 int level = ndr_push_get_switch_value(ndr, r);
5761 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5764 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
5768 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
5772 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
5776 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
5784 if (ndr_flags & NDR_BUFFERS) {
5785 int level = ndr_push_get_switch_value(ndr, r);
5789 NDR_CHECK(ndr_push_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
5795 NDR_CHECK(ndr_push_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5801 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
5807 NDR_CHECK(ndr_push_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
5816 return NDR_ERR_SUCCESS;
5819 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetJobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetJobInfo *r)
5823 TALLOC_CTX *_mem_save_info1_0;
5824 TALLOC_CTX *_mem_save_info2_0;
5825 TALLOC_CTX *_mem_save_info3_0;
5826 TALLOC_CTX *_mem_save_info4_0;
5827 level = ndr_pull_get_switch_value(ndr, r);
5828 if (ndr_flags & NDR_SCALARS) {
5829 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5830 if (_level != level) {
5831 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5835 uint32_t _ptr_info1;
5836 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
5838 NDR_PULL_ALLOC(ndr, r->info1);
5845 uint32_t _ptr_info2;
5846 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
5848 NDR_PULL_ALLOC(ndr, r->info2);
5855 uint32_t _ptr_info3;
5856 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
5858 NDR_PULL_ALLOC(ndr, r->info3);
5865 uint32_t _ptr_info4;
5866 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
5868 NDR_PULL_ALLOC(ndr, r->info4);
5879 if (ndr_flags & NDR_BUFFERS) {
5883 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
5884 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
5885 NDR_CHECK(ndr_pull_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
5886 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
5892 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
5893 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
5894 NDR_CHECK(ndr_pull_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5895 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
5901 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
5902 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
5903 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
5904 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
5910 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
5911 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
5912 NDR_CHECK(ndr_pull_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
5913 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
5922 return NDR_ERR_SUCCESS;
5925 _PUBLIC_ void ndr_print_spoolss_SetJobInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetJobInfo *r)
5928 level = ndr_print_get_switch_value(ndr, r);
5929 ndr_print_union(ndr, name, level, "spoolss_SetJobInfo");
5932 ndr_print_ptr(ndr, "info1", r->info1);
5935 ndr_print_spoolss_SetJobInfo1(ndr, "info1", r->info1);
5941 ndr_print_ptr(ndr, "info2", r->info2);
5944 ndr_print_spoolss_SetJobInfo2(ndr, "info2", r->info2);
5950 ndr_print_ptr(ndr, "info3", r->info3);
5953 ndr_print_spoolss_JobInfo3(ndr, "info3", r->info3);
5959 ndr_print_ptr(ndr, "info4", r->info4);
5962 ndr_print_spoolss_SetJobInfo4(ndr, "info4", r->info4);
5973 static enum ndr_err_code ndr_push_spoolss_JobInfoContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfoContainer *r)
5975 if (ndr_flags & NDR_SCALARS) {
5976 NDR_CHECK(ndr_push_align(ndr, 4));
5977 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
5978 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
5979 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
5981 if (ndr_flags & NDR_BUFFERS) {
5982 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
5984 return NDR_ERR_SUCCESS;
5987 static enum ndr_err_code ndr_pull_spoolss_JobInfoContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfoContainer *r)
5989 if (ndr_flags & NDR_SCALARS) {
5990 NDR_CHECK(ndr_pull_align(ndr, 4));
5991 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
5992 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
5993 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
5995 if (ndr_flags & NDR_BUFFERS) {
5996 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
5998 return NDR_ERR_SUCCESS;
6001 _PUBLIC_ void ndr_print_spoolss_JobInfoContainer(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfoContainer *r)
6003 ndr_print_struct(ndr, name, "spoolss_JobInfoContainer");
6005 ndr_print_uint32(ndr, "level", r->level);
6006 ndr_print_set_switch_value(ndr, &r->info, r->level);
6007 ndr_print_spoolss_SetJobInfo(ndr, "info", &r->info);
6011 static enum ndr_err_code ndr_push_spoolss_JobControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobControl r)
6013 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6014 return NDR_ERR_SUCCESS;
6017 static enum ndr_err_code ndr_pull_spoolss_JobControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobControl *r)
6020 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6022 return NDR_ERR_SUCCESS;
6025 _PUBLIC_ void ndr_print_spoolss_JobControl(struct ndr_print *ndr, const char *name, enum spoolss_JobControl r)
6027 const char *val = NULL;
6030 case SPOOLSS_JOB_CONTROL_PAUSE: val = "SPOOLSS_JOB_CONTROL_PAUSE"; break;
6031 case SPOOLSS_JOB_CONTROL_RESUME: val = "SPOOLSS_JOB_CONTROL_RESUME"; break;
6032 case SPOOLSS_JOB_CONTROL_CANCEL: val = "SPOOLSS_JOB_CONTROL_CANCEL"; break;
6033 case SPOOLSS_JOB_CONTROL_RESTART: val = "SPOOLSS_JOB_CONTROL_RESTART"; break;
6034 case SPOOLSS_JOB_CONTROL_DELETE: val = "SPOOLSS_JOB_CONTROL_DELETE"; break;
6035 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER: val = "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
6036 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED: val = "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
6037 case SPOOLSS_JOB_CONTROL_RETAIN: val = "SPOOLSS_JOB_CONTROL_RETAIN"; break;
6038 case SPOOLSS_JOB_CONTROL_RELEASE: val = "SPOOLSS_JOB_CONTROL_RELEASE"; break;
6040 ndr_print_enum(ndr, name, "ENUM", val, r);
6043 static enum ndr_err_code ndr_push_spoolss_PrinterControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterControl r)
6045 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6046 return NDR_ERR_SUCCESS;
6049 static enum ndr_err_code ndr_pull_spoolss_PrinterControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterControl *r)
6052 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6054 return NDR_ERR_SUCCESS;
6057 _PUBLIC_ void ndr_print_spoolss_PrinterControl(struct ndr_print *ndr, const char *name, enum spoolss_PrinterControl r)
6059 const char *val = NULL;
6062 case SPOOLSS_PRINTER_CONTROL_UNPAUSE: val = "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
6063 case SPOOLSS_PRINTER_CONTROL_PAUSE: val = "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
6064 case SPOOLSS_PRINTER_CONTROL_RESUME: val = "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
6065 case SPOOLSS_PRINTER_CONTROL_PURGE: val = "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
6066 case SPOOLSS_PRINTER_CONTROL_SET_STATUS: val = "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
6068 ndr_print_enum(ndr, name, "ENUM", val, r);
6071 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo0 *r)
6073 if (ndr_flags & NDR_SCALARS) {
6074 NDR_CHECK(ndr_push_align(ndr, 4));
6075 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6076 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6077 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
6078 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
6079 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
6080 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
6081 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
6082 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
6083 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
6084 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
6085 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
6086 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
6087 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
6088 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
6089 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
6090 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_error));
6091 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
6092 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
6093 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
6094 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
6095 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
6096 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status));
6097 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
6098 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
6099 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
6100 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
6101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
6102 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
6103 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
6105 if (ndr_flags & NDR_BUFFERS) {
6106 if (r->servername) {
6107 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6108 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6109 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6110 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6112 if (r->printername) {
6113 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6114 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6115 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6116 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6119 return NDR_ERR_SUCCESS;
6122 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo0 *r)
6124 uint32_t _ptr_servername;
6125 TALLOC_CTX *_mem_save_servername_0;
6126 uint32_t _ptr_printername;
6127 TALLOC_CTX *_mem_save_printername_0;
6128 if (ndr_flags & NDR_SCALARS) {
6129 NDR_CHECK(ndr_pull_align(ndr, 4));
6130 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6131 if (_ptr_servername) {
6132 NDR_PULL_ALLOC(ndr, r->servername);
6134 r->servername = NULL;
6136 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6137 if (_ptr_printername) {
6138 NDR_PULL_ALLOC(ndr, r->printername);
6140 r->printername = NULL;
6142 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
6143 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
6144 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
6145 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
6146 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
6147 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
6148 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
6149 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
6150 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
6151 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
6152 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
6153 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
6154 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
6155 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_error));
6156 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
6157 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
6158 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
6159 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
6160 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
6161 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status));
6162 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
6163 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
6164 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
6165 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
6166 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
6167 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
6168 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
6170 if (ndr_flags & NDR_BUFFERS) {
6171 if (r->servername) {
6172 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6173 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
6174 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
6175 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
6176 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
6177 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));
6179 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
6180 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
6181 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
6183 if (r->printername) {
6184 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6185 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6186 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6187 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6188 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6189 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));
6191 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6192 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
6193 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6196 return NDR_ERR_SUCCESS;
6199 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo0 *r)
6201 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo0");
6203 ndr_print_ptr(ndr, "servername", r->servername);
6205 if (r->servername) {
6206 ndr_print_string(ndr, "servername", r->servername);
6209 ndr_print_ptr(ndr, "printername", r->printername);
6211 if (r->printername) {
6212 ndr_print_string(ndr, "printername", r->printername);
6215 ndr_print_uint32(ndr, "cjobs", r->cjobs);
6216 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
6217 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
6218 ndr_print_spoolss_Time(ndr, "time", &r->time);
6219 ndr_print_uint32(ndr, "global_counter", r->global_counter);
6220 ndr_print_uint32(ndr, "total_pages", r->total_pages);
6221 ndr_print_uint32(ndr, "version", r->version);
6222 ndr_print_uint32(ndr, "free_build", r->free_build);
6223 ndr_print_uint32(ndr, "spooling", r->spooling);
6224 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
6225 ndr_print_uint32(ndr, "session_counter", r->session_counter);
6226 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
6227 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
6228 ndr_print_uint32(ndr, "job_error", r->job_error);
6229 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
6230 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
6231 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
6232 ndr_print_uint32(ndr, "change_id", r->change_id);
6233 ndr_print_WERROR(ndr, "last_error", r->last_error);
6234 ndr_print_uint32(ndr, "status", r->status);
6235 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
6236 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
6237 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
6238 ndr_print_uint16(ndr, "processor_level", r->processor_level);
6239 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
6240 ndr_print_uint32(ndr, "reserved2", r->reserved2);
6241 ndr_print_uint32(ndr, "reserved3", r->reserved3);
6245 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo1 *r)
6247 if (ndr_flags & NDR_SCALARS) {
6248 NDR_CHECK(ndr_push_align(ndr, 4));
6249 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->flags));
6250 NDR_CHECK(ndr_push_unique_ptr(ndr, r->description));
6251 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
6252 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
6254 if (ndr_flags & NDR_BUFFERS) {
6255 if (r->description) {
6256 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
6257 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6258 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
6259 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->description, ndr_charset_length(r->description, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6262 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
6263 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6264 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
6265 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6268 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6269 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6270 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6271 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6274 return NDR_ERR_SUCCESS;
6277 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo1 *r)
6279 uint32_t _ptr_description;
6280 TALLOC_CTX *_mem_save_description_0;
6282 TALLOC_CTX *_mem_save_name_0;
6283 uint32_t _ptr_comment;
6284 TALLOC_CTX *_mem_save_comment_0;
6285 if (ndr_flags & NDR_SCALARS) {
6286 NDR_CHECK(ndr_pull_align(ndr, 4));
6287 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->flags));
6288 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
6289 if (_ptr_description) {
6290 NDR_PULL_ALLOC(ndr, r->description);
6292 r->description = NULL;
6294 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
6296 NDR_PULL_ALLOC(ndr, r->name);
6300 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
6302 NDR_PULL_ALLOC(ndr, r->comment);
6307 if (ndr_flags & NDR_BUFFERS) {
6308 if (r->description) {
6309 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
6310 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
6311 NDR_CHECK(ndr_pull_array_size(ndr, &r->description));
6312 NDR_CHECK(ndr_pull_array_length(ndr, &r->description));
6313 if (ndr_get_array_length(ndr, &r->description) > ndr_get_array_size(ndr, &r->description)) {
6314 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));
6316 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t)));
6317 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->description, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t), CH_UTF16));
6318 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
6321 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6322 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
6323 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
6324 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
6325 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
6326 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));
6328 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
6329 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
6330 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
6333 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
6334 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
6335 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
6336 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
6337 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
6338 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));
6340 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
6341 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
6342 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
6345 return NDR_ERR_SUCCESS;
6348 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo1 *r)
6350 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo1");
6352 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->flags);
6353 ndr_print_ptr(ndr, "description", r->description);
6355 if (r->description) {
6356 ndr_print_string(ndr, "description", r->description);
6359 ndr_print_ptr(ndr, "name", r->name);
6362 ndr_print_string(ndr, "name", r->name);
6365 ndr_print_ptr(ndr, "comment", r->comment);
6368 ndr_print_string(ndr, "comment", r->comment);
6374 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo2 *r)
6376 if (ndr_flags & NDR_SCALARS) {
6377 NDR_CHECK(ndr_push_align(ndr, 4));
6378 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6379 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6380 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sharename));
6381 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
6382 NDR_CHECK(ndr_push_unique_ptr(ndr, r->drivername));
6383 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
6384 NDR_CHECK(ndr_push_unique_ptr(ndr, r->location));
6385 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
6386 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sepfile));
6387 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printprocessor));
6388 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
6389 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
6390 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secdesc));
6391 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
6392 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
6393 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
6394 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
6395 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
6396 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
6397 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
6398 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
6400 if (ndr_flags & NDR_BUFFERS) {
6401 if (r->servername) {
6402 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6403 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6404 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6405 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6407 if (r->printername) {
6408 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6409 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6410 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6411 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6414 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
6415 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6416 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
6417 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sharename, ndr_charset_length(r->sharename, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6420 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6421 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6422 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6423 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6425 if (r->drivername) {
6426 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
6427 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6428 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
6429 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->drivername, ndr_charset_length(r->drivername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6432 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6433 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6434 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6435 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6438 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
6439 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6440 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
6441 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->location, ndr_charset_length(r->location, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6445 struct ndr_push *_ndr_devmode;
6446 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
6447 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
6448 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
6452 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
6453 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6454 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
6455 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sepfile, ndr_charset_length(r->sepfile, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6457 if (r->printprocessor) {
6458 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
6459 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6460 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
6461 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printprocessor, ndr_charset_length(r->printprocessor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6464 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
6465 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6466 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
6467 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6469 if (r->parameters) {
6470 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6471 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6472 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6473 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6477 struct ndr_push *_ndr_secdesc;
6478 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
6479 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
6480 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
6484 return NDR_ERR_SUCCESS;
6487 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo2 *r)
6489 uint32_t _ptr_servername;
6490 TALLOC_CTX *_mem_save_servername_0;
6491 uint32_t _ptr_printername;
6492 TALLOC_CTX *_mem_save_printername_0;
6493 uint32_t _ptr_sharename;
6494 TALLOC_CTX *_mem_save_sharename_0;
6495 uint32_t _ptr_portname;
6496 TALLOC_CTX *_mem_save_portname_0;
6497 uint32_t _ptr_drivername;
6498 TALLOC_CTX *_mem_save_drivername_0;
6499 uint32_t _ptr_comment;
6500 TALLOC_CTX *_mem_save_comment_0;
6501 uint32_t _ptr_location;
6502 TALLOC_CTX *_mem_save_location_0;
6503 uint32_t _ptr_devmode;
6504 TALLOC_CTX *_mem_save_devmode_0;
6505 uint32_t _ptr_sepfile;
6506 TALLOC_CTX *_mem_save_sepfile_0;
6507 uint32_t _ptr_printprocessor;
6508 TALLOC_CTX *_mem_save_printprocessor_0;
6509 uint32_t _ptr_datatype;
6510 TALLOC_CTX *_mem_save_datatype_0;
6511 uint32_t _ptr_parameters;
6512 TALLOC_CTX *_mem_save_parameters_0;
6513 uint32_t _ptr_secdesc;
6514 TALLOC_CTX *_mem_save_secdesc_0;
6515 if (ndr_flags & NDR_SCALARS) {
6516 NDR_CHECK(ndr_pull_align(ndr, 4));
6517 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6518 if (_ptr_servername) {
6519 NDR_PULL_ALLOC(ndr, r->servername);
6521 r->servername = NULL;
6523 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6524 if (_ptr_printername) {
6525 NDR_PULL_ALLOC(ndr, r->printername);
6527 r->printername = NULL;
6529 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
6530 if (_ptr_sharename) {
6531 NDR_PULL_ALLOC(ndr, r->sharename);
6533 r->sharename = NULL;
6535 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
6536 if (_ptr_portname) {
6537 NDR_PULL_ALLOC(ndr, r->portname);
6541 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
6542 if (_ptr_drivername) {
6543 NDR_PULL_ALLOC(ndr, r->drivername);
6545 r->drivername = NULL;
6547 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
6549 NDR_PULL_ALLOC(ndr, r->comment);
6553 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
6554 if (_ptr_location) {
6555 NDR_PULL_ALLOC(ndr, r->location);
6559 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
6561 NDR_PULL_ALLOC(ndr, r->devmode);
6565 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
6567 NDR_PULL_ALLOC(ndr, r->sepfile);
6571 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
6572 if (_ptr_printprocessor) {
6573 NDR_PULL_ALLOC(ndr, r->printprocessor);
6575 r->printprocessor = NULL;
6577 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
6578 if (_ptr_datatype) {
6579 NDR_PULL_ALLOC(ndr, r->datatype);
6583 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
6584 if (_ptr_parameters) {
6585 NDR_PULL_ALLOC(ndr, r->parameters);
6587 r->parameters = NULL;
6589 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
6591 NDR_PULL_ALLOC(ndr, r->secdesc);
6595 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
6596 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
6597 if (r->priority > 99) {
6598 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
6600 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
6601 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
6602 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
6603 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
6604 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
6605 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
6607 if (ndr_flags & NDR_BUFFERS) {
6608 if (r->servername) {
6609 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6610 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
6611 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
6612 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
6613 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
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->servername), ndr_get_array_length(ndr, &r->servername));
6616 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
6617 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
6618 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
6620 if (r->printername) {
6621 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6622 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6623 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6624 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6625 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
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->printername), ndr_get_array_length(ndr, &r->printername));
6628 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6629 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
6630 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6633 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
6634 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
6635 NDR_CHECK(ndr_pull_array_size(ndr, &r->sharename));
6636 NDR_CHECK(ndr_pull_array_length(ndr, &r->sharename));
6637 if (ndr_get_array_length(ndr, &r->sharename) > ndr_get_array_size(ndr, &r->sharename)) {
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->sharename), ndr_get_array_length(ndr, &r->sharename));
6640 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t)));
6641 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sharename, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t), CH_UTF16));
6642 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
6645 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
6646 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
6647 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
6648 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
6649 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
6650 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));
6652 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
6653 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
6654 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
6656 if (r->drivername) {
6657 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6658 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
6659 NDR_CHECK(ndr_pull_array_size(ndr, &r->drivername));
6660 NDR_CHECK(ndr_pull_array_length(ndr, &r->drivername));
6661 if (ndr_get_array_length(ndr, &r->drivername) > ndr_get_array_size(ndr, &r->drivername)) {
6662 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));
6664 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t)));
6665 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->drivername, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t), CH_UTF16));
6666 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
6669 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
6670 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
6671 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
6672 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
6673 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
6674 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));
6676 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
6677 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
6678 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
6681 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
6682 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
6683 NDR_CHECK(ndr_pull_array_size(ndr, &r->location));
6684 NDR_CHECK(ndr_pull_array_length(ndr, &r->location));
6685 if (ndr_get_array_length(ndr, &r->location) > ndr_get_array_size(ndr, &r->location)) {
6686 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));
6688 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t)));
6689 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->location, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t), CH_UTF16));
6690 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
6693 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
6694 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
6696 struct ndr_pull *_ndr_devmode;
6697 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
6698 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
6699 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
6701 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
6704 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
6705 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
6706 NDR_CHECK(ndr_pull_array_size(ndr, &r->sepfile));
6707 NDR_CHECK(ndr_pull_array_length(ndr, &r->sepfile));
6708 if (ndr_get_array_length(ndr, &r->sepfile) > ndr_get_array_size(ndr, &r->sepfile)) {
6709 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));
6711 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t)));
6712 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sepfile, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t), CH_UTF16));
6713 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
6715 if (r->printprocessor) {
6716 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
6717 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
6718 NDR_CHECK(ndr_pull_array_size(ndr, &r->printprocessor));
6719 NDR_CHECK(ndr_pull_array_length(ndr, &r->printprocessor));
6720 if (ndr_get_array_length(ndr, &r->printprocessor) > ndr_get_array_size(ndr, &r->printprocessor)) {
6721 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));
6723 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t)));
6724 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printprocessor, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t), CH_UTF16));
6725 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
6728 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
6729 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
6730 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
6731 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
6732 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
6733 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));
6735 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
6736 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
6737 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
6739 if (r->parameters) {
6740 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
6741 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
6742 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
6743 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
6744 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
6745 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));
6747 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
6748 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
6749 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
6752 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
6753 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
6755 struct ndr_pull *_ndr_secdesc;
6756 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
6757 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
6758 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
6760 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
6763 return NDR_ERR_SUCCESS;
6766 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo2 *r)
6768 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo2");
6770 ndr_print_ptr(ndr, "servername", r->servername);
6772 if (r->servername) {
6773 ndr_print_string(ndr, "servername", r->servername);
6776 ndr_print_ptr(ndr, "printername", r->printername);
6778 if (r->printername) {
6779 ndr_print_string(ndr, "printername", r->printername);
6782 ndr_print_ptr(ndr, "sharename", r->sharename);
6785 ndr_print_string(ndr, "sharename", r->sharename);
6788 ndr_print_ptr(ndr, "portname", r->portname);
6791 ndr_print_string(ndr, "portname", r->portname);
6794 ndr_print_ptr(ndr, "drivername", r->drivername);
6796 if (r->drivername) {
6797 ndr_print_string(ndr, "drivername", r->drivername);
6800 ndr_print_ptr(ndr, "comment", r->comment);
6803 ndr_print_string(ndr, "comment", r->comment);
6806 ndr_print_ptr(ndr, "location", r->location);
6809 ndr_print_string(ndr, "location", r->location);
6812 ndr_print_ptr(ndr, "devmode", r->devmode);
6815 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
6818 ndr_print_ptr(ndr, "sepfile", r->sepfile);
6821 ndr_print_string(ndr, "sepfile", r->sepfile);
6824 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
6826 if (r->printprocessor) {
6827 ndr_print_string(ndr, "printprocessor", r->printprocessor);
6830 ndr_print_ptr(ndr, "datatype", r->datatype);
6833 ndr_print_string(ndr, "datatype", r->datatype);
6836 ndr_print_ptr(ndr, "parameters", r->parameters);
6838 if (r->parameters) {
6839 ndr_print_string(ndr, "parameters", r->parameters);
6842 ndr_print_ptr(ndr, "secdesc", r->secdesc);
6845 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
6848 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
6849 ndr_print_uint32(ndr, "priority", r->priority);
6850 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
6851 ndr_print_uint32(ndr, "starttime", r->starttime);
6852 ndr_print_uint32(ndr, "untiltime", r->untiltime);
6853 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
6854 ndr_print_uint32(ndr, "cjobs", r->cjobs);
6855 ndr_print_uint32(ndr, "averageppm", r->averageppm);
6859 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo3 *r)
6861 if (ndr_flags & NDR_SCALARS) {
6862 NDR_CHECK(ndr_push_align(ndr, 4));
6863 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sec_desc_ptr));
6865 if (ndr_flags & NDR_BUFFERS) {
6867 return NDR_ERR_SUCCESS;
6870 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo3 *r)
6872 if (ndr_flags & NDR_SCALARS) {
6873 NDR_CHECK(ndr_pull_align(ndr, 4));
6874 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sec_desc_ptr));
6876 if (ndr_flags & NDR_BUFFERS) {
6878 return NDR_ERR_SUCCESS;
6881 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo3 *r)
6883 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo3");
6885 ndr_print_uint32(ndr, "sec_desc_ptr", r->sec_desc_ptr);
6889 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo4 *r)
6891 if (ndr_flags & NDR_SCALARS) {
6892 NDR_CHECK(ndr_push_align(ndr, 4));
6893 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6894 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6895 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
6897 if (ndr_flags & NDR_BUFFERS) {
6898 if (r->printername) {
6899 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6900 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6901 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6902 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6904 if (r->servername) {
6905 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6906 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6907 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6908 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6911 return NDR_ERR_SUCCESS;
6914 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo4 *r)
6916 uint32_t _ptr_printername;
6917 TALLOC_CTX *_mem_save_printername_0;
6918 uint32_t _ptr_servername;
6919 TALLOC_CTX *_mem_save_servername_0;
6920 if (ndr_flags & NDR_SCALARS) {
6921 NDR_CHECK(ndr_pull_align(ndr, 4));
6922 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6923 if (_ptr_printername) {
6924 NDR_PULL_ALLOC(ndr, r->printername);
6926 r->printername = NULL;
6928 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6929 if (_ptr_servername) {
6930 NDR_PULL_ALLOC(ndr, r->servername);
6932 r->servername = NULL;
6934 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
6936 if (ndr_flags & NDR_BUFFERS) {
6937 if (r->printername) {
6938 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6939 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6940 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6941 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6942 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6943 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));
6945 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6946 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
6947 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6949 if (r->servername) {
6950 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6951 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
6952 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
6953 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
6954 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
6955 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));
6957 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
6958 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
6959 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
6962 return NDR_ERR_SUCCESS;
6965 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo4 *r)
6967 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo4");
6969 ndr_print_ptr(ndr, "printername", r->printername);
6971 if (r->printername) {
6972 ndr_print_string(ndr, "printername", r->printername);
6975 ndr_print_ptr(ndr, "servername", r->servername);
6977 if (r->servername) {
6978 ndr_print_string(ndr, "servername", r->servername);
6981 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
6985 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo5 *r)
6987 if (ndr_flags & NDR_SCALARS) {
6988 NDR_CHECK(ndr_push_align(ndr, 4));
6989 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6990 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
6991 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
6992 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
6993 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
6995 if (ndr_flags & NDR_BUFFERS) {
6996 if (r->printername) {
6997 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6998 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6999 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7000 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7003 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
7004 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7005 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
7006 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7009 return NDR_ERR_SUCCESS;
7012 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo5 *r)
7014 uint32_t _ptr_printername;
7015 TALLOC_CTX *_mem_save_printername_0;
7016 uint32_t _ptr_portname;
7017 TALLOC_CTX *_mem_save_portname_0;
7018 if (ndr_flags & NDR_SCALARS) {
7019 NDR_CHECK(ndr_pull_align(ndr, 4));
7020 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
7021 if (_ptr_printername) {
7022 NDR_PULL_ALLOC(ndr, r->printername);
7024 r->printername = NULL;
7026 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
7027 if (_ptr_portname) {
7028 NDR_PULL_ALLOC(ndr, r->portname);
7032 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
7033 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
7034 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
7036 if (ndr_flags & NDR_BUFFERS) {
7037 if (r->printername) {
7038 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7039 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
7040 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
7041 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
7042 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
7043 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));
7045 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
7046 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
7047 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
7050 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
7051 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
7052 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
7053 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
7054 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
7055 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));
7057 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
7058 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
7059 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
7062 return NDR_ERR_SUCCESS;
7065 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo5 *r)
7067 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo5");
7069 ndr_print_ptr(ndr, "printername", r->printername);
7071 if (r->printername) {
7072 ndr_print_string(ndr, "printername", r->printername);
7075 ndr_print_ptr(ndr, "portname", r->portname);
7078 ndr_print_string(ndr, "portname", r->portname);
7081 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
7082 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
7083 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
7087 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo6 *r)
7089 if (ndr_flags & NDR_SCALARS) {
7090 NDR_CHECK(ndr_push_align(ndr, 4));
7091 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
7093 if (ndr_flags & NDR_BUFFERS) {
7095 return NDR_ERR_SUCCESS;
7098 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo6 *r)
7100 if (ndr_flags & NDR_SCALARS) {
7101 NDR_CHECK(ndr_pull_align(ndr, 4));
7102 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
7104 if (ndr_flags & NDR_BUFFERS) {
7106 return NDR_ERR_SUCCESS;
7109 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo6 *r)
7111 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo6");
7113 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
7117 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo7 *r)
7119 if (ndr_flags & NDR_SCALARS) {
7120 NDR_CHECK(ndr_push_align(ndr, 4));
7121 NDR_CHECK(ndr_push_unique_ptr(ndr, r->guid));
7122 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
7124 if (ndr_flags & NDR_BUFFERS) {
7126 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
7127 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7128 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
7129 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->guid, ndr_charset_length(r->guid, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7132 return NDR_ERR_SUCCESS;
7135 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo7 *r)
7138 TALLOC_CTX *_mem_save_guid_0;
7139 if (ndr_flags & NDR_SCALARS) {
7140 NDR_CHECK(ndr_pull_align(ndr, 4));
7141 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
7143 NDR_PULL_ALLOC(ndr, r->guid);
7147 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
7149 if (ndr_flags & NDR_BUFFERS) {
7151 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
7152 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
7153 NDR_CHECK(ndr_pull_array_size(ndr, &r->guid));
7154 NDR_CHECK(ndr_pull_array_length(ndr, &r->guid));
7155 if (ndr_get_array_length(ndr, &r->guid) > ndr_get_array_size(ndr, &r->guid)) {
7156 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));
7158 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t)));
7159 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->guid, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t), CH_UTF16));
7160 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
7163 return NDR_ERR_SUCCESS;
7166 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo7 *r)
7168 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo7");
7170 ndr_print_ptr(ndr, "guid", r->guid);
7173 ndr_print_string(ndr, "guid", r->guid);
7176 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
7180 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetPrinterInfo *r)
7182 if (ndr_flags & NDR_SCALARS) {
7183 int level = ndr_push_get_switch_value(ndr, r);
7184 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7187 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
7191 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7195 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
7199 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
7203 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
7207 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info5));
7211 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
7215 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info7));
7219 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
7223 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info9));
7231 if (ndr_flags & NDR_BUFFERS) {
7232 int level = ndr_push_get_switch_value(ndr, r);
7236 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
7242 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7248 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7254 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
7260 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
7266 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
7272 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
7278 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
7284 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
7290 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
7299 return NDR_ERR_SUCCESS;
7302 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetPrinterInfo *r)
7306 TALLOC_CTX *_mem_save_info0_0;
7307 TALLOC_CTX *_mem_save_info1_0;
7308 TALLOC_CTX *_mem_save_info2_0;
7309 TALLOC_CTX *_mem_save_info3_0;
7310 TALLOC_CTX *_mem_save_info4_0;
7311 TALLOC_CTX *_mem_save_info5_0;
7312 TALLOC_CTX *_mem_save_info6_0;
7313 TALLOC_CTX *_mem_save_info7_0;
7314 TALLOC_CTX *_mem_save_info8_0;
7315 TALLOC_CTX *_mem_save_info9_0;
7316 level = ndr_pull_get_switch_value(ndr, r);
7317 if (ndr_flags & NDR_SCALARS) {
7318 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7319 if (_level != level) {
7320 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
7324 uint32_t _ptr_info0;
7325 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
7327 NDR_PULL_ALLOC(ndr, r->info0);
7334 uint32_t _ptr_info1;
7335 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7337 NDR_PULL_ALLOC(ndr, r->info1);
7344 uint32_t _ptr_info2;
7345 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
7347 NDR_PULL_ALLOC(ndr, r->info2);
7354 uint32_t _ptr_info3;
7355 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
7357 NDR_PULL_ALLOC(ndr, r->info3);
7364 uint32_t _ptr_info4;
7365 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
7367 NDR_PULL_ALLOC(ndr, r->info4);
7374 uint32_t _ptr_info5;
7375 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info5));
7377 NDR_PULL_ALLOC(ndr, r->info5);
7384 uint32_t _ptr_info6;
7385 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
7387 NDR_PULL_ALLOC(ndr, r->info6);
7394 uint32_t _ptr_info7;
7395 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info7));
7397 NDR_PULL_ALLOC(ndr, r->info7);
7404 uint32_t _ptr_info8;
7405 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
7407 NDR_PULL_ALLOC(ndr, r->info8);
7414 uint32_t _ptr_info9;
7415 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info9));
7417 NDR_PULL_ALLOC(ndr, r->info9);
7428 if (ndr_flags & NDR_BUFFERS) {
7432 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
7433 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
7434 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
7435 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
7441 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7442 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7443 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7444 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7450 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
7451 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
7452 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7453 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
7459 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
7460 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
7461 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
7462 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
7468 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
7469 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
7470 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
7471 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
7477 _mem_save_info5_0 = NDR_PULL_GET_MEM_CTX(ndr);
7478 NDR_PULL_SET_MEM_CTX(ndr, r->info5, 0);
7479 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
7480 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info5_0, 0);
7486 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
7487 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
7488 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
7489 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
7495 _mem_save_info7_0 = NDR_PULL_GET_MEM_CTX(ndr);
7496 NDR_PULL_SET_MEM_CTX(ndr, r->info7, 0);
7497 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
7498 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info7_0, 0);
7504 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
7505 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
7506 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
7507 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
7513 _mem_save_info9_0 = NDR_PULL_GET_MEM_CTX(ndr);
7514 NDR_PULL_SET_MEM_CTX(ndr, r->info9, 0);
7515 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
7516 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info9_0, 0);
7525 return NDR_ERR_SUCCESS;
7528 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetPrinterInfo *r)
7531 level = ndr_print_get_switch_value(ndr, r);
7532 ndr_print_union(ndr, name, level, "spoolss_SetPrinterInfo");
7535 ndr_print_ptr(ndr, "info0", r->info0);
7538 ndr_print_spoolss_SetPrinterInfo0(ndr, "info0", r->info0);
7544 ndr_print_ptr(ndr, "info1", r->info1);
7547 ndr_print_spoolss_SetPrinterInfo1(ndr, "info1", r->info1);
7553 ndr_print_ptr(ndr, "info2", r->info2);
7556 ndr_print_spoolss_SetPrinterInfo2(ndr, "info2", r->info2);
7562 ndr_print_ptr(ndr, "info3", r->info3);
7565 ndr_print_spoolss_SetPrinterInfo3(ndr, "info3", r->info3);
7571 ndr_print_ptr(ndr, "info4", r->info4);
7574 ndr_print_spoolss_SetPrinterInfo4(ndr, "info4", r->info4);
7580 ndr_print_ptr(ndr, "info5", r->info5);
7583 ndr_print_spoolss_SetPrinterInfo5(ndr, "info5", r->info5);
7589 ndr_print_ptr(ndr, "info6", r->info6);
7592 ndr_print_spoolss_SetPrinterInfo6(ndr, "info6", r->info6);
7598 ndr_print_ptr(ndr, "info7", r->info7);
7601 ndr_print_spoolss_SetPrinterInfo7(ndr, "info7", r->info7);
7607 ndr_print_ptr(ndr, "info8", r->info8);
7610 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", r->info8);
7616 ndr_print_ptr(ndr, "info9", r->info9);
7619 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", r->info9);
7630 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfoCtr *r)
7632 if (ndr_flags & NDR_SCALARS) {
7633 NDR_CHECK(ndr_push_align(ndr, 4));
7634 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
7635 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
7636 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
7638 if (ndr_flags & NDR_BUFFERS) {
7639 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
7641 return NDR_ERR_SUCCESS;
7644 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfoCtr *r)
7646 if (ndr_flags & NDR_SCALARS) {
7647 NDR_CHECK(ndr_pull_align(ndr, 4));
7648 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
7649 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
7650 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
7652 if (ndr_flags & NDR_BUFFERS) {
7653 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
7655 return NDR_ERR_SUCCESS;
7658 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfoCtr *r)
7660 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfoCtr");
7662 ndr_print_uint32(ndr, "level", r->level);
7663 ndr_print_set_switch_value(ndr, &r->info, r->level);
7664 ndr_print_spoolss_SetPrinterInfo(ndr, "info", &r->info);
7668 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_StringArray(struct ndr_push *ndr, int ndr_flags, const struct spoolss_StringArray *r)
7670 if (ndr_flags & NDR_SCALARS) {
7671 NDR_CHECK(ndr_push_align(ndr, 4));
7672 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, (ndr_size_spoolss_StringArray(r, ndr->iconv_convenience, ndr->flags) - 4) / 2));
7674 uint32_t _flags_save_string_array = ndr->flags;
7675 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7676 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string));
7677 ndr->flags = _flags_save_string_array;
7680 if (ndr_flags & NDR_BUFFERS) {
7682 return NDR_ERR_SUCCESS;
7685 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_StringArray(struct ndr_pull *ndr, int ndr_flags, struct spoolss_StringArray *r)
7687 if (ndr_flags & NDR_SCALARS) {
7688 NDR_CHECK(ndr_pull_align(ndr, 4));
7689 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
7691 uint32_t _flags_save_string_array = ndr->flags;
7692 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7693 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string));
7694 ndr->flags = _flags_save_string_array;
7697 if (ndr_flags & NDR_BUFFERS) {
7699 return NDR_ERR_SUCCESS;
7702 _PUBLIC_ void ndr_print_spoolss_StringArray(struct ndr_print *ndr, const char *name, const struct spoolss_StringArray *r)
7704 ndr_print_struct(ndr, name, "spoolss_StringArray");
7706 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);
7707 ndr_print_string_array(ndr, "string", r->string);
7711 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo1 *r)
7713 if (ndr_flags & NDR_SCALARS) {
7714 NDR_CHECK(ndr_push_align(ndr, 4));
7715 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
7717 if (ndr_flags & NDR_BUFFERS) {
7718 if (r->driver_name) {
7719 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7720 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7721 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7722 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7725 return NDR_ERR_SUCCESS;
7728 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo1 *r)
7730 uint32_t _ptr_driver_name;
7731 TALLOC_CTX *_mem_save_driver_name_0;
7732 if (ndr_flags & NDR_SCALARS) {
7733 NDR_CHECK(ndr_pull_align(ndr, 4));
7734 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7735 if (_ptr_driver_name) {
7736 NDR_PULL_ALLOC(ndr, r->driver_name);
7738 r->driver_name = NULL;
7741 if (ndr_flags & NDR_BUFFERS) {
7742 if (r->driver_name) {
7743 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7744 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7745 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
7746 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
7747 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
7748 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));
7750 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
7751 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
7752 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7755 return NDR_ERR_SUCCESS;
7758 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo1 *r)
7760 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo1");
7762 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7764 if (r->driver_name) {
7765 ndr_print_string(ndr, "driver_name", r->driver_name);
7771 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverOSVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverOSVersion r)
7773 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7774 return NDR_ERR_SUCCESS;
7777 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverOSVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverOSVersion *r)
7780 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7782 return NDR_ERR_SUCCESS;
7785 _PUBLIC_ void ndr_print_spoolss_DriverOSVersion(struct ndr_print *ndr, const char *name, enum spoolss_DriverOSVersion r)
7787 const char *val = NULL;
7790 case SPOOLSS_DRIVER_VERSION_9X: val = "SPOOLSS_DRIVER_VERSION_9X"; break;
7791 case SPOOLSS_DRIVER_VERSION_NT35: val = "SPOOLSS_DRIVER_VERSION_NT35"; break;
7792 case SPOOLSS_DRIVER_VERSION_NT4: val = "SPOOLSS_DRIVER_VERSION_NT4"; break;
7793 case SPOOLSS_DRIVER_VERSION_200X: val = "SPOOLSS_DRIVER_VERSION_200X"; break;
7795 ndr_print_enum(ndr, name, "ENUM", val, r);
7798 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo2 *r)
7800 if (ndr_flags & NDR_SCALARS) {
7801 NDR_CHECK(ndr_push_align(ndr, 4));
7802 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7803 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
7804 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
7805 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
7806 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
7807 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
7809 if (ndr_flags & NDR_BUFFERS) {
7810 if (r->driver_name) {
7811 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7812 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7813 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7814 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7816 if (r->architecture) {
7817 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
7818 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7819 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
7820 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7822 if (r->driver_path) {
7823 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
7824 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7825 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
7826 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7829 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
7830 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7831 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
7832 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7834 if (r->config_file) {
7835 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
7836 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7837 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
7838 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7841 return NDR_ERR_SUCCESS;
7844 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo2 *r)
7846 uint32_t _ptr_driver_name;
7847 TALLOC_CTX *_mem_save_driver_name_0;
7848 uint32_t _ptr_architecture;
7849 TALLOC_CTX *_mem_save_architecture_0;
7850 uint32_t _ptr_driver_path;
7851 TALLOC_CTX *_mem_save_driver_path_0;
7852 uint32_t _ptr_data_file;
7853 TALLOC_CTX *_mem_save_data_file_0;
7854 uint32_t _ptr_config_file;
7855 TALLOC_CTX *_mem_save_config_file_0;
7856 if (ndr_flags & NDR_SCALARS) {
7857 NDR_CHECK(ndr_pull_align(ndr, 4));
7858 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
7859 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7860 if (_ptr_driver_name) {
7861 NDR_PULL_ALLOC(ndr, r->driver_name);
7863 r->driver_name = NULL;
7865 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
7866 if (_ptr_architecture) {
7867 NDR_PULL_ALLOC(ndr, r->architecture);
7869 r->architecture = NULL;
7871 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
7872 if (_ptr_driver_path) {
7873 NDR_PULL_ALLOC(ndr, r->driver_path);
7875 r->driver_path = NULL;
7877 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
7878 if (_ptr_data_file) {
7879 NDR_PULL_ALLOC(ndr, r->data_file);
7881 r->data_file = NULL;
7883 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
7884 if (_ptr_config_file) {
7885 NDR_PULL_ALLOC(ndr, r->config_file);
7887 r->config_file = NULL;
7890 if (ndr_flags & NDR_BUFFERS) {
7891 if (r->driver_name) {
7892 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7893 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7894 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
7895 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
7896 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
7897 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));
7899 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
7900 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
7901 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7903 if (r->architecture) {
7904 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
7905 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
7906 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
7907 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
7908 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
7909 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));
7911 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
7912 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
7913 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
7915 if (r->driver_path) {
7916 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
7917 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
7918 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
7919 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
7920 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
7921 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));
7923 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
7924 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
7925 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
7928 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7929 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
7930 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
7931 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
7932 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
7933 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));
7935 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
7936 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
7937 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
7939 if (r->config_file) {
7940 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7941 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
7942 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
7943 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
7944 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
7945 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));
7947 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
7948 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
7949 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
7952 return NDR_ERR_SUCCESS;
7955 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo2 *r)
7957 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo2");
7959 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
7960 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7962 if (r->driver_name) {
7963 ndr_print_string(ndr, "driver_name", r->driver_name);
7966 ndr_print_ptr(ndr, "architecture", r->architecture);
7968 if (r->architecture) {
7969 ndr_print_string(ndr, "architecture", r->architecture);
7972 ndr_print_ptr(ndr, "driver_path", r->driver_path);
7974 if (r->driver_path) {
7975 ndr_print_string(ndr, "driver_path", r->driver_path);
7978 ndr_print_ptr(ndr, "data_file", r->data_file);
7981 ndr_print_string(ndr, "data_file", r->data_file);
7984 ndr_print_ptr(ndr, "config_file", r->config_file);
7986 if (r->config_file) {
7987 ndr_print_string(ndr, "config_file", r->config_file);
7993 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo3 *r)
7995 if (ndr_flags & NDR_SCALARS) {
7996 NDR_CHECK(ndr_push_align(ndr, 4));
7997 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7998 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
7999 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8000 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8001 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8002 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8003 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8004 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8005 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8006 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8007 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8009 if (ndr_flags & NDR_BUFFERS) {
8010 if (r->driver_name) {
8011 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8012 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8013 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8014 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8016 if (r->architecture) {
8017 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8018 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8019 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8020 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8022 if (r->driver_path) {
8023 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8024 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8025 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8026 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8029 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8030 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8031 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8032 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8034 if (r->config_file) {
8035 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8036 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8037 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8038 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8041 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8042 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8043 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8044 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8046 if (r->monitor_name) {
8047 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8048 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8049 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8050 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8052 if (r->default_datatype) {
8053 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8054 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8055 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8056 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8058 if (r->dependent_files) {
8059 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8062 return NDR_ERR_SUCCESS;
8065 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo3 *r)
8067 uint32_t _ptr_driver_name;
8068 TALLOC_CTX *_mem_save_driver_name_0;
8069 uint32_t _ptr_architecture;
8070 TALLOC_CTX *_mem_save_architecture_0;
8071 uint32_t _ptr_driver_path;
8072 TALLOC_CTX *_mem_save_driver_path_0;
8073 uint32_t _ptr_data_file;
8074 TALLOC_CTX *_mem_save_data_file_0;
8075 uint32_t _ptr_config_file;
8076 TALLOC_CTX *_mem_save_config_file_0;
8077 uint32_t _ptr_help_file;
8078 TALLOC_CTX *_mem_save_help_file_0;
8079 uint32_t _ptr_monitor_name;
8080 TALLOC_CTX *_mem_save_monitor_name_0;
8081 uint32_t _ptr_default_datatype;
8082 TALLOC_CTX *_mem_save_default_datatype_0;
8083 uint32_t _ptr_dependent_files;
8084 TALLOC_CTX *_mem_save_dependent_files_0;
8085 if (ndr_flags & NDR_SCALARS) {
8086 NDR_CHECK(ndr_pull_align(ndr, 4));
8087 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8088 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8089 if (_ptr_driver_name) {
8090 NDR_PULL_ALLOC(ndr, r->driver_name);
8092 r->driver_name = NULL;
8094 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8095 if (_ptr_architecture) {
8096 NDR_PULL_ALLOC(ndr, r->architecture);
8098 r->architecture = NULL;
8100 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8101 if (_ptr_driver_path) {
8102 NDR_PULL_ALLOC(ndr, r->driver_path);
8104 r->driver_path = NULL;
8106 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8107 if (_ptr_data_file) {
8108 NDR_PULL_ALLOC(ndr, r->data_file);
8110 r->data_file = NULL;
8112 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8113 if (_ptr_config_file) {
8114 NDR_PULL_ALLOC(ndr, r->config_file);
8116 r->config_file = NULL;
8118 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8119 if (_ptr_help_file) {
8120 NDR_PULL_ALLOC(ndr, r->help_file);
8122 r->help_file = NULL;
8124 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8125 if (_ptr_monitor_name) {
8126 NDR_PULL_ALLOC(ndr, r->monitor_name);
8128 r->monitor_name = NULL;
8130 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8131 if (_ptr_default_datatype) {
8132 NDR_PULL_ALLOC(ndr, r->default_datatype);
8134 r->default_datatype = NULL;
8136 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8137 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8138 if (_ptr_dependent_files) {
8139 NDR_PULL_ALLOC(ndr, r->dependent_files);
8141 r->dependent_files = NULL;
8144 if (ndr_flags & NDR_BUFFERS) {
8145 if (r->driver_name) {
8146 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8147 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8148 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8149 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8150 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8151 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));
8153 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8154 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8155 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8157 if (r->architecture) {
8158 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8159 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8160 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8161 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8162 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8163 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));
8165 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8166 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8167 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8169 if (r->driver_path) {
8170 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8171 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8172 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8173 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8174 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8175 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));
8177 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8178 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8179 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8182 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8183 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8184 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8185 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8186 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8187 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));
8189 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8190 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8191 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8193 if (r->config_file) {
8194 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8195 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8196 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8197 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8198 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8199 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
8201 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8202 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8203 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8206 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8207 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8208 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8209 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8210 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8211 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->help_file), ndr_get_array_length(ndr, &r->help_file));
8213 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8214 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
8215 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8217 if (r->monitor_name) {
8218 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8219 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8220 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8221 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8222 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8223 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->monitor_name), ndr_get_array_length(ndr, &r->monitor_name));
8225 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8226 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
8227 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8229 if (r->default_datatype) {
8230 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8231 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8232 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
8233 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
8234 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
8235 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->default_datatype), ndr_get_array_length(ndr, &r->default_datatype));
8237 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
8238 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
8239 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8241 if (r->dependent_files) {
8242 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8243 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8244 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8245 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8248 return NDR_ERR_SUCCESS;
8251 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo3 *r)
8253 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo3");
8255 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8256 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8258 if (r->driver_name) {
8259 ndr_print_string(ndr, "driver_name", r->driver_name);
8262 ndr_print_ptr(ndr, "architecture", r->architecture);
8264 if (r->architecture) {
8265 ndr_print_string(ndr, "architecture", r->architecture);
8268 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8270 if (r->driver_path) {
8271 ndr_print_string(ndr, "driver_path", r->driver_path);
8274 ndr_print_ptr(ndr, "data_file", r->data_file);
8277 ndr_print_string(ndr, "data_file", r->data_file);
8280 ndr_print_ptr(ndr, "config_file", r->config_file);
8282 if (r->config_file) {
8283 ndr_print_string(ndr, "config_file", r->config_file);
8286 ndr_print_ptr(ndr, "help_file", r->help_file);
8289 ndr_print_string(ndr, "help_file", r->help_file);
8292 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8294 if (r->monitor_name) {
8295 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8298 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8300 if (r->default_datatype) {
8301 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8304 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);
8305 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8307 if (r->dependent_files) {
8308 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
8314 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo4 *r)
8316 if (ndr_flags & NDR_SCALARS) {
8317 NDR_CHECK(ndr_push_align(ndr, 4));
8318 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8319 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8320 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8321 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8322 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8323 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8324 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8325 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8326 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8327 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8328 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8329 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8330 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
8332 if (ndr_flags & NDR_BUFFERS) {
8333 if (r->driver_name) {
8334 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8335 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8336 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8337 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8339 if (r->architecture) {
8340 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8341 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8342 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8343 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8345 if (r->driver_path) {
8346 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8347 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8348 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8349 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8352 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8353 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8354 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8355 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8357 if (r->config_file) {
8358 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8359 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8360 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8361 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8364 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8365 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8366 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8367 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8369 if (r->monitor_name) {
8370 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8371 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8372 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8373 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8375 if (r->default_datatype) {
8376 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8377 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8378 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8379 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8381 if (r->dependent_files) {
8382 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8384 if (r->previous_names) {
8385 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8388 return NDR_ERR_SUCCESS;
8391 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo4 *r)
8393 uint32_t _ptr_driver_name;
8394 TALLOC_CTX *_mem_save_driver_name_0;
8395 uint32_t _ptr_architecture;
8396 TALLOC_CTX *_mem_save_architecture_0;
8397 uint32_t _ptr_driver_path;
8398 TALLOC_CTX *_mem_save_driver_path_0;
8399 uint32_t _ptr_data_file;
8400 TALLOC_CTX *_mem_save_data_file_0;
8401 uint32_t _ptr_config_file;
8402 TALLOC_CTX *_mem_save_config_file_0;
8403 uint32_t _ptr_help_file;
8404 TALLOC_CTX *_mem_save_help_file_0;
8405 uint32_t _ptr_monitor_name;
8406 TALLOC_CTX *_mem_save_monitor_name_0;
8407 uint32_t _ptr_default_datatype;
8408 TALLOC_CTX *_mem_save_default_datatype_0;
8409 uint32_t _ptr_dependent_files;
8410 TALLOC_CTX *_mem_save_dependent_files_0;
8411 uint32_t _ptr_previous_names;
8412 TALLOC_CTX *_mem_save_previous_names_0;
8413 if (ndr_flags & NDR_SCALARS) {
8414 NDR_CHECK(ndr_pull_align(ndr, 4));
8415 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8416 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8417 if (_ptr_driver_name) {
8418 NDR_PULL_ALLOC(ndr, r->driver_name);
8420 r->driver_name = NULL;
8422 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8423 if (_ptr_architecture) {
8424 NDR_PULL_ALLOC(ndr, r->architecture);
8426 r->architecture = NULL;
8428 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8429 if (_ptr_driver_path) {
8430 NDR_PULL_ALLOC(ndr, r->driver_path);
8432 r->driver_path = NULL;
8434 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8435 if (_ptr_data_file) {
8436 NDR_PULL_ALLOC(ndr, r->data_file);
8438 r->data_file = NULL;
8440 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8441 if (_ptr_config_file) {
8442 NDR_PULL_ALLOC(ndr, r->config_file);
8444 r->config_file = NULL;
8446 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8447 if (_ptr_help_file) {
8448 NDR_PULL_ALLOC(ndr, r->help_file);
8450 r->help_file = NULL;
8452 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8453 if (_ptr_monitor_name) {
8454 NDR_PULL_ALLOC(ndr, r->monitor_name);
8456 r->monitor_name = NULL;
8458 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8459 if (_ptr_default_datatype) {
8460 NDR_PULL_ALLOC(ndr, r->default_datatype);
8462 r->default_datatype = NULL;
8464 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8465 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8466 if (_ptr_dependent_files) {
8467 NDR_PULL_ALLOC(ndr, r->dependent_files);
8469 r->dependent_files = NULL;
8471 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
8472 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
8473 if (_ptr_previous_names) {
8474 NDR_PULL_ALLOC(ndr, r->previous_names);
8476 r->previous_names = NULL;
8479 if (ndr_flags & NDR_BUFFERS) {
8480 if (r->driver_name) {
8481 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8482 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8483 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8484 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8485 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8486 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));
8488 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8489 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8490 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8492 if (r->architecture) {
8493 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8494 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8495 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8496 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8497 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8498 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));
8500 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8501 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8502 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8504 if (r->driver_path) {
8505 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8506 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8507 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8508 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8509 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8510 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));
8512 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8513 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8514 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8517 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8518 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8519 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8520 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8521 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8522 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));
8524 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8525 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8526 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8528 if (r->config_file) {
8529 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8530 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8531 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8532 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8533 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8534 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));
8536 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8537 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8538 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8541 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8542 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8543 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8544 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8545 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8546 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));
8548 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8549 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
8550 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8552 if (r->monitor_name) {
8553 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8554 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8555 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8556 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8557 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8558 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));
8560 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8561 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
8562 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8564 if (r->default_datatype) {
8565 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8566 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8567 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
8568 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
8569 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
8570 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));
8572 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
8573 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
8574 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8576 if (r->dependent_files) {
8577 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8578 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8579 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8580 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8582 if (r->previous_names) {
8583 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
8584 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
8585 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8586 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
8589 return NDR_ERR_SUCCESS;
8592 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo4 *r)
8594 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo4");
8596 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8597 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8599 if (r->driver_name) {
8600 ndr_print_string(ndr, "driver_name", r->driver_name);
8603 ndr_print_ptr(ndr, "architecture", r->architecture);
8605 if (r->architecture) {
8606 ndr_print_string(ndr, "architecture", r->architecture);
8609 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8611 if (r->driver_path) {
8612 ndr_print_string(ndr, "driver_path", r->driver_path);
8615 ndr_print_ptr(ndr, "data_file", r->data_file);
8618 ndr_print_string(ndr, "data_file", r->data_file);
8621 ndr_print_ptr(ndr, "config_file", r->config_file);
8623 if (r->config_file) {
8624 ndr_print_string(ndr, "config_file", r->config_file);
8627 ndr_print_ptr(ndr, "help_file", r->help_file);
8630 ndr_print_string(ndr, "help_file", r->help_file);
8633 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8635 if (r->monitor_name) {
8636 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8639 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8641 if (r->default_datatype) {
8642 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8645 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);
8646 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8648 if (r->dependent_files) {
8649 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
8652 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);
8653 ndr_print_ptr(ndr, "previous_names", r->previous_names);
8655 if (r->previous_names) {
8656 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
8662 static enum ndr_err_code ndr_push_spoolss_DriverAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
8664 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
8665 return NDR_ERR_SUCCESS;
8668 static enum ndr_err_code ndr_pull_spoolss_DriverAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
8671 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
8673 return NDR_ERR_SUCCESS;
8676 _PUBLIC_ void ndr_print_spoolss_DriverAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
8678 ndr_print_uint32(ndr, name, r);
8680 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_PACKAGE_AWARE", PRINTER_DRIVER_PACKAGE_AWARE, r);
8684 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo6 *r)
8686 if (ndr_flags & NDR_SCALARS) {
8687 NDR_CHECK(ndr_push_align(ndr, 8));
8688 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8689 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8690 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8691 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8692 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8693 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8694 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8695 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8696 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8697 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8698 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8699 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8700 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
8701 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
8702 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
8703 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
8704 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
8705 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
8706 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
8708 if (ndr_flags & NDR_BUFFERS) {
8709 if (r->driver_name) {
8710 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8711 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8712 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8713 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8715 if (r->architecture) {
8716 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8717 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8718 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8719 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8721 if (r->driver_path) {
8722 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8723 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8724 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8725 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8728 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8729 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8730 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8731 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8733 if (r->config_file) {
8734 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8735 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8736 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8737 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8740 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8741 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8742 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8743 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8745 if (r->monitor_name) {
8746 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8747 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8748 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8749 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8751 if (r->default_datatype) {
8752 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8753 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8754 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8755 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8757 if (r->dependent_files) {
8758 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8760 if (r->previous_names) {
8761 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8763 if (r->manufacturer_name) {
8764 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
8765 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8766 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
8767 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8769 if (r->manufacturer_url) {
8770 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
8771 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8772 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
8773 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8775 if (r->hardware_id) {
8776 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
8777 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8778 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
8779 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8782 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
8783 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8784 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
8785 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8788 return NDR_ERR_SUCCESS;
8791 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo6 *r)
8793 uint32_t _ptr_driver_name;
8794 TALLOC_CTX *_mem_save_driver_name_0;
8795 uint32_t _ptr_architecture;
8796 TALLOC_CTX *_mem_save_architecture_0;
8797 uint32_t _ptr_driver_path;
8798 TALLOC_CTX *_mem_save_driver_path_0;
8799 uint32_t _ptr_data_file;
8800 TALLOC_CTX *_mem_save_data_file_0;
8801 uint32_t _ptr_config_file;
8802 TALLOC_CTX *_mem_save_config_file_0;
8803 uint32_t _ptr_help_file;
8804 TALLOC_CTX *_mem_save_help_file_0;
8805 uint32_t _ptr_monitor_name;
8806 TALLOC_CTX *_mem_save_monitor_name_0;
8807 uint32_t _ptr_default_datatype;
8808 TALLOC_CTX *_mem_save_default_datatype_0;
8809 uint32_t _ptr_dependent_files;
8810 TALLOC_CTX *_mem_save_dependent_files_0;
8811 uint32_t _ptr_previous_names;
8812 TALLOC_CTX *_mem_save_previous_names_0;
8813 uint32_t _ptr_manufacturer_name;
8814 TALLOC_CTX *_mem_save_manufacturer_name_0;
8815 uint32_t _ptr_manufacturer_url;
8816 TALLOC_CTX *_mem_save_manufacturer_url_0;
8817 uint32_t _ptr_hardware_id;
8818 TALLOC_CTX *_mem_save_hardware_id_0;
8819 uint32_t _ptr_provider;
8820 TALLOC_CTX *_mem_save_provider_0;
8821 if (ndr_flags & NDR_SCALARS) {
8822 NDR_CHECK(ndr_pull_align(ndr, 8));
8823 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8824 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8825 if (_ptr_driver_name) {
8826 NDR_PULL_ALLOC(ndr, r->driver_name);
8828 r->driver_name = NULL;
8830 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8831 if (_ptr_architecture) {
8832 NDR_PULL_ALLOC(ndr, r->architecture);
8834 r->architecture = NULL;
8836 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8837 if (_ptr_driver_path) {
8838 NDR_PULL_ALLOC(ndr, r->driver_path);
8840 r->driver_path = NULL;
8842 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8843 if (_ptr_data_file) {
8844 NDR_PULL_ALLOC(ndr, r->data_file);
8846 r->data_file = NULL;
8848 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8849 if (_ptr_config_file) {
8850 NDR_PULL_ALLOC(ndr, r->config_file);
8852 r->config_file = NULL;
8854 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8855 if (_ptr_help_file) {
8856 NDR_PULL_ALLOC(ndr, r->help_file);
8858 r->help_file = NULL;
8860 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8861 if (_ptr_monitor_name) {
8862 NDR_PULL_ALLOC(ndr, r->monitor_name);
8864 r->monitor_name = NULL;
8866 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8867 if (_ptr_default_datatype) {
8868 NDR_PULL_ALLOC(ndr, r->default_datatype);
8870 r->default_datatype = NULL;
8872 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8873 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8874 if (_ptr_dependent_files) {
8875 NDR_PULL_ALLOC(ndr, r->dependent_files);
8877 r->dependent_files = NULL;
8879 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
8880 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
8881 if (_ptr_previous_names) {
8882 NDR_PULL_ALLOC(ndr, r->previous_names);
8884 r->previous_names = NULL;
8886 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
8887 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
8888 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
8889 if (_ptr_manufacturer_name) {
8890 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
8892 r->manufacturer_name = NULL;
8894 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
8895 if (_ptr_manufacturer_url) {
8896 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
8898 r->manufacturer_url = NULL;
8900 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
8901 if (_ptr_hardware_id) {
8902 NDR_PULL_ALLOC(ndr, r->hardware_id);
8904 r->hardware_id = NULL;
8906 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
8907 if (_ptr_provider) {
8908 NDR_PULL_ALLOC(ndr, r->provider);
8913 if (ndr_flags & NDR_BUFFERS) {
8914 if (r->driver_name) {
8915 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8916 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8917 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8918 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8919 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8920 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));
8922 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8923 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8924 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8926 if (r->architecture) {
8927 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8928 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8929 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8930 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8931 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8932 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));
8934 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8935 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8936 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8938 if (r->driver_path) {
8939 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8940 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8941 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8942 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8943 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8944 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));
8946 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8947 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8948 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8951 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8952 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8953 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8954 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8955 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8956 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));
8958 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8959 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8960 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8962 if (r->config_file) {
8963 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8964 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8965 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8966 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8967 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8968 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));
8970 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8971 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8972 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8975 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8976 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8977 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8978 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8979 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8980 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));
8982 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8983 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
8984 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8986 if (r->monitor_name) {
8987 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8988 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8989 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8990 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8991 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8992 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));
8994 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8995 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
8996 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8998 if (r->default_datatype) {
8999 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9000 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9001 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9002 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9003 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
9004 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));
9006 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
9007 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
9008 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9010 if (r->dependent_files) {
9011 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9012 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9013 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9014 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9016 if (r->previous_names) {
9017 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9018 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9019 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9020 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9022 if (r->manufacturer_name) {
9023 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9024 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
9025 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
9026 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
9027 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
9028 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));
9030 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
9031 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
9032 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
9034 if (r->manufacturer_url) {
9035 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
9036 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
9037 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
9038 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
9039 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
9040 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));
9042 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
9043 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
9044 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
9046 if (r->hardware_id) {
9047 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9048 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
9049 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
9050 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
9051 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
9052 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));
9054 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
9055 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
9056 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
9059 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
9060 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
9061 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
9062 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
9063 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
9064 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));
9066 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
9067 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
9068 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
9071 return NDR_ERR_SUCCESS;
9074 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo6 *r)
9076 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo6");
9078 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9079 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9081 if (r->driver_name) {
9082 ndr_print_string(ndr, "driver_name", r->driver_name);
9085 ndr_print_ptr(ndr, "architecture", r->architecture);
9087 if (r->architecture) {
9088 ndr_print_string(ndr, "architecture", r->architecture);
9091 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9093 if (r->driver_path) {
9094 ndr_print_string(ndr, "driver_path", r->driver_path);
9097 ndr_print_ptr(ndr, "data_file", r->data_file);
9100 ndr_print_string(ndr, "data_file", r->data_file);
9103 ndr_print_ptr(ndr, "config_file", r->config_file);
9105 if (r->config_file) {
9106 ndr_print_string(ndr, "config_file", r->config_file);
9109 ndr_print_ptr(ndr, "help_file", r->help_file);
9112 ndr_print_string(ndr, "help_file", r->help_file);
9115 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9117 if (r->monitor_name) {
9118 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9121 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9123 if (r->default_datatype) {
9124 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9127 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);
9128 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9130 if (r->dependent_files) {
9131 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9134 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);
9135 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9137 if (r->previous_names) {
9138 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
9141 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
9142 ndr_print_hyper(ndr, "driver_version", r->driver_version);
9143 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
9145 if (r->manufacturer_name) {
9146 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
9149 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
9151 if (r->manufacturer_url) {
9152 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
9155 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
9157 if (r->hardware_id) {
9158 ndr_print_string(ndr, "hardware_id", r->hardware_id);
9161 ndr_print_ptr(ndr, "provider", r->provider);
9164 ndr_print_string(ndr, "provider", r->provider);
9170 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo8 *r)
9172 if (ndr_flags & NDR_SCALARS) {
9173 NDR_CHECK(ndr_push_align(ndr, 8));
9174 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9175 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
9176 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
9177 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
9178 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
9179 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
9180 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
9181 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
9182 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
9183 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9184 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
9185 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9186 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
9187 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
9188 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
9189 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
9190 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
9191 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
9192 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
9193 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
9194 NDR_CHECK(ndr_push_unique_ptr(ndr, r->vendor_setup));
9195 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->color_profiles, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9196 NDR_CHECK(ndr_push_unique_ptr(ndr, r->color_profiles));
9197 NDR_CHECK(ndr_push_unique_ptr(ndr, r->inf_path));
9198 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
9199 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9200 NDR_CHECK(ndr_push_unique_ptr(ndr, r->core_driver_dependencies));
9201 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
9202 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
9204 if (ndr_flags & NDR_BUFFERS) {
9205 if (r->driver_name) {
9206 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9207 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9208 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9209 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9211 if (r->architecture) {
9212 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9213 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9214 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9215 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9217 if (r->driver_path) {
9218 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9219 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9220 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9221 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9224 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9225 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9226 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9227 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9229 if (r->config_file) {
9230 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9231 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9232 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9233 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9236 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9237 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9238 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9239 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9241 if (r->monitor_name) {
9242 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9243 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9244 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9245 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9247 if (r->default_datatype) {
9248 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9249 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9250 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9251 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9253 if (r->dependent_files) {
9254 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9256 if (r->previous_names) {
9257 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9259 if (r->manufacturer_name) {
9260 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9261 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9262 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9263 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9265 if (r->manufacturer_url) {
9266 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9267 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9268 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9269 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9271 if (r->hardware_id) {
9272 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9273 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9274 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9275 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9278 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9279 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9280 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9281 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9283 if (r->print_processor) {
9284 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
9285 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9286 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
9287 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9289 if (r->vendor_setup) {
9290 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
9291 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9292 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
9293 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->vendor_setup, ndr_charset_length(r->vendor_setup, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9295 if (r->color_profiles) {
9296 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
9299 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
9300 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9301 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
9302 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->inf_path, ndr_charset_length(r->inf_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9304 if (r->core_driver_dependencies) {
9305 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
9308 return NDR_ERR_SUCCESS;
9311 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo8 *r)
9313 uint32_t _ptr_driver_name;
9314 TALLOC_CTX *_mem_save_driver_name_0;
9315 uint32_t _ptr_architecture;
9316 TALLOC_CTX *_mem_save_architecture_0;
9317 uint32_t _ptr_driver_path;
9318 TALLOC_CTX *_mem_save_driver_path_0;
9319 uint32_t _ptr_data_file;
9320 TALLOC_CTX *_mem_save_data_file_0;
9321 uint32_t _ptr_config_file;
9322 TALLOC_CTX *_mem_save_config_file_0;
9323 uint32_t _ptr_help_file;
9324 TALLOC_CTX *_mem_save_help_file_0;
9325 uint32_t _ptr_monitor_name;
9326 TALLOC_CTX *_mem_save_monitor_name_0;
9327 uint32_t _ptr_default_datatype;
9328 TALLOC_CTX *_mem_save_default_datatype_0;
9329 uint32_t _ptr_dependent_files;
9330 TALLOC_CTX *_mem_save_dependent_files_0;
9331 uint32_t _ptr_previous_names;
9332 TALLOC_CTX *_mem_save_previous_names_0;
9333 uint32_t _ptr_manufacturer_name;
9334 TALLOC_CTX *_mem_save_manufacturer_name_0;
9335 uint32_t _ptr_manufacturer_url;
9336 TALLOC_CTX *_mem_save_manufacturer_url_0;
9337 uint32_t _ptr_hardware_id;
9338 TALLOC_CTX *_mem_save_hardware_id_0;
9339 uint32_t _ptr_provider;
9340 TALLOC_CTX *_mem_save_provider_0;
9341 uint32_t _ptr_print_processor;
9342 TALLOC_CTX *_mem_save_print_processor_0;
9343 uint32_t _ptr_vendor_setup;
9344 TALLOC_CTX *_mem_save_vendor_setup_0;
9345 uint32_t _ptr_color_profiles;
9346 TALLOC_CTX *_mem_save_color_profiles_0;
9347 uint32_t _ptr_inf_path;
9348 TALLOC_CTX *_mem_save_inf_path_0;
9349 uint32_t _ptr_core_driver_dependencies;
9350 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
9351 if (ndr_flags & NDR_SCALARS) {
9352 NDR_CHECK(ndr_pull_align(ndr, 8));
9353 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9354 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9355 if (_ptr_driver_name) {
9356 NDR_PULL_ALLOC(ndr, r->driver_name);
9358 r->driver_name = NULL;
9360 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9361 if (_ptr_architecture) {
9362 NDR_PULL_ALLOC(ndr, r->architecture);
9364 r->architecture = NULL;
9366 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9367 if (_ptr_driver_path) {
9368 NDR_PULL_ALLOC(ndr, r->driver_path);
9370 r->driver_path = NULL;
9372 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9373 if (_ptr_data_file) {
9374 NDR_PULL_ALLOC(ndr, r->data_file);
9376 r->data_file = NULL;
9378 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9379 if (_ptr_config_file) {
9380 NDR_PULL_ALLOC(ndr, r->config_file);
9382 r->config_file = NULL;
9384 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9385 if (_ptr_help_file) {
9386 NDR_PULL_ALLOC(ndr, r->help_file);
9388 r->help_file = NULL;
9390 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9391 if (_ptr_monitor_name) {
9392 NDR_PULL_ALLOC(ndr, r->monitor_name);
9394 r->monitor_name = NULL;
9396 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9397 if (_ptr_default_datatype) {
9398 NDR_PULL_ALLOC(ndr, r->default_datatype);
9400 r->default_datatype = NULL;
9402 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9403 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9404 if (_ptr_dependent_files) {
9405 NDR_PULL_ALLOC(ndr, r->dependent_files);
9407 r->dependent_files = NULL;
9409 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
9410 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9411 if (_ptr_previous_names) {
9412 NDR_PULL_ALLOC(ndr, r->previous_names);
9414 r->previous_names = NULL;
9416 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
9417 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9418 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9419 if (_ptr_manufacturer_name) {
9420 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9422 r->manufacturer_name = NULL;
9424 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9425 if (_ptr_manufacturer_url) {
9426 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9428 r->manufacturer_url = NULL;
9430 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9431 if (_ptr_hardware_id) {
9432 NDR_PULL_ALLOC(ndr, r->hardware_id);
9434 r->hardware_id = NULL;
9436 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9437 if (_ptr_provider) {
9438 NDR_PULL_ALLOC(ndr, r->provider);
9442 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
9443 if (_ptr_print_processor) {
9444 NDR_PULL_ALLOC(ndr, r->print_processor);
9446 r->print_processor = NULL;
9448 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
9449 if (_ptr_vendor_setup) {
9450 NDR_PULL_ALLOC(ndr, r->vendor_setup);
9452 r->vendor_setup = NULL;
9454 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_color_profiles));
9455 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
9456 if (_ptr_color_profiles) {
9457 NDR_PULL_ALLOC(ndr, r->color_profiles);
9459 r->color_profiles = NULL;
9461 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
9462 if (_ptr_inf_path) {
9463 NDR_PULL_ALLOC(ndr, r->inf_path);
9467 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
9468 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_core_driver_dependencies));
9469 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
9470 if (_ptr_core_driver_dependencies) {
9471 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
9473 r->core_driver_dependencies = NULL;
9475 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
9476 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
9478 if (ndr_flags & NDR_BUFFERS) {
9479 if (r->driver_name) {
9480 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9481 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9482 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9483 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9484 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
9485 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));
9487 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
9488 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
9489 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9491 if (r->architecture) {
9492 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9493 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9494 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9495 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9496 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
9497 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));
9499 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
9500 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
9501 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9503 if (r->driver_path) {
9504 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9505 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9506 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9507 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9508 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
9509 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));
9511 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
9512 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
9513 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9516 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9517 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9518 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9519 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9520 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
9521 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));
9523 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
9524 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
9525 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9527 if (r->config_file) {
9528 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9529 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9530 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9531 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9532 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
9533 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));
9535 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
9536 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
9537 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9540 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9541 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9542 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9543 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9544 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
9545 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));
9547 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
9548 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
9549 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9551 if (r->monitor_name) {
9552 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9553 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9554 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9555 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9556 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
9557 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));
9559 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
9560 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
9561 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9563 if (r->default_datatype) {
9564 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9565 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9566 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9567 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9568 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
9569 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));
9571 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
9572 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
9573 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9575 if (r->dependent_files) {
9576 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9577 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9578 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9579 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9581 if (r->previous_names) {
9582 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9583 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9584 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9585 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9587 if (r->manufacturer_name) {
9588 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9589 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
9590 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
9591 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
9592 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
9593 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));
9595 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
9596 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
9597 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
9599 if (r->manufacturer_url) {
9600 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
9601 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
9602 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
9603 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
9604 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
9605 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));
9607 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
9608 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
9609 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
9611 if (r->hardware_id) {
9612 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9613 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
9614 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
9615 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
9616 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
9617 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));
9619 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
9620 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
9621 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
9624 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
9625 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
9626 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
9627 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
9628 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
9629 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));
9631 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
9632 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
9633 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
9635 if (r->print_processor) {
9636 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
9637 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
9638 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
9639 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
9640 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
9641 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));
9643 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
9644 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
9645 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
9647 if (r->vendor_setup) {
9648 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
9649 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
9650 NDR_CHECK(ndr_pull_array_size(ndr, &r->vendor_setup));
9651 NDR_CHECK(ndr_pull_array_length(ndr, &r->vendor_setup));
9652 if (ndr_get_array_length(ndr, &r->vendor_setup) > ndr_get_array_size(ndr, &r->vendor_setup)) {
9653 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));
9655 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t)));
9656 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->vendor_setup, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t), CH_UTF16));
9657 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
9659 if (r->color_profiles) {
9660 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
9661 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
9662 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
9663 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
9666 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9667 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
9668 NDR_CHECK(ndr_pull_array_size(ndr, &r->inf_path));
9669 NDR_CHECK(ndr_pull_array_length(ndr, &r->inf_path));
9670 if (ndr_get_array_length(ndr, &r->inf_path) > ndr_get_array_size(ndr, &r->inf_path)) {
9671 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));
9673 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t)));
9674 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->inf_path, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t), CH_UTF16));
9675 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
9677 if (r->core_driver_dependencies) {
9678 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
9679 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
9680 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
9681 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
9684 return NDR_ERR_SUCCESS;
9687 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo8 *r)
9689 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo8");
9691 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9692 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9694 if (r->driver_name) {
9695 ndr_print_string(ndr, "driver_name", r->driver_name);
9698 ndr_print_ptr(ndr, "architecture", r->architecture);
9700 if (r->architecture) {
9701 ndr_print_string(ndr, "architecture", r->architecture);
9704 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9706 if (r->driver_path) {
9707 ndr_print_string(ndr, "driver_path", r->driver_path);
9710 ndr_print_ptr(ndr, "data_file", r->data_file);
9713 ndr_print_string(ndr, "data_file", r->data_file);
9716 ndr_print_ptr(ndr, "config_file", r->config_file);
9718 if (r->config_file) {
9719 ndr_print_string(ndr, "config_file", r->config_file);
9722 ndr_print_ptr(ndr, "help_file", r->help_file);
9725 ndr_print_string(ndr, "help_file", r->help_file);
9728 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9730 if (r->monitor_name) {
9731 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9734 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9736 if (r->default_datatype) {
9737 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9740 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);
9741 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9743 if (r->dependent_files) {
9744 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9747 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);
9748 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9750 if (r->previous_names) {
9751 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
9754 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
9755 ndr_print_hyper(ndr, "driver_version", r->driver_version);
9756 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
9758 if (r->manufacturer_name) {
9759 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
9762 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
9764 if (r->manufacturer_url) {
9765 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
9768 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
9770 if (r->hardware_id) {
9771 ndr_print_string(ndr, "hardware_id", r->hardware_id);
9774 ndr_print_ptr(ndr, "provider", r->provider);
9777 ndr_print_string(ndr, "provider", r->provider);
9780 ndr_print_ptr(ndr, "print_processor", r->print_processor);
9782 if (r->print_processor) {
9783 ndr_print_string(ndr, "print_processor", r->print_processor);
9786 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
9788 if (r->vendor_setup) {
9789 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
9792 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);
9793 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
9795 if (r->color_profiles) {
9796 ndr_print_spoolss_StringArray(ndr, "color_profiles", r->color_profiles);
9799 ndr_print_ptr(ndr, "inf_path", r->inf_path);
9802 ndr_print_string(ndr, "inf_path", r->inf_path);
9805 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
9806 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);
9807 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
9809 if (r->core_driver_dependencies) {
9810 ndr_print_spoolss_StringArray(ndr, "core_driver_dependencies", r->core_driver_dependencies);
9813 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
9814 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
9818 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddDriverInfo *r)
9820 if (ndr_flags & NDR_SCALARS) {
9821 int level = ndr_push_get_switch_value(ndr, r);
9822 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
9825 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
9829 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
9833 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
9837 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
9841 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
9845 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
9849 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
9852 if (ndr_flags & NDR_BUFFERS) {
9853 int level = ndr_push_get_switch_value(ndr, r);
9857 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
9863 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
9869 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
9875 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
9881 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
9887 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
9892 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
9895 return NDR_ERR_SUCCESS;
9898 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddDriverInfo *r)
9902 TALLOC_CTX *_mem_save_info1_0;
9903 TALLOC_CTX *_mem_save_info2_0;
9904 TALLOC_CTX *_mem_save_info3_0;
9905 TALLOC_CTX *_mem_save_info4_0;
9906 TALLOC_CTX *_mem_save_info6_0;
9907 TALLOC_CTX *_mem_save_info8_0;
9908 level = ndr_pull_get_switch_value(ndr, r);
9909 if (ndr_flags & NDR_SCALARS) {
9910 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
9911 if (_level != level) {
9912 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
9916 uint32_t _ptr_info1;
9917 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
9919 NDR_PULL_ALLOC(ndr, r->info1);
9926 uint32_t _ptr_info2;
9927 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
9929 NDR_PULL_ALLOC(ndr, r->info2);
9936 uint32_t _ptr_info3;
9937 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
9939 NDR_PULL_ALLOC(ndr, r->info3);
9946 uint32_t _ptr_info4;
9947 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
9949 NDR_PULL_ALLOC(ndr, r->info4);
9956 uint32_t _ptr_info6;
9957 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
9959 NDR_PULL_ALLOC(ndr, r->info6);
9966 uint32_t _ptr_info8;
9967 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
9969 NDR_PULL_ALLOC(ndr, r->info8);
9976 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
9979 if (ndr_flags & NDR_BUFFERS) {
9983 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
9984 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
9985 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
9986 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
9992 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
9993 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
9994 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
9995 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
10001 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
10002 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
10003 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
10004 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
10010 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
10011 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
10012 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
10013 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
10019 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
10020 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
10021 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
10022 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
10028 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
10029 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
10030 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
10031 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
10036 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
10039 return NDR_ERR_SUCCESS;
10042 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddDriverInfo *r)
10045 level = ndr_print_get_switch_value(ndr, r);
10046 ndr_print_union(ndr, name, level, "spoolss_AddDriverInfo");
10049 ndr_print_ptr(ndr, "info1", r->info1);
10052 ndr_print_spoolss_AddDriverInfo1(ndr, "info1", r->info1);
10058 ndr_print_ptr(ndr, "info2", r->info2);
10061 ndr_print_spoolss_AddDriverInfo2(ndr, "info2", r->info2);
10067 ndr_print_ptr(ndr, "info3", r->info3);
10070 ndr_print_spoolss_AddDriverInfo3(ndr, "info3", r->info3);
10076 ndr_print_ptr(ndr, "info4", r->info4);
10079 ndr_print_spoolss_AddDriverInfo4(ndr, "info4", r->info4);
10085 ndr_print_ptr(ndr, "info6", r->info6);
10088 ndr_print_spoolss_AddDriverInfo6(ndr, "info6", r->info6);
10094 ndr_print_ptr(ndr, "info8", r->info8);
10097 ndr_print_spoolss_AddDriverInfo8(ndr, "info8", r->info8);
10103 ndr_print_bad_level(ndr, name, level);
10107 static enum ndr_err_code ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfoCtr *r)
10109 if (ndr_flags & NDR_SCALARS) {
10110 NDR_CHECK(ndr_push_align(ndr, 4));
10111 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
10112 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
10113 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
10115 if (ndr_flags & NDR_BUFFERS) {
10116 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
10118 return NDR_ERR_SUCCESS;
10121 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfoCtr *r)
10123 if (ndr_flags & NDR_SCALARS) {
10124 NDR_CHECK(ndr_pull_align(ndr, 4));
10125 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
10126 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
10127 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
10129 if (ndr_flags & NDR_BUFFERS) {
10130 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
10132 return NDR_ERR_SUCCESS;
10135 _PUBLIC_ void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfoCtr *r)
10137 ndr_print_struct(ndr, name, "spoolss_AddDriverInfoCtr");
10139 ndr_print_uint32(ndr, "level", r->level);
10140 ndr_print_set_switch_value(ndr, &r->info, r->level);
10141 ndr_print_spoolss_AddDriverInfo(ndr, "info", &r->info);
10145 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo1 *r)
10147 if (ndr_flags & NDR_SCALARS) {
10148 NDR_CHECK(ndr_push_align(ndr, 4));
10150 uint32_t _flags_save_string = ndr->flags;
10151 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10152 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10153 ndr->flags = _flags_save_string;
10156 if (ndr_flags & NDR_BUFFERS) {
10158 uint32_t _flags_save_string = ndr->flags;
10159 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10160 if (r->driver_name) {
10161 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
10162 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10163 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
10165 ndr->flags = _flags_save_string;
10168 return NDR_ERR_SUCCESS;
10171 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo1 *r)
10173 uint32_t _ptr_driver_name;
10174 TALLOC_CTX *_mem_save_driver_name_0;
10175 if (ndr_flags & NDR_SCALARS) {
10176 NDR_CHECK(ndr_pull_align(ndr, 4));
10178 uint32_t _flags_save_string = ndr->flags;
10179 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10180 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10181 if (_ptr_driver_name) {
10182 NDR_PULL_ALLOC(ndr, r->driver_name);
10183 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10185 r->driver_name = NULL;
10187 ndr->flags = _flags_save_string;
10190 if (ndr_flags & NDR_BUFFERS) {
10192 uint32_t _flags_save_string = ndr->flags;
10193 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10194 if (r->driver_name) {
10195 uint32_t _relative_save_offset;
10196 _relative_save_offset = ndr->offset;
10197 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10198 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10199 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10200 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10201 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10202 ndr->offset = _relative_save_offset;
10204 ndr->flags = _flags_save_string;
10207 return NDR_ERR_SUCCESS;
10210 _PUBLIC_ void ndr_print_spoolss_DriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo1 *r)
10212 ndr_print_struct(ndr, name, "spoolss_DriverInfo1");
10214 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10216 if (r->driver_name) {
10217 ndr_print_string(ndr, "driver_name", r->driver_name);
10223 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1 *r, struct smb_iconv_convenience *ic, int flags)
10225 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo1, ic);
10228 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo2 *r)
10230 if (ndr_flags & NDR_SCALARS) {
10231 NDR_CHECK(ndr_push_align(ndr, 4));
10232 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10234 uint32_t _flags_save_string = ndr->flags;
10235 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10236 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10237 ndr->flags = _flags_save_string;
10240 uint32_t _flags_save_string = ndr->flags;
10241 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10242 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
10243 ndr->flags = _flags_save_string;
10246 uint32_t _flags_save_string = ndr->flags;
10247 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10248 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
10249 ndr->flags = _flags_save_string;
10252 uint32_t _flags_save_string = ndr->flags;
10253 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10254 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
10255 ndr->flags = _flags_save_string;
10258 uint32_t _flags_save_string = ndr->flags;
10259 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10260 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
10261 ndr->flags = _flags_save_string;
10264 if (ndr_flags & NDR_BUFFERS) {
10266 uint32_t _flags_save_string = ndr->flags;
10267 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10268 if (r->driver_name) {
10269 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
10270 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10271 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
10273 ndr->flags = _flags_save_string;
10276 uint32_t _flags_save_string = ndr->flags;
10277 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10278 if (r->architecture) {
10279 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
10280 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
10281 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
10283 ndr->flags = _flags_save_string;
10286 uint32_t _flags_save_string = ndr->flags;
10287 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10288 if (r->driver_path) {
10289 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
10290 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
10291 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
10293 ndr->flags = _flags_save_string;
10296 uint32_t _flags_save_string = ndr->flags;
10297 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10298 if (r->data_file) {
10299 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
10300 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
10301 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
10303 ndr->flags = _flags_save_string;
10306 uint32_t _flags_save_string = ndr->flags;
10307 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10308 if (r->config_file) {
10309 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
10310 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
10311 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
10313 ndr->flags = _flags_save_string;
10316 return NDR_ERR_SUCCESS;
10319 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo2 *r)
10321 uint32_t _ptr_driver_name;
10322 TALLOC_CTX *_mem_save_driver_name_0;
10323 uint32_t _ptr_architecture;
10324 TALLOC_CTX *_mem_save_architecture_0;
10325 uint32_t _ptr_driver_path;
10326 TALLOC_CTX *_mem_save_driver_path_0;
10327 uint32_t _ptr_data_file;
10328 TALLOC_CTX *_mem_save_data_file_0;
10329 uint32_t _ptr_config_file;
10330 TALLOC_CTX *_mem_save_config_file_0;
10331 if (ndr_flags & NDR_SCALARS) {
10332 NDR_CHECK(ndr_pull_align(ndr, 4));
10333 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10335 uint32_t _flags_save_string = ndr->flags;
10336 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10337 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10338 if (_ptr_driver_name) {
10339 NDR_PULL_ALLOC(ndr, r->driver_name);
10340 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10342 r->driver_name = NULL;
10344 ndr->flags = _flags_save_string;
10347 uint32_t _flags_save_string = ndr->flags;
10348 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10349 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10350 if (_ptr_architecture) {
10351 NDR_PULL_ALLOC(ndr, r->architecture);
10352 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
10354 r->architecture = NULL;
10356 ndr->flags = _flags_save_string;
10359 uint32_t _flags_save_string = ndr->flags;
10360 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10361 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10362 if (_ptr_driver_path) {
10363 NDR_PULL_ALLOC(ndr, r->driver_path);
10364 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
10366 r->driver_path = NULL;
10368 ndr->flags = _flags_save_string;
10371 uint32_t _flags_save_string = ndr->flags;
10372 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10373 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10374 if (_ptr_data_file) {
10375 NDR_PULL_ALLOC(ndr, r->data_file);
10376 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
10378 r->data_file = NULL;
10380 ndr->flags = _flags_save_string;
10383 uint32_t _flags_save_string = ndr->flags;
10384 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10385 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10386 if (_ptr_config_file) {
10387 NDR_PULL_ALLOC(ndr, r->config_file);
10388 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
10390 r->config_file = NULL;
10392 ndr->flags = _flags_save_string;
10395 if (ndr_flags & NDR_BUFFERS) {
10397 uint32_t _flags_save_string = ndr->flags;
10398 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10399 if (r->driver_name) {
10400 uint32_t _relative_save_offset;
10401 _relative_save_offset = ndr->offset;
10402 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10403 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10404 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10405 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10406 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10407 ndr->offset = _relative_save_offset;
10409 ndr->flags = _flags_save_string;
10412 uint32_t _flags_save_string = ndr->flags;
10413 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10414 if (r->architecture) {
10415 uint32_t _relative_save_offset;
10416 _relative_save_offset = ndr->offset;
10417 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10418 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10419 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10420 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10421 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10422 ndr->offset = _relative_save_offset;
10424 ndr->flags = _flags_save_string;
10427 uint32_t _flags_save_string = ndr->flags;
10428 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10429 if (r->driver_path) {
10430 uint32_t _relative_save_offset;
10431 _relative_save_offset = ndr->offset;
10432 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
10433 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10434 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10435 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
10436 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10437 ndr->offset = _relative_save_offset;
10439 ndr->flags = _flags_save_string;
10442 uint32_t _flags_save_string = ndr->flags;
10443 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10444 if (r->data_file) {
10445 uint32_t _relative_save_offset;
10446 _relative_save_offset = ndr->offset;
10447 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
10448 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10449 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10450 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
10451 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10452 ndr->offset = _relative_save_offset;
10454 ndr->flags = _flags_save_string;
10457 uint32_t _flags_save_string = ndr->flags;
10458 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10459 if (r->config_file) {
10460 uint32_t _relative_save_offset;
10461 _relative_save_offset = ndr->offset;
10462 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
10463 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10464 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10465 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
10466 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10467 ndr->offset = _relative_save_offset;
10469 ndr->flags = _flags_save_string;
10472 return NDR_ERR_SUCCESS;
10475 _PUBLIC_ void ndr_print_spoolss_DriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo2 *r)
10477 ndr_print_struct(ndr, name, "spoolss_DriverInfo2");
10479 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10480 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10482 if (r->driver_name) {
10483 ndr_print_string(ndr, "driver_name", r->driver_name);
10486 ndr_print_ptr(ndr, "architecture", r->architecture);
10488 if (r->architecture) {
10489 ndr_print_string(ndr, "architecture", r->architecture);
10492 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10494 if (r->driver_path) {
10495 ndr_print_string(ndr, "driver_path", r->driver_path);
10498 ndr_print_ptr(ndr, "data_file", r->data_file);
10500 if (r->data_file) {
10501 ndr_print_string(ndr, "data_file", r->data_file);
10504 ndr_print_ptr(ndr, "config_file", r->config_file);
10506 if (r->config_file) {
10507 ndr_print_string(ndr, "config_file", r->config_file);
10513 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2 *r, struct smb_iconv_convenience *ic, int flags)
10515 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo2, ic);
10518 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo3 *r)
10520 if (ndr_flags & NDR_SCALARS) {
10521 NDR_CHECK(ndr_push_align(ndr, 4));
10522 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10524 uint32_t _flags_save_string = ndr->flags;
10525 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10526 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10527 ndr->flags = _flags_save_string;
10530 uint32_t _flags_save_string = ndr->flags;
10531 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10532 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
10533 ndr->flags = _flags_save_string;
10536 uint32_t _flags_save_string = ndr->flags;
10537 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10538 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
10539 ndr->flags = _flags_save_string;
10542 uint32_t _flags_save_string = ndr->flags;
10543 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10544 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
10545 ndr->flags = _flags_save_string;
10548 uint32_t _flags_save_string = ndr->flags;
10549 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10550 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
10551 ndr->flags = _flags_save_string;
10554 uint32_t _flags_save_string = ndr->flags;
10555 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10556 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
10557 ndr->flags = _flags_save_string;
10560 uint32_t _flags_save_string_array = ndr->flags;
10561 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10562 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
10563 ndr->flags = _flags_save_string_array;
10566 uint32_t _flags_save_string = ndr->flags;
10567 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10568 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
10569 ndr->flags = _flags_save_string;
10572 uint32_t _flags_save_string = ndr->flags;
10573 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10574 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
10575 ndr->flags = _flags_save_string;
10578 if (ndr_flags & NDR_BUFFERS) {
10580 uint32_t _flags_save_string = ndr->flags;
10581 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10582 if (r->driver_name) {
10583 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
10584 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10585 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
10587 ndr->flags = _flags_save_string;
10590 uint32_t _flags_save_string = ndr->flags;
10591 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10592 if (r->architecture) {
10593 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
10594 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
10595 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
10597 ndr->flags = _flags_save_string;
10600 uint32_t _flags_save_string = ndr->flags;
10601 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10602 if (r->driver_path) {
10603 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
10604 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
10605 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
10607 ndr->flags = _flags_save_string;
10610 uint32_t _flags_save_string = ndr->flags;
10611 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10612 if (r->data_file) {
10613 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
10614 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
10615 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
10617 ndr->flags = _flags_save_string;
10620 uint32_t _flags_save_string = ndr->flags;
10621 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10622 if (r->config_file) {
10623 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
10624 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
10625 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
10627 ndr->flags = _flags_save_string;
10630 uint32_t _flags_save_string = ndr->flags;
10631 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10632 if (r->help_file) {
10633 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
10634 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
10635 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
10637 ndr->flags = _flags_save_string;
10640 uint32_t _flags_save_string_array = ndr->flags;
10641 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10642 if (r->dependent_files) {
10643 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
10644 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
10645 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
10647 ndr->flags = _flags_save_string_array;
10650 uint32_t _flags_save_string = ndr->flags;
10651 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10652 if (r->monitor_name) {
10653 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
10654 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
10655 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
10657 ndr->flags = _flags_save_string;
10660 uint32_t _flags_save_string = ndr->flags;
10661 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10662 if (r->default_datatype) {
10663 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
10664 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
10665 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
10667 ndr->flags = _flags_save_string;
10670 return NDR_ERR_SUCCESS;
10673 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo3 *r)
10675 uint32_t _ptr_driver_name;
10676 TALLOC_CTX *_mem_save_driver_name_0;
10677 uint32_t _ptr_architecture;
10678 TALLOC_CTX *_mem_save_architecture_0;
10679 uint32_t _ptr_driver_path;
10680 TALLOC_CTX *_mem_save_driver_path_0;
10681 uint32_t _ptr_data_file;
10682 TALLOC_CTX *_mem_save_data_file_0;
10683 uint32_t _ptr_config_file;
10684 TALLOC_CTX *_mem_save_config_file_0;
10685 uint32_t _ptr_help_file;
10686 TALLOC_CTX *_mem_save_help_file_0;
10687 uint32_t _ptr_dependent_files;
10688 TALLOC_CTX *_mem_save_dependent_files_0;
10689 uint32_t _ptr_monitor_name;
10690 TALLOC_CTX *_mem_save_monitor_name_0;
10691 uint32_t _ptr_default_datatype;
10692 TALLOC_CTX *_mem_save_default_datatype_0;
10693 if (ndr_flags & NDR_SCALARS) {
10694 NDR_CHECK(ndr_pull_align(ndr, 4));
10695 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10697 uint32_t _flags_save_string = ndr->flags;
10698 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10699 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10700 if (_ptr_driver_name) {
10701 NDR_PULL_ALLOC(ndr, r->driver_name);
10702 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10704 r->driver_name = NULL;
10706 ndr->flags = _flags_save_string;
10709 uint32_t _flags_save_string = ndr->flags;
10710 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10711 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10712 if (_ptr_architecture) {
10713 NDR_PULL_ALLOC(ndr, r->architecture);
10714 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
10716 r->architecture = NULL;
10718 ndr->flags = _flags_save_string;
10721 uint32_t _flags_save_string = ndr->flags;
10722 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10723 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10724 if (_ptr_driver_path) {
10725 NDR_PULL_ALLOC(ndr, r->driver_path);
10726 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
10728 r->driver_path = NULL;
10730 ndr->flags = _flags_save_string;
10733 uint32_t _flags_save_string = ndr->flags;
10734 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10735 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10736 if (_ptr_data_file) {
10737 NDR_PULL_ALLOC(ndr, r->data_file);
10738 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
10740 r->data_file = NULL;
10742 ndr->flags = _flags_save_string;
10745 uint32_t _flags_save_string = ndr->flags;
10746 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10747 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10748 if (_ptr_config_file) {
10749 NDR_PULL_ALLOC(ndr, r->config_file);
10750 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
10752 r->config_file = NULL;
10754 ndr->flags = _flags_save_string;
10757 uint32_t _flags_save_string = ndr->flags;
10758 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10759 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
10760 if (_ptr_help_file) {
10761 NDR_PULL_ALLOC(ndr, r->help_file);
10762 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
10764 r->help_file = NULL;
10766 ndr->flags = _flags_save_string;
10769 uint32_t _flags_save_string_array = ndr->flags;
10770 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10771 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
10772 if (_ptr_dependent_files) {
10773 NDR_PULL_ALLOC(ndr, r->dependent_files);
10774 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
10776 r->dependent_files = NULL;
10778 ndr->flags = _flags_save_string_array;
10781 uint32_t _flags_save_string = ndr->flags;
10782 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10783 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
10784 if (_ptr_monitor_name) {
10785 NDR_PULL_ALLOC(ndr, r->monitor_name);
10786 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
10788 r->monitor_name = NULL;
10790 ndr->flags = _flags_save_string;
10793 uint32_t _flags_save_string = ndr->flags;
10794 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10795 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
10796 if (_ptr_default_datatype) {
10797 NDR_PULL_ALLOC(ndr, r->default_datatype);
10798 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
10800 r->default_datatype = NULL;
10802 ndr->flags = _flags_save_string;
10805 if (ndr_flags & NDR_BUFFERS) {
10807 uint32_t _flags_save_string = ndr->flags;
10808 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10809 if (r->driver_name) {
10810 uint32_t _relative_save_offset;
10811 _relative_save_offset = ndr->offset;
10812 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10813 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10814 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10815 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10816 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10817 ndr->offset = _relative_save_offset;
10819 ndr->flags = _flags_save_string;
10822 uint32_t _flags_save_string = ndr->flags;
10823 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10824 if (r->architecture) {
10825 uint32_t _relative_save_offset;
10826 _relative_save_offset = ndr->offset;
10827 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10828 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10829 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10830 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10831 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10832 ndr->offset = _relative_save_offset;
10834 ndr->flags = _flags_save_string;
10837 uint32_t _flags_save_string = ndr->flags;
10838 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10839 if (r->driver_path) {
10840 uint32_t _relative_save_offset;
10841 _relative_save_offset = ndr->offset;
10842 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
10843 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10844 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10845 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
10846 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10847 ndr->offset = _relative_save_offset;
10849 ndr->flags = _flags_save_string;
10852 uint32_t _flags_save_string = ndr->flags;
10853 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10854 if (r->data_file) {
10855 uint32_t _relative_save_offset;
10856 _relative_save_offset = ndr->offset;
10857 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
10858 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10859 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10860 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
10861 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10862 ndr->offset = _relative_save_offset;
10864 ndr->flags = _flags_save_string;
10867 uint32_t _flags_save_string = ndr->flags;
10868 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10869 if (r->config_file) {
10870 uint32_t _relative_save_offset;
10871 _relative_save_offset = ndr->offset;
10872 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
10873 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10874 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10875 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
10876 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10877 ndr->offset = _relative_save_offset;
10879 ndr->flags = _flags_save_string;
10882 uint32_t _flags_save_string = ndr->flags;
10883 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10884 if (r->help_file) {
10885 uint32_t _relative_save_offset;
10886 _relative_save_offset = ndr->offset;
10887 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
10888 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10889 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
10890 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
10891 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
10892 ndr->offset = _relative_save_offset;
10894 ndr->flags = _flags_save_string;
10897 uint32_t _flags_save_string_array = ndr->flags;
10898 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10899 if (r->dependent_files) {
10900 uint32_t _relative_save_offset;
10901 _relative_save_offset = ndr->offset;
10902 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
10903 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
10904 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
10905 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
10906 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
10907 ndr->offset = _relative_save_offset;
10909 ndr->flags = _flags_save_string_array;
10912 uint32_t _flags_save_string = ndr->flags;
10913 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10914 if (r->monitor_name) {
10915 uint32_t _relative_save_offset;
10916 _relative_save_offset = ndr->offset;
10917 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
10918 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10919 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
10920 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
10921 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
10922 ndr->offset = _relative_save_offset;
10924 ndr->flags = _flags_save_string;
10927 uint32_t _flags_save_string = ndr->flags;
10928 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10929 if (r->default_datatype) {
10930 uint32_t _relative_save_offset;
10931 _relative_save_offset = ndr->offset;
10932 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
10933 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
10934 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
10935 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
10936 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
10937 ndr->offset = _relative_save_offset;
10939 ndr->flags = _flags_save_string;
10942 return NDR_ERR_SUCCESS;
10945 _PUBLIC_ void ndr_print_spoolss_DriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo3 *r)
10947 ndr_print_struct(ndr, name, "spoolss_DriverInfo3");
10949 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10950 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10952 if (r->driver_name) {
10953 ndr_print_string(ndr, "driver_name", r->driver_name);
10956 ndr_print_ptr(ndr, "architecture", r->architecture);
10958 if (r->architecture) {
10959 ndr_print_string(ndr, "architecture", r->architecture);
10962 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10964 if (r->driver_path) {
10965 ndr_print_string(ndr, "driver_path", r->driver_path);
10968 ndr_print_ptr(ndr, "data_file", r->data_file);
10970 if (r->data_file) {
10971 ndr_print_string(ndr, "data_file", r->data_file);
10974 ndr_print_ptr(ndr, "config_file", r->config_file);
10976 if (r->config_file) {
10977 ndr_print_string(ndr, "config_file", r->config_file);
10980 ndr_print_ptr(ndr, "help_file", r->help_file);
10982 if (r->help_file) {
10983 ndr_print_string(ndr, "help_file", r->help_file);
10986 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
10988 if (r->dependent_files) {
10989 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
10992 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
10994 if (r->monitor_name) {
10995 ndr_print_string(ndr, "monitor_name", r->monitor_name);
10998 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
11000 if (r->default_datatype) {
11001 ndr_print_string(ndr, "default_datatype", r->default_datatype);
11007 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3 *r, struct smb_iconv_convenience *ic, int flags)
11009 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo3, ic);
11012 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo4 *r)
11014 if (ndr_flags & NDR_SCALARS) {
11015 NDR_CHECK(ndr_push_align(ndr, 4));
11016 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11018 uint32_t _flags_save_string = ndr->flags;
11019 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11020 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11021 ndr->flags = _flags_save_string;
11024 uint32_t _flags_save_string = ndr->flags;
11025 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11026 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11027 ndr->flags = _flags_save_string;
11030 uint32_t _flags_save_string = ndr->flags;
11031 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11032 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11033 ndr->flags = _flags_save_string;
11036 uint32_t _flags_save_string = ndr->flags;
11037 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11038 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11039 ndr->flags = _flags_save_string;
11042 uint32_t _flags_save_string = ndr->flags;
11043 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11044 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11045 ndr->flags = _flags_save_string;
11048 uint32_t _flags_save_string = ndr->flags;
11049 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11050 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
11051 ndr->flags = _flags_save_string;
11054 uint32_t _flags_save_string_array = ndr->flags;
11055 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11056 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
11057 ndr->flags = _flags_save_string_array;
11060 uint32_t _flags_save_string = ndr->flags;
11061 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11062 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
11063 ndr->flags = _flags_save_string;
11066 uint32_t _flags_save_string = ndr->flags;
11067 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11068 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
11069 ndr->flags = _flags_save_string;
11072 uint32_t _flags_save_string_array = ndr->flags;
11073 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11074 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
11075 ndr->flags = _flags_save_string_array;
11078 if (ndr_flags & NDR_BUFFERS) {
11080 uint32_t _flags_save_string = ndr->flags;
11081 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11082 if (r->driver_name) {
11083 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
11084 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11085 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
11087 ndr->flags = _flags_save_string;
11090 uint32_t _flags_save_string = ndr->flags;
11091 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11092 if (r->architecture) {
11093 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
11094 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11095 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
11097 ndr->flags = _flags_save_string;
11100 uint32_t _flags_save_string = ndr->flags;
11101 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11102 if (r->driver_path) {
11103 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
11104 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11105 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
11107 ndr->flags = _flags_save_string;
11110 uint32_t _flags_save_string = ndr->flags;
11111 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11112 if (r->data_file) {
11113 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
11114 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11115 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
11117 ndr->flags = _flags_save_string;
11120 uint32_t _flags_save_string = ndr->flags;
11121 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11122 if (r->config_file) {
11123 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
11124 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11125 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
11127 ndr->flags = _flags_save_string;
11130 uint32_t _flags_save_string = ndr->flags;
11131 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11132 if (r->help_file) {
11133 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
11134 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
11135 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
11137 ndr->flags = _flags_save_string;
11140 uint32_t _flags_save_string_array = ndr->flags;
11141 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11142 if (r->dependent_files) {
11143 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
11144 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
11145 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
11147 ndr->flags = _flags_save_string_array;
11150 uint32_t _flags_save_string = ndr->flags;
11151 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11152 if (r->monitor_name) {
11153 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
11154 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
11155 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
11157 ndr->flags = _flags_save_string;
11160 uint32_t _flags_save_string = ndr->flags;
11161 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11162 if (r->default_datatype) {
11163 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
11164 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
11165 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
11167 ndr->flags = _flags_save_string;
11170 uint32_t _flags_save_string_array = ndr->flags;
11171 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11172 if (r->previous_names) {
11173 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->previous_names));
11174 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
11175 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->previous_names));
11177 ndr->flags = _flags_save_string_array;
11180 return NDR_ERR_SUCCESS;
11183 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo4 *r)
11185 uint32_t _ptr_driver_name;
11186 TALLOC_CTX *_mem_save_driver_name_0;
11187 uint32_t _ptr_architecture;
11188 TALLOC_CTX *_mem_save_architecture_0;
11189 uint32_t _ptr_driver_path;
11190 TALLOC_CTX *_mem_save_driver_path_0;
11191 uint32_t _ptr_data_file;
11192 TALLOC_CTX *_mem_save_data_file_0;
11193 uint32_t _ptr_config_file;
11194 TALLOC_CTX *_mem_save_config_file_0;
11195 uint32_t _ptr_help_file;
11196 TALLOC_CTX *_mem_save_help_file_0;
11197 uint32_t _ptr_dependent_files;
11198 TALLOC_CTX *_mem_save_dependent_files_0;
11199 uint32_t _ptr_monitor_name;
11200 TALLOC_CTX *_mem_save_monitor_name_0;
11201 uint32_t _ptr_default_datatype;
11202 TALLOC_CTX *_mem_save_default_datatype_0;
11203 uint32_t _ptr_previous_names;
11204 TALLOC_CTX *_mem_save_previous_names_0;
11205 if (ndr_flags & NDR_SCALARS) {
11206 NDR_CHECK(ndr_pull_align(ndr, 4));
11207 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11209 uint32_t _flags_save_string = ndr->flags;
11210 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11211 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11212 if (_ptr_driver_name) {
11213 NDR_PULL_ALLOC(ndr, r->driver_name);
11214 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11216 r->driver_name = NULL;
11218 ndr->flags = _flags_save_string;
11221 uint32_t _flags_save_string = ndr->flags;
11222 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11223 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11224 if (_ptr_architecture) {
11225 NDR_PULL_ALLOC(ndr, r->architecture);
11226 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11228 r->architecture = NULL;
11230 ndr->flags = _flags_save_string;
11233 uint32_t _flags_save_string = ndr->flags;
11234 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11235 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11236 if (_ptr_driver_path) {
11237 NDR_PULL_ALLOC(ndr, r->driver_path);
11238 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11240 r->driver_path = NULL;
11242 ndr->flags = _flags_save_string;
11245 uint32_t _flags_save_string = ndr->flags;
11246 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11247 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11248 if (_ptr_data_file) {
11249 NDR_PULL_ALLOC(ndr, r->data_file);
11250 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11252 r->data_file = NULL;
11254 ndr->flags = _flags_save_string;
11257 uint32_t _flags_save_string = ndr->flags;
11258 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11259 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11260 if (_ptr_config_file) {
11261 NDR_PULL_ALLOC(ndr, r->config_file);
11262 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11264 r->config_file = NULL;
11266 ndr->flags = _flags_save_string;
11269 uint32_t _flags_save_string = ndr->flags;
11270 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11271 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
11272 if (_ptr_help_file) {
11273 NDR_PULL_ALLOC(ndr, r->help_file);
11274 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
11276 r->help_file = NULL;
11278 ndr->flags = _flags_save_string;
11281 uint32_t _flags_save_string_array = ndr->flags;
11282 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11283 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
11284 if (_ptr_dependent_files) {
11285 NDR_PULL_ALLOC(ndr, r->dependent_files);
11286 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
11288 r->dependent_files = NULL;
11290 ndr->flags = _flags_save_string_array;
11293 uint32_t _flags_save_string = ndr->flags;
11294 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11295 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
11296 if (_ptr_monitor_name) {
11297 NDR_PULL_ALLOC(ndr, r->monitor_name);
11298 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
11300 r->monitor_name = NULL;
11302 ndr->flags = _flags_save_string;
11305 uint32_t _flags_save_string = ndr->flags;
11306 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11307 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
11308 if (_ptr_default_datatype) {
11309 NDR_PULL_ALLOC(ndr, r->default_datatype);
11310 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
11312 r->default_datatype = NULL;
11314 ndr->flags = _flags_save_string;
11317 uint32_t _flags_save_string_array = ndr->flags;
11318 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11319 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
11320 if (_ptr_previous_names) {
11321 NDR_PULL_ALLOC(ndr, r->previous_names);
11322 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
11324 r->previous_names = NULL;
11326 ndr->flags = _flags_save_string_array;
11329 if (ndr_flags & NDR_BUFFERS) {
11331 uint32_t _flags_save_string = ndr->flags;
11332 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11333 if (r->driver_name) {
11334 uint32_t _relative_save_offset;
11335 _relative_save_offset = ndr->offset;
11336 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11337 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11338 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11339 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11340 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11341 ndr->offset = _relative_save_offset;
11343 ndr->flags = _flags_save_string;
11346 uint32_t _flags_save_string = ndr->flags;
11347 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11348 if (r->architecture) {
11349 uint32_t _relative_save_offset;
11350 _relative_save_offset = ndr->offset;
11351 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11352 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11353 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11354 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11355 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11356 ndr->offset = _relative_save_offset;
11358 ndr->flags = _flags_save_string;
11361 uint32_t _flags_save_string = ndr->flags;
11362 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11363 if (r->driver_path) {
11364 uint32_t _relative_save_offset;
11365 _relative_save_offset = ndr->offset;
11366 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11367 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11368 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11369 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11370 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11371 ndr->offset = _relative_save_offset;
11373 ndr->flags = _flags_save_string;
11376 uint32_t _flags_save_string = ndr->flags;
11377 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11378 if (r->data_file) {
11379 uint32_t _relative_save_offset;
11380 _relative_save_offset = ndr->offset;
11381 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11382 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11383 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11384 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11385 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11386 ndr->offset = _relative_save_offset;
11388 ndr->flags = _flags_save_string;
11391 uint32_t _flags_save_string = ndr->flags;
11392 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11393 if (r->config_file) {
11394 uint32_t _relative_save_offset;
11395 _relative_save_offset = ndr->offset;
11396 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11397 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11398 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11399 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11400 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11401 ndr->offset = _relative_save_offset;
11403 ndr->flags = _flags_save_string;
11406 uint32_t _flags_save_string = ndr->flags;
11407 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11408 if (r->help_file) {
11409 uint32_t _relative_save_offset;
11410 _relative_save_offset = ndr->offset;
11411 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
11412 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11413 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
11414 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
11415 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
11416 ndr->offset = _relative_save_offset;
11418 ndr->flags = _flags_save_string;
11421 uint32_t _flags_save_string_array = ndr->flags;
11422 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11423 if (r->dependent_files) {
11424 uint32_t _relative_save_offset;
11425 _relative_save_offset = ndr->offset;
11426 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
11427 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
11428 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
11429 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
11430 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
11431 ndr->offset = _relative_save_offset;
11433 ndr->flags = _flags_save_string_array;
11436 uint32_t _flags_save_string = ndr->flags;
11437 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11438 if (r->monitor_name) {
11439 uint32_t _relative_save_offset;
11440 _relative_save_offset = ndr->offset;
11441 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
11442 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11443 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
11444 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
11445 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
11446 ndr->offset = _relative_save_offset;
11448 ndr->flags = _flags_save_string;
11451 uint32_t _flags_save_string = ndr->flags;
11452 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11453 if (r->default_datatype) {
11454 uint32_t _relative_save_offset;
11455 _relative_save_offset = ndr->offset;
11456 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
11457 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11458 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
11459 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
11460 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
11461 ndr->offset = _relative_save_offset;
11463 ndr->flags = _flags_save_string;
11466 uint32_t _flags_save_string_array = ndr->flags;
11467 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11468 if (r->previous_names) {
11469 uint32_t _relative_save_offset;
11470 _relative_save_offset = ndr->offset;
11471 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
11472 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
11473 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
11474 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
11475 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
11476 ndr->offset = _relative_save_offset;
11478 ndr->flags = _flags_save_string_array;
11481 return NDR_ERR_SUCCESS;
11484 _PUBLIC_ void ndr_print_spoolss_DriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo4 *r)
11486 ndr_print_struct(ndr, name, "spoolss_DriverInfo4");
11488 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11489 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11491 if (r->driver_name) {
11492 ndr_print_string(ndr, "driver_name", r->driver_name);
11495 ndr_print_ptr(ndr, "architecture", r->architecture);
11497 if (r->architecture) {
11498 ndr_print_string(ndr, "architecture", r->architecture);
11501 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11503 if (r->driver_path) {
11504 ndr_print_string(ndr, "driver_path", r->driver_path);
11507 ndr_print_ptr(ndr, "data_file", r->data_file);
11509 if (r->data_file) {
11510 ndr_print_string(ndr, "data_file", r->data_file);
11513 ndr_print_ptr(ndr, "config_file", r->config_file);
11515 if (r->config_file) {
11516 ndr_print_string(ndr, "config_file", r->config_file);
11519 ndr_print_ptr(ndr, "help_file", r->help_file);
11521 if (r->help_file) {
11522 ndr_print_string(ndr, "help_file", r->help_file);
11525 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
11527 if (r->dependent_files) {
11528 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
11531 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
11533 if (r->monitor_name) {
11534 ndr_print_string(ndr, "monitor_name", r->monitor_name);
11537 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
11539 if (r->default_datatype) {
11540 ndr_print_string(ndr, "default_datatype", r->default_datatype);
11543 ndr_print_ptr(ndr, "previous_names", r->previous_names);
11545 if (r->previous_names) {
11546 ndr_print_string_array(ndr, "previous_names", r->previous_names);
11552 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4 *r, struct smb_iconv_convenience *ic, int flags)
11554 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo4, ic);
11557 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo5 *r)
11559 if (ndr_flags & NDR_SCALARS) {
11560 NDR_CHECK(ndr_push_align(ndr, 4));
11561 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11563 uint32_t _flags_save_string = ndr->flags;
11564 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11565 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11566 ndr->flags = _flags_save_string;
11569 uint32_t _flags_save_string = ndr->flags;
11570 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11571 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11572 ndr->flags = _flags_save_string;
11575 uint32_t _flags_save_string = ndr->flags;
11576 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11577 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11578 ndr->flags = _flags_save_string;
11581 uint32_t _flags_save_string = ndr->flags;
11582 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11583 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11584 ndr->flags = _flags_save_string;
11587 uint32_t _flags_save_string = ndr->flags;
11588 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11589 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11590 ndr->flags = _flags_save_string;
11592 NDR_CHECK(ndr_push_spoolss_DriverAttributes(ndr, NDR_SCALARS, r->driver_attributes));
11593 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->config_version));
11594 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_version));
11596 if (ndr_flags & NDR_BUFFERS) {
11598 uint32_t _flags_save_string = ndr->flags;
11599 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11600 if (r->driver_name) {
11601 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
11602 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11603 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
11605 ndr->flags = _flags_save_string;
11608 uint32_t _flags_save_string = ndr->flags;
11609 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11610 if (r->architecture) {
11611 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
11612 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11613 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
11615 ndr->flags = _flags_save_string;
11618 uint32_t _flags_save_string = ndr->flags;
11619 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11620 if (r->driver_path) {
11621 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
11622 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11623 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
11625 ndr->flags = _flags_save_string;
11628 uint32_t _flags_save_string = ndr->flags;
11629 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11630 if (r->data_file) {
11631 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
11632 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11633 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
11635 ndr->flags = _flags_save_string;
11638 uint32_t _flags_save_string = ndr->flags;
11639 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11640 if (r->config_file) {
11641 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
11642 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11643 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
11645 ndr->flags = _flags_save_string;
11648 return NDR_ERR_SUCCESS;
11651 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo5 *r)
11653 uint32_t _ptr_driver_name;
11654 TALLOC_CTX *_mem_save_driver_name_0;
11655 uint32_t _ptr_architecture;
11656 TALLOC_CTX *_mem_save_architecture_0;
11657 uint32_t _ptr_driver_path;
11658 TALLOC_CTX *_mem_save_driver_path_0;
11659 uint32_t _ptr_data_file;
11660 TALLOC_CTX *_mem_save_data_file_0;
11661 uint32_t _ptr_config_file;
11662 TALLOC_CTX *_mem_save_config_file_0;
11663 if (ndr_flags & NDR_SCALARS) {
11664 NDR_CHECK(ndr_pull_align(ndr, 4));
11665 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11667 uint32_t _flags_save_string = ndr->flags;
11668 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11669 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11670 if (_ptr_driver_name) {
11671 NDR_PULL_ALLOC(ndr, r->driver_name);
11672 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11674 r->driver_name = NULL;
11676 ndr->flags = _flags_save_string;
11679 uint32_t _flags_save_string = ndr->flags;
11680 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11681 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11682 if (_ptr_architecture) {
11683 NDR_PULL_ALLOC(ndr, r->architecture);
11684 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11686 r->architecture = NULL;
11688 ndr->flags = _flags_save_string;
11691 uint32_t _flags_save_string = ndr->flags;
11692 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11693 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11694 if (_ptr_driver_path) {
11695 NDR_PULL_ALLOC(ndr, r->driver_path);
11696 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11698 r->driver_path = NULL;
11700 ndr->flags = _flags_save_string;
11703 uint32_t _flags_save_string = ndr->flags;
11704 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11705 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11706 if (_ptr_data_file) {
11707 NDR_PULL_ALLOC(ndr, r->data_file);
11708 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11710 r->data_file = NULL;
11712 ndr->flags = _flags_save_string;
11715 uint32_t _flags_save_string = ndr->flags;
11716 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11717 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11718 if (_ptr_config_file) {
11719 NDR_PULL_ALLOC(ndr, r->config_file);
11720 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11722 r->config_file = NULL;
11724 ndr->flags = _flags_save_string;
11726 NDR_CHECK(ndr_pull_spoolss_DriverAttributes(ndr, NDR_SCALARS, &r->driver_attributes));
11727 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->config_version));
11728 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_version));
11730 if (ndr_flags & NDR_BUFFERS) {
11732 uint32_t _flags_save_string = ndr->flags;
11733 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11734 if (r->driver_name) {
11735 uint32_t _relative_save_offset;
11736 _relative_save_offset = ndr->offset;
11737 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11738 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11739 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11740 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11741 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11742 ndr->offset = _relative_save_offset;
11744 ndr->flags = _flags_save_string;
11747 uint32_t _flags_save_string = ndr->flags;
11748 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11749 if (r->architecture) {
11750 uint32_t _relative_save_offset;
11751 _relative_save_offset = ndr->offset;
11752 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11753 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11754 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11755 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11756 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11757 ndr->offset = _relative_save_offset;
11759 ndr->flags = _flags_save_string;
11762 uint32_t _flags_save_string = ndr->flags;
11763 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11764 if (r->driver_path) {
11765 uint32_t _relative_save_offset;
11766 _relative_save_offset = ndr->offset;
11767 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11768 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11769 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11770 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11771 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11772 ndr->offset = _relative_save_offset;
11774 ndr->flags = _flags_save_string;
11777 uint32_t _flags_save_string = ndr->flags;
11778 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11779 if (r->data_file) {
11780 uint32_t _relative_save_offset;
11781 _relative_save_offset = ndr->offset;
11782 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11783 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11784 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11785 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11786 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11787 ndr->offset = _relative_save_offset;
11789 ndr->flags = _flags_save_string;
11792 uint32_t _flags_save_string = ndr->flags;
11793 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11794 if (r->config_file) {
11795 uint32_t _relative_save_offset;
11796 _relative_save_offset = ndr->offset;
11797 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11798 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11799 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11800 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11801 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11802 ndr->offset = _relative_save_offset;
11804 ndr->flags = _flags_save_string;
11807 return NDR_ERR_SUCCESS;
11810 _PUBLIC_ void ndr_print_spoolss_DriverInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo5 *r)
11812 ndr_print_struct(ndr, name, "spoolss_DriverInfo5");
11814 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11815 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11817 if (r->driver_name) {
11818 ndr_print_string(ndr, "driver_name", r->driver_name);
11821 ndr_print_ptr(ndr, "architecture", r->architecture);
11823 if (r->architecture) {
11824 ndr_print_string(ndr, "architecture", r->architecture);
11827 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11829 if (r->driver_path) {
11830 ndr_print_string(ndr, "driver_path", r->driver_path);
11833 ndr_print_ptr(ndr, "data_file", r->data_file);
11835 if (r->data_file) {
11836 ndr_print_string(ndr, "data_file", r->data_file);
11839 ndr_print_ptr(ndr, "config_file", r->config_file);
11841 if (r->config_file) {
11842 ndr_print_string(ndr, "config_file", r->config_file);
11845 ndr_print_spoolss_DriverAttributes(ndr, "driver_attributes", r->driver_attributes);
11846 ndr_print_uint32(ndr, "config_version", r->config_version);
11847 ndr_print_uint32(ndr, "driver_version", r->driver_version);
11851 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5 *r, struct smb_iconv_convenience *ic, int flags)
11853 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo5, ic);
11856 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo6 *r)
11858 if (ndr_flags & NDR_SCALARS) {
11859 NDR_CHECK(ndr_push_align(ndr, 8));
11860 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11862 uint32_t _flags_save_string = ndr->flags;
11863 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11864 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11865 ndr->flags = _flags_save_string;
11868 uint32_t _flags_save_string = ndr->flags;
11869 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11870 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11871 ndr->flags = _flags_save_string;
11874 uint32_t _flags_save_string = ndr->flags;
11875 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11876 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11877 ndr->flags = _flags_save_string;
11880 uint32_t _flags_save_string = ndr->flags;
11881 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11882 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11883 ndr->flags = _flags_save_string;
11886 uint32_t _flags_save_string = ndr->flags;
11887 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11888 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11889 ndr->flags = _flags_save_string;
11892 uint32_t _flags_save_string = ndr->flags;
11893 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11894 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
11895 ndr->flags = _flags_save_string;
11898 uint32_t _flags_save_string_array = ndr->flags;
11899 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11900 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
11901 ndr->flags = _flags_save_string_array;
11904 uint32_t _flags_save_string = ndr->flags;
11905 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11906 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
11907 ndr->flags = _flags_save_string;
11910 uint32_t _flags_save_string = ndr->flags;
11911 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11912 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
11913 ndr->flags = _flags_save_string;
11916 uint32_t _flags_save_string_array = ndr->flags;
11917 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11918 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
11919 ndr->flags = _flags_save_string_array;
11921 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
11922 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
11924 uint32_t _flags_save_string = ndr->flags;
11925 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11926 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
11927 ndr->flags = _flags_save_string;
11930 uint32_t _flags_save_string = ndr->flags;
11931 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11932 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
11933 ndr->flags = _flags_save_string;
11936 uint32_t _flags_save_string = ndr->flags;
11937 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11938 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
11939 ndr->flags = _flags_save_string;
11942 uint32_t _flags_save_string = ndr->flags;
11943 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11944 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
11945 ndr->flags = _flags_save_string;
11948 if (ndr_flags & NDR_BUFFERS) {
11950 uint32_t _flags_save_string = ndr->flags;
11951 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11952 if (r->driver_name) {
11953 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
11954 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11955 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
11957 ndr->flags = _flags_save_string;
11960 uint32_t _flags_save_string = ndr->flags;
11961 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11962 if (r->architecture) {
11963 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
11964 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11965 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
11967 ndr->flags = _flags_save_string;
11970 uint32_t _flags_save_string = ndr->flags;
11971 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11972 if (r->driver_path) {
11973 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
11974 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11975 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
11977 ndr->flags = _flags_save_string;
11980 uint32_t _flags_save_string = ndr->flags;
11981 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11982 if (r->data_file) {
11983 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
11984 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11985 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
11987 ndr->flags = _flags_save_string;
11990 uint32_t _flags_save_string = ndr->flags;
11991 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11992 if (r->config_file) {
11993 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
11994 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11995 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
11997 ndr->flags = _flags_save_string;
12000 uint32_t _flags_save_string = ndr->flags;
12001 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12002 if (r->help_file) {
12003 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
12004 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
12005 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
12007 ndr->flags = _flags_save_string;
12010 uint32_t _flags_save_string_array = ndr->flags;
12011 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12012 if (r->dependent_files) {
12013 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
12014 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
12015 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
12017 ndr->flags = _flags_save_string_array;
12020 uint32_t _flags_save_string = ndr->flags;
12021 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12022 if (r->monitor_name) {
12023 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
12024 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12025 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
12027 ndr->flags = _flags_save_string;
12030 uint32_t _flags_save_string = ndr->flags;
12031 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12032 if (r->default_datatype) {
12033 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
12034 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
12035 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
12037 ndr->flags = _flags_save_string;
12040 uint32_t _flags_save_string_array = ndr->flags;
12041 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12042 if (r->previous_names) {
12043 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->previous_names));
12044 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
12045 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->previous_names));
12047 ndr->flags = _flags_save_string_array;
12050 uint32_t _flags_save_string = ndr->flags;
12051 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12052 if (r->manufacturer_name) {
12053 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_name));
12054 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
12055 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_name));
12057 ndr->flags = _flags_save_string;
12060 uint32_t _flags_save_string = ndr->flags;
12061 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12062 if (r->manufacturer_url) {
12063 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_url));
12064 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
12065 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_url));
12067 ndr->flags = _flags_save_string;
12070 uint32_t _flags_save_string = ndr->flags;
12071 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12072 if (r->hardware_id) {
12073 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->hardware_id));
12074 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
12075 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->hardware_id));
12077 ndr->flags = _flags_save_string;
12080 uint32_t _flags_save_string = ndr->flags;
12081 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12083 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->provider));
12084 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
12085 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->provider));
12087 ndr->flags = _flags_save_string;
12090 return NDR_ERR_SUCCESS;
12093 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo6 *r)
12095 uint32_t _ptr_driver_name;
12096 TALLOC_CTX *_mem_save_driver_name_0;
12097 uint32_t _ptr_architecture;
12098 TALLOC_CTX *_mem_save_architecture_0;
12099 uint32_t _ptr_driver_path;
12100 TALLOC_CTX *_mem_save_driver_path_0;
12101 uint32_t _ptr_data_file;
12102 TALLOC_CTX *_mem_save_data_file_0;
12103 uint32_t _ptr_config_file;
12104 TALLOC_CTX *_mem_save_config_file_0;
12105 uint32_t _ptr_help_file;
12106 TALLOC_CTX *_mem_save_help_file_0;
12107 uint32_t _ptr_dependent_files;
12108 TALLOC_CTX *_mem_save_dependent_files_0;
12109 uint32_t _ptr_monitor_name;
12110 TALLOC_CTX *_mem_save_monitor_name_0;
12111 uint32_t _ptr_default_datatype;
12112 TALLOC_CTX *_mem_save_default_datatype_0;
12113 uint32_t _ptr_previous_names;
12114 TALLOC_CTX *_mem_save_previous_names_0;
12115 uint32_t _ptr_manufacturer_name;
12116 TALLOC_CTX *_mem_save_manufacturer_name_0;
12117 uint32_t _ptr_manufacturer_url;
12118 TALLOC_CTX *_mem_save_manufacturer_url_0;
12119 uint32_t _ptr_hardware_id;
12120 TALLOC_CTX *_mem_save_hardware_id_0;
12121 uint32_t _ptr_provider;
12122 TALLOC_CTX *_mem_save_provider_0;
12123 if (ndr_flags & NDR_SCALARS) {
12124 NDR_CHECK(ndr_pull_align(ndr, 8));
12125 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12127 uint32_t _flags_save_string = ndr->flags;
12128 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12129 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12130 if (_ptr_driver_name) {
12131 NDR_PULL_ALLOC(ndr, r->driver_name);
12132 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12134 r->driver_name = NULL;
12136 ndr->flags = _flags_save_string;
12139 uint32_t _flags_save_string = ndr->flags;
12140 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12141 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
12142 if (_ptr_architecture) {
12143 NDR_PULL_ALLOC(ndr, r->architecture);
12144 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12146 r->architecture = NULL;
12148 ndr->flags = _flags_save_string;
12151 uint32_t _flags_save_string = ndr->flags;
12152 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12153 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
12154 if (_ptr_driver_path) {
12155 NDR_PULL_ALLOC(ndr, r->driver_path);
12156 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
12158 r->driver_path = NULL;
12160 ndr->flags = _flags_save_string;
12163 uint32_t _flags_save_string = ndr->flags;
12164 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12165 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
12166 if (_ptr_data_file) {
12167 NDR_PULL_ALLOC(ndr, r->data_file);
12168 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
12170 r->data_file = NULL;
12172 ndr->flags = _flags_save_string;
12175 uint32_t _flags_save_string = ndr->flags;
12176 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12177 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
12178 if (_ptr_config_file) {
12179 NDR_PULL_ALLOC(ndr, r->config_file);
12180 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
12182 r->config_file = NULL;
12184 ndr->flags = _flags_save_string;
12187 uint32_t _flags_save_string = ndr->flags;
12188 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12189 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
12190 if (_ptr_help_file) {
12191 NDR_PULL_ALLOC(ndr, r->help_file);
12192 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
12194 r->help_file = NULL;
12196 ndr->flags = _flags_save_string;
12199 uint32_t _flags_save_string_array = ndr->flags;
12200 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12201 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
12202 if (_ptr_dependent_files) {
12203 NDR_PULL_ALLOC(ndr, r->dependent_files);
12204 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
12206 r->dependent_files = NULL;
12208 ndr->flags = _flags_save_string_array;
12211 uint32_t _flags_save_string = ndr->flags;
12212 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12213 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12214 if (_ptr_monitor_name) {
12215 NDR_PULL_ALLOC(ndr, r->monitor_name);
12216 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12218 r->monitor_name = NULL;
12220 ndr->flags = _flags_save_string;
12223 uint32_t _flags_save_string = ndr->flags;
12224 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12225 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
12226 if (_ptr_default_datatype) {
12227 NDR_PULL_ALLOC(ndr, r->default_datatype);
12228 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
12230 r->default_datatype = NULL;
12232 ndr->flags = _flags_save_string;
12235 uint32_t _flags_save_string_array = ndr->flags;
12236 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12237 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
12238 if (_ptr_previous_names) {
12239 NDR_PULL_ALLOC(ndr, r->previous_names);
12240 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
12242 r->previous_names = NULL;
12244 ndr->flags = _flags_save_string_array;
12246 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
12247 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
12249 uint32_t _flags_save_string = ndr->flags;
12250 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12251 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
12252 if (_ptr_manufacturer_name) {
12253 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
12254 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
12256 r->manufacturer_name = NULL;
12258 ndr->flags = _flags_save_string;
12261 uint32_t _flags_save_string = ndr->flags;
12262 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12263 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
12264 if (_ptr_manufacturer_url) {
12265 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
12266 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
12268 r->manufacturer_url = NULL;
12270 ndr->flags = _flags_save_string;
12273 uint32_t _flags_save_string = ndr->flags;
12274 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12275 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
12276 if (_ptr_hardware_id) {
12277 NDR_PULL_ALLOC(ndr, r->hardware_id);
12278 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
12280 r->hardware_id = NULL;
12282 ndr->flags = _flags_save_string;
12285 uint32_t _flags_save_string = ndr->flags;
12286 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12287 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
12288 if (_ptr_provider) {
12289 NDR_PULL_ALLOC(ndr, r->provider);
12290 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
12292 r->provider = NULL;
12294 ndr->flags = _flags_save_string;
12297 if (ndr_flags & NDR_BUFFERS) {
12299 uint32_t _flags_save_string = ndr->flags;
12300 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12301 if (r->driver_name) {
12302 uint32_t _relative_save_offset;
12303 _relative_save_offset = ndr->offset;
12304 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12305 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12306 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12307 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12308 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12309 ndr->offset = _relative_save_offset;
12311 ndr->flags = _flags_save_string;
12314 uint32_t _flags_save_string = ndr->flags;
12315 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12316 if (r->architecture) {
12317 uint32_t _relative_save_offset;
12318 _relative_save_offset = ndr->offset;
12319 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12320 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12321 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12322 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12323 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12324 ndr->offset = _relative_save_offset;
12326 ndr->flags = _flags_save_string;
12329 uint32_t _flags_save_string = ndr->flags;
12330 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12331 if (r->driver_path) {
12332 uint32_t _relative_save_offset;
12333 _relative_save_offset = ndr->offset;
12334 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12335 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12336 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12337 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12338 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
12339 ndr->offset = _relative_save_offset;
12341 ndr->flags = _flags_save_string;
12344 uint32_t _flags_save_string = ndr->flags;
12345 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12346 if (r->data_file) {
12347 uint32_t _relative_save_offset;
12348 _relative_save_offset = ndr->offset;
12349 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12350 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12351 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12352 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12353 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12354 ndr->offset = _relative_save_offset;
12356 ndr->flags = _flags_save_string;
12359 uint32_t _flags_save_string = ndr->flags;
12360 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12361 if (r->config_file) {
12362 uint32_t _relative_save_offset;
12363 _relative_save_offset = ndr->offset;
12364 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12365 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12366 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12367 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12368 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12369 ndr->offset = _relative_save_offset;
12371 ndr->flags = _flags_save_string;
12374 uint32_t _flags_save_string = ndr->flags;
12375 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12376 if (r->help_file) {
12377 uint32_t _relative_save_offset;
12378 _relative_save_offset = ndr->offset;
12379 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
12380 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12381 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
12382 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
12383 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
12384 ndr->offset = _relative_save_offset;
12386 ndr->flags = _flags_save_string;
12389 uint32_t _flags_save_string_array = ndr->flags;
12390 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12391 if (r->dependent_files) {
12392 uint32_t _relative_save_offset;
12393 _relative_save_offset = ndr->offset;
12394 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
12395 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
12396 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
12397 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
12398 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
12399 ndr->offset = _relative_save_offset;
12401 ndr->flags = _flags_save_string_array;
12404 uint32_t _flags_save_string = ndr->flags;
12405 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12406 if (r->monitor_name) {
12407 uint32_t _relative_save_offset;
12408 _relative_save_offset = ndr->offset;
12409 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12410 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12411 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12412 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12413 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_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);
12421 if (r->default_datatype) {
12422 uint32_t _relative_save_offset;
12423 _relative_save_offset = ndr->offset;
12424 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
12425 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
12426 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
12427 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
12428 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
12429 ndr->offset = _relative_save_offset;
12431 ndr->flags = _flags_save_string;
12434 uint32_t _flags_save_string_array = ndr->flags;
12435 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12436 if (r->previous_names) {
12437 uint32_t _relative_save_offset;
12438 _relative_save_offset = ndr->offset;
12439 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
12440 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
12441 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
12442 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
12443 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
12444 ndr->offset = _relative_save_offset;
12446 ndr->flags = _flags_save_string_array;
12449 uint32_t _flags_save_string = ndr->flags;
12450 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12451 if (r->manufacturer_name) {
12452 uint32_t _relative_save_offset;
12453 _relative_save_offset = ndr->offset;
12454 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
12455 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12456 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
12457 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
12458 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
12459 ndr->offset = _relative_save_offset;
12461 ndr->flags = _flags_save_string;
12464 uint32_t _flags_save_string = ndr->flags;
12465 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12466 if (r->manufacturer_url) {
12467 uint32_t _relative_save_offset;
12468 _relative_save_offset = ndr->offset;
12469 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
12470 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
12471 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
12472 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
12473 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
12474 ndr->offset = _relative_save_offset;
12476 ndr->flags = _flags_save_string;
12479 uint32_t _flags_save_string = ndr->flags;
12480 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12481 if (r->hardware_id) {
12482 uint32_t _relative_save_offset;
12483 _relative_save_offset = ndr->offset;
12484 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
12485 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
12486 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
12487 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
12488 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
12489 ndr->offset = _relative_save_offset;
12491 ndr->flags = _flags_save_string;
12494 uint32_t _flags_save_string = ndr->flags;
12495 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12497 uint32_t _relative_save_offset;
12498 _relative_save_offset = ndr->offset;
12499 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
12500 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
12501 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
12502 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
12503 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
12504 ndr->offset = _relative_save_offset;
12506 ndr->flags = _flags_save_string;
12509 return NDR_ERR_SUCCESS;
12512 _PUBLIC_ void ndr_print_spoolss_DriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo6 *r)
12514 ndr_print_struct(ndr, name, "spoolss_DriverInfo6");
12516 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
12517 ndr_print_ptr(ndr, "driver_name", r->driver_name);
12519 if (r->driver_name) {
12520 ndr_print_string(ndr, "driver_name", r->driver_name);
12523 ndr_print_ptr(ndr, "architecture", r->architecture);
12525 if (r->architecture) {
12526 ndr_print_string(ndr, "architecture", r->architecture);
12529 ndr_print_ptr(ndr, "driver_path", r->driver_path);
12531 if (r->driver_path) {
12532 ndr_print_string(ndr, "driver_path", r->driver_path);
12535 ndr_print_ptr(ndr, "data_file", r->data_file);
12537 if (r->data_file) {
12538 ndr_print_string(ndr, "data_file", r->data_file);
12541 ndr_print_ptr(ndr, "config_file", r->config_file);
12543 if (r->config_file) {
12544 ndr_print_string(ndr, "config_file", r->config_file);
12547 ndr_print_ptr(ndr, "help_file", r->help_file);
12549 if (r->help_file) {
12550 ndr_print_string(ndr, "help_file", r->help_file);
12553 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
12555 if (r->dependent_files) {
12556 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
12559 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12561 if (r->monitor_name) {
12562 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12565 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
12567 if (r->default_datatype) {
12568 ndr_print_string(ndr, "default_datatype", r->default_datatype);
12571 ndr_print_ptr(ndr, "previous_names", r->previous_names);
12573 if (r->previous_names) {
12574 ndr_print_string_array(ndr, "previous_names", r->previous_names);
12577 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
12578 ndr_print_hyper(ndr, "driver_version", r->driver_version);
12579 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
12581 if (r->manufacturer_name) {
12582 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
12585 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
12587 if (r->manufacturer_url) {
12588 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
12591 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
12593 if (r->hardware_id) {
12594 ndr_print_string(ndr, "hardware_id", r->hardware_id);
12597 ndr_print_ptr(ndr, "provider", r->provider);
12600 ndr_print_string(ndr, "provider", r->provider);
12606 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6 *r, struct smb_iconv_convenience *ic, int flags)
12608 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo6, ic);
12611 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo8 *r)
12613 if (ndr_flags & NDR_SCALARS) {
12614 NDR_CHECK(ndr_push_align(ndr, 8));
12615 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12617 uint32_t _flags_save_string = ndr->flags;
12618 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12619 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12620 ndr->flags = _flags_save_string;
12623 uint32_t _flags_save_string = ndr->flags;
12624 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12625 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12626 ndr->flags = _flags_save_string;
12629 uint32_t _flags_save_string = ndr->flags;
12630 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12631 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
12632 ndr->flags = _flags_save_string;
12635 uint32_t _flags_save_string = ndr->flags;
12636 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12637 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
12638 ndr->flags = _flags_save_string;
12641 uint32_t _flags_save_string = ndr->flags;
12642 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12643 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12644 ndr->flags = _flags_save_string;
12647 uint32_t _flags_save_string = ndr->flags;
12648 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12649 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
12650 ndr->flags = _flags_save_string;
12653 uint32_t _flags_save_string = ndr->flags;
12654 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12655 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12656 ndr->flags = _flags_save_string;
12659 uint32_t _flags_save_string = ndr->flags;
12660 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12661 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
12662 ndr->flags = _flags_save_string;
12665 uint32_t _flags_save_string_array = ndr->flags;
12666 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12667 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
12668 ndr->flags = _flags_save_string_array;
12671 uint32_t _flags_save_string_array = ndr->flags;
12672 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12673 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
12674 ndr->flags = _flags_save_string_array;
12676 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
12677 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
12679 uint32_t _flags_save_string = ndr->flags;
12680 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12681 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
12682 ndr->flags = _flags_save_string;
12685 uint32_t _flags_save_string = ndr->flags;
12686 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12687 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
12688 ndr->flags = _flags_save_string;
12691 uint32_t _flags_save_string = ndr->flags;
12692 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12693 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
12694 ndr->flags = _flags_save_string;
12697 uint32_t _flags_save_string = ndr->flags;
12698 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12699 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
12700 ndr->flags = _flags_save_string;
12703 uint32_t _flags_save_string = ndr->flags;
12704 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12705 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
12706 ndr->flags = _flags_save_string;
12709 uint32_t _flags_save_string = ndr->flags;
12710 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12711 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->vendor_setup));
12712 ndr->flags = _flags_save_string;
12715 uint32_t _flags_save_string_array = ndr->flags;
12716 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12717 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->color_profiles));
12718 ndr->flags = _flags_save_string_array;
12721 uint32_t _flags_save_string = ndr->flags;
12722 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12723 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_path));
12724 ndr->flags = _flags_save_string;
12726 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
12728 uint32_t _flags_save_string_array = ndr->flags;
12729 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12730 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->core_driver_dependencies));
12731 ndr->flags = _flags_save_string_array;
12733 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
12734 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
12736 if (ndr_flags & NDR_BUFFERS) {
12738 uint32_t _flags_save_string = ndr->flags;
12739 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12740 if (r->driver_name) {
12741 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
12742 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12743 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
12745 ndr->flags = _flags_save_string;
12748 uint32_t _flags_save_string = ndr->flags;
12749 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12750 if (r->architecture) {
12751 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
12752 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
12753 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
12755 ndr->flags = _flags_save_string;
12758 uint32_t _flags_save_string = ndr->flags;
12759 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12760 if (r->driver_path) {
12761 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
12762 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
12763 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
12765 ndr->flags = _flags_save_string;
12768 uint32_t _flags_save_string = ndr->flags;
12769 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12770 if (r->data_file) {
12771 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
12772 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
12773 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
12775 ndr->flags = _flags_save_string;
12778 uint32_t _flags_save_string = ndr->flags;
12779 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12780 if (r->config_file) {
12781 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
12782 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
12783 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
12785 ndr->flags = _flags_save_string;
12788 uint32_t _flags_save_string = ndr->flags;
12789 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12790 if (r->help_file) {
12791 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
12792 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
12793 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
12795 ndr->flags = _flags_save_string;
12798 uint32_t _flags_save_string = ndr->flags;
12799 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12800 if (r->monitor_name) {
12801 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
12802 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12803 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
12805 ndr->flags = _flags_save_string;
12808 uint32_t _flags_save_string = ndr->flags;
12809 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12810 if (r->default_datatype) {
12811 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
12812 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
12813 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
12815 ndr->flags = _flags_save_string;
12818 uint32_t _flags_save_string_array = ndr->flags;
12819 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12820 if (r->dependent_files) {
12821 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
12822 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
12823 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
12825 ndr->flags = _flags_save_string_array;
12828 uint32_t _flags_save_string_array = ndr->flags;
12829 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12830 if (r->previous_names) {
12831 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->previous_names));
12832 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
12833 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->previous_names));
12835 ndr->flags = _flags_save_string_array;
12838 uint32_t _flags_save_string = ndr->flags;
12839 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12840 if (r->manufacturer_name) {
12841 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_name));
12842 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
12843 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_name));
12845 ndr->flags = _flags_save_string;
12848 uint32_t _flags_save_string = ndr->flags;
12849 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12850 if (r->manufacturer_url) {
12851 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_url));
12852 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
12853 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_url));
12855 ndr->flags = _flags_save_string;
12858 uint32_t _flags_save_string = ndr->flags;
12859 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12860 if (r->hardware_id) {
12861 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->hardware_id));
12862 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
12863 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->hardware_id));
12865 ndr->flags = _flags_save_string;
12868 uint32_t _flags_save_string = ndr->flags;
12869 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12871 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->provider));
12872 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
12873 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->provider));
12875 ndr->flags = _flags_save_string;
12878 uint32_t _flags_save_string = ndr->flags;
12879 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12880 if (r->print_processor) {
12881 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor));
12882 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
12883 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor));
12885 ndr->flags = _flags_save_string;
12888 uint32_t _flags_save_string = ndr->flags;
12889 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12890 if (r->vendor_setup) {
12891 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->vendor_setup));
12892 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->vendor_setup));
12893 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->vendor_setup));
12895 ndr->flags = _flags_save_string;
12898 uint32_t _flags_save_string_array = ndr->flags;
12899 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12900 if (r->color_profiles) {
12901 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->color_profiles));
12902 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->color_profiles));
12903 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->color_profiles));
12905 ndr->flags = _flags_save_string_array;
12908 uint32_t _flags_save_string = ndr->flags;
12909 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12911 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->inf_path));
12912 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_path));
12913 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->inf_path));
12915 ndr->flags = _flags_save_string;
12918 uint32_t _flags_save_string_array = ndr->flags;
12919 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12920 if (r->core_driver_dependencies) {
12921 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->core_driver_dependencies));
12922 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->core_driver_dependencies));
12923 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->core_driver_dependencies));
12925 ndr->flags = _flags_save_string_array;
12928 return NDR_ERR_SUCCESS;
12931 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo8 *r)
12933 uint32_t _ptr_driver_name;
12934 TALLOC_CTX *_mem_save_driver_name_0;
12935 uint32_t _ptr_architecture;
12936 TALLOC_CTX *_mem_save_architecture_0;
12937 uint32_t _ptr_driver_path;
12938 TALLOC_CTX *_mem_save_driver_path_0;
12939 uint32_t _ptr_data_file;
12940 TALLOC_CTX *_mem_save_data_file_0;
12941 uint32_t _ptr_config_file;
12942 TALLOC_CTX *_mem_save_config_file_0;
12943 uint32_t _ptr_help_file;
12944 TALLOC_CTX *_mem_save_help_file_0;
12945 uint32_t _ptr_monitor_name;
12946 TALLOC_CTX *_mem_save_monitor_name_0;
12947 uint32_t _ptr_default_datatype;
12948 TALLOC_CTX *_mem_save_default_datatype_0;
12949 uint32_t _ptr_dependent_files;
12950 TALLOC_CTX *_mem_save_dependent_files_0;
12951 uint32_t _ptr_previous_names;
12952 TALLOC_CTX *_mem_save_previous_names_0;
12953 uint32_t _ptr_manufacturer_name;
12954 TALLOC_CTX *_mem_save_manufacturer_name_0;
12955 uint32_t _ptr_manufacturer_url;
12956 TALLOC_CTX *_mem_save_manufacturer_url_0;
12957 uint32_t _ptr_hardware_id;
12958 TALLOC_CTX *_mem_save_hardware_id_0;
12959 uint32_t _ptr_provider;
12960 TALLOC_CTX *_mem_save_provider_0;
12961 uint32_t _ptr_print_processor;
12962 TALLOC_CTX *_mem_save_print_processor_0;
12963 uint32_t _ptr_vendor_setup;
12964 TALLOC_CTX *_mem_save_vendor_setup_0;
12965 uint32_t _ptr_color_profiles;
12966 TALLOC_CTX *_mem_save_color_profiles_0;
12967 uint32_t _ptr_inf_path;
12968 TALLOC_CTX *_mem_save_inf_path_0;
12969 uint32_t _ptr_core_driver_dependencies;
12970 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
12971 if (ndr_flags & NDR_SCALARS) {
12972 NDR_CHECK(ndr_pull_align(ndr, 8));
12973 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12975 uint32_t _flags_save_string = ndr->flags;
12976 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12977 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12978 if (_ptr_driver_name) {
12979 NDR_PULL_ALLOC(ndr, r->driver_name);
12980 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12982 r->driver_name = NULL;
12984 ndr->flags = _flags_save_string;
12987 uint32_t _flags_save_string = ndr->flags;
12988 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12989 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
12990 if (_ptr_architecture) {
12991 NDR_PULL_ALLOC(ndr, r->architecture);
12992 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12994 r->architecture = NULL;
12996 ndr->flags = _flags_save_string;
12999 uint32_t _flags_save_string = ndr->flags;
13000 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13001 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
13002 if (_ptr_driver_path) {
13003 NDR_PULL_ALLOC(ndr, r->driver_path);
13004 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
13006 r->driver_path = NULL;
13008 ndr->flags = _flags_save_string;
13011 uint32_t _flags_save_string = ndr->flags;
13012 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13013 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
13014 if (_ptr_data_file) {
13015 NDR_PULL_ALLOC(ndr, r->data_file);
13016 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
13018 r->data_file = NULL;
13020 ndr->flags = _flags_save_string;
13023 uint32_t _flags_save_string = ndr->flags;
13024 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13025 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
13026 if (_ptr_config_file) {
13027 NDR_PULL_ALLOC(ndr, r->config_file);
13028 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
13030 r->config_file = NULL;
13032 ndr->flags = _flags_save_string;
13035 uint32_t _flags_save_string = ndr->flags;
13036 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13037 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
13038 if (_ptr_help_file) {
13039 NDR_PULL_ALLOC(ndr, r->help_file);
13040 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
13042 r->help_file = NULL;
13044 ndr->flags = _flags_save_string;
13047 uint32_t _flags_save_string = ndr->flags;
13048 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13049 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
13050 if (_ptr_monitor_name) {
13051 NDR_PULL_ALLOC(ndr, r->monitor_name);
13052 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
13054 r->monitor_name = NULL;
13056 ndr->flags = _flags_save_string;
13059 uint32_t _flags_save_string = ndr->flags;
13060 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13061 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
13062 if (_ptr_default_datatype) {
13063 NDR_PULL_ALLOC(ndr, r->default_datatype);
13064 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
13066 r->default_datatype = NULL;
13068 ndr->flags = _flags_save_string;
13071 uint32_t _flags_save_string_array = ndr->flags;
13072 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13073 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
13074 if (_ptr_dependent_files) {
13075 NDR_PULL_ALLOC(ndr, r->dependent_files);
13076 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
13078 r->dependent_files = NULL;
13080 ndr->flags = _flags_save_string_array;
13083 uint32_t _flags_save_string_array = ndr->flags;
13084 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13085 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
13086 if (_ptr_previous_names) {
13087 NDR_PULL_ALLOC(ndr, r->previous_names);
13088 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
13090 r->previous_names = NULL;
13092 ndr->flags = _flags_save_string_array;
13094 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
13095 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
13097 uint32_t _flags_save_string = ndr->flags;
13098 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13099 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
13100 if (_ptr_manufacturer_name) {
13101 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
13102 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
13104 r->manufacturer_name = NULL;
13106 ndr->flags = _flags_save_string;
13109 uint32_t _flags_save_string = ndr->flags;
13110 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13111 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
13112 if (_ptr_manufacturer_url) {
13113 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
13114 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
13116 r->manufacturer_url = NULL;
13118 ndr->flags = _flags_save_string;
13121 uint32_t _flags_save_string = ndr->flags;
13122 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13123 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
13124 if (_ptr_hardware_id) {
13125 NDR_PULL_ALLOC(ndr, r->hardware_id);
13126 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
13128 r->hardware_id = NULL;
13130 ndr->flags = _flags_save_string;
13133 uint32_t _flags_save_string = ndr->flags;
13134 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13135 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
13136 if (_ptr_provider) {
13137 NDR_PULL_ALLOC(ndr, r->provider);
13138 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
13140 r->provider = NULL;
13142 ndr->flags = _flags_save_string;
13145 uint32_t _flags_save_string = ndr->flags;
13146 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13147 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
13148 if (_ptr_print_processor) {
13149 NDR_PULL_ALLOC(ndr, r->print_processor);
13150 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
13152 r->print_processor = NULL;
13154 ndr->flags = _flags_save_string;
13157 uint32_t _flags_save_string = ndr->flags;
13158 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13159 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
13160 if (_ptr_vendor_setup) {
13161 NDR_PULL_ALLOC(ndr, r->vendor_setup);
13162 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->vendor_setup, _ptr_vendor_setup));
13164 r->vendor_setup = NULL;
13166 ndr->flags = _flags_save_string;
13169 uint32_t _flags_save_string_array = ndr->flags;
13170 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13171 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
13172 if (_ptr_color_profiles) {
13173 NDR_PULL_ALLOC(ndr, r->color_profiles);
13174 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->color_profiles, _ptr_color_profiles));
13176 r->color_profiles = NULL;
13178 ndr->flags = _flags_save_string_array;
13181 uint32_t _flags_save_string = ndr->flags;
13182 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13183 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
13184 if (_ptr_inf_path) {
13185 NDR_PULL_ALLOC(ndr, r->inf_path);
13186 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_path, _ptr_inf_path));
13188 r->inf_path = NULL;
13190 ndr->flags = _flags_save_string;
13192 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
13194 uint32_t _flags_save_string_array = ndr->flags;
13195 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13196 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
13197 if (_ptr_core_driver_dependencies) {
13198 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
13199 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->core_driver_dependencies, _ptr_core_driver_dependencies));
13201 r->core_driver_dependencies = NULL;
13203 ndr->flags = _flags_save_string_array;
13205 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
13206 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
13208 if (ndr_flags & NDR_BUFFERS) {
13210 uint32_t _flags_save_string = ndr->flags;
13211 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13212 if (r->driver_name) {
13213 uint32_t _relative_save_offset;
13214 _relative_save_offset = ndr->offset;
13215 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
13216 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13217 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
13218 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
13219 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
13220 ndr->offset = _relative_save_offset;
13222 ndr->flags = _flags_save_string;
13225 uint32_t _flags_save_string = ndr->flags;
13226 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13227 if (r->architecture) {
13228 uint32_t _relative_save_offset;
13229 _relative_save_offset = ndr->offset;
13230 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
13231 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
13232 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
13233 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
13234 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
13235 ndr->offset = _relative_save_offset;
13237 ndr->flags = _flags_save_string;
13240 uint32_t _flags_save_string = ndr->flags;
13241 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13242 if (r->driver_path) {
13243 uint32_t _relative_save_offset;
13244 _relative_save_offset = ndr->offset;
13245 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
13246 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
13247 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
13248 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
13249 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
13250 ndr->offset = _relative_save_offset;
13252 ndr->flags = _flags_save_string;
13255 uint32_t _flags_save_string = ndr->flags;
13256 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13257 if (r->data_file) {
13258 uint32_t _relative_save_offset;
13259 _relative_save_offset = ndr->offset;
13260 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
13261 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13262 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
13263 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
13264 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
13265 ndr->offset = _relative_save_offset;
13267 ndr->flags = _flags_save_string;
13270 uint32_t _flags_save_string = ndr->flags;
13271 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13272 if (r->config_file) {
13273 uint32_t _relative_save_offset;
13274 _relative_save_offset = ndr->offset;
13275 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
13276 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13277 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
13278 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
13279 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
13280 ndr->offset = _relative_save_offset;
13282 ndr->flags = _flags_save_string;
13285 uint32_t _flags_save_string = ndr->flags;
13286 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13287 if (r->help_file) {
13288 uint32_t _relative_save_offset;
13289 _relative_save_offset = ndr->offset;
13290 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
13291 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13292 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
13293 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
13294 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
13295 ndr->offset = _relative_save_offset;
13297 ndr->flags = _flags_save_string;
13300 uint32_t _flags_save_string = ndr->flags;
13301 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13302 if (r->monitor_name) {
13303 uint32_t _relative_save_offset;
13304 _relative_save_offset = ndr->offset;
13305 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
13306 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13307 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
13308 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
13309 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
13310 ndr->offset = _relative_save_offset;
13312 ndr->flags = _flags_save_string;
13315 uint32_t _flags_save_string = ndr->flags;
13316 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13317 if (r->default_datatype) {
13318 uint32_t _relative_save_offset;
13319 _relative_save_offset = ndr->offset;
13320 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
13321 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
13322 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
13323 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
13324 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
13325 ndr->offset = _relative_save_offset;
13327 ndr->flags = _flags_save_string;
13330 uint32_t _flags_save_string_array = ndr->flags;
13331 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13332 if (r->dependent_files) {
13333 uint32_t _relative_save_offset;
13334 _relative_save_offset = ndr->offset;
13335 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
13336 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
13337 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
13338 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
13339 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
13340 ndr->offset = _relative_save_offset;
13342 ndr->flags = _flags_save_string_array;
13345 uint32_t _flags_save_string_array = ndr->flags;
13346 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13347 if (r->previous_names) {
13348 uint32_t _relative_save_offset;
13349 _relative_save_offset = ndr->offset;
13350 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
13351 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
13352 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
13353 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
13354 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
13355 ndr->offset = _relative_save_offset;
13357 ndr->flags = _flags_save_string_array;
13360 uint32_t _flags_save_string = ndr->flags;
13361 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13362 if (r->manufacturer_name) {
13363 uint32_t _relative_save_offset;
13364 _relative_save_offset = ndr->offset;
13365 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
13366 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13367 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
13368 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
13369 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
13370 ndr->offset = _relative_save_offset;
13372 ndr->flags = _flags_save_string;
13375 uint32_t _flags_save_string = ndr->flags;
13376 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13377 if (r->manufacturer_url) {
13378 uint32_t _relative_save_offset;
13379 _relative_save_offset = ndr->offset;
13380 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
13381 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
13382 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
13383 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
13384 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
13385 ndr->offset = _relative_save_offset;
13387 ndr->flags = _flags_save_string;
13390 uint32_t _flags_save_string = ndr->flags;
13391 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13392 if (r->hardware_id) {
13393 uint32_t _relative_save_offset;
13394 _relative_save_offset = ndr->offset;
13395 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
13396 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
13397 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
13398 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
13399 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
13400 ndr->offset = _relative_save_offset;
13402 ndr->flags = _flags_save_string;
13405 uint32_t _flags_save_string = ndr->flags;
13406 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13408 uint32_t _relative_save_offset;
13409 _relative_save_offset = ndr->offset;
13410 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
13411 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
13412 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
13413 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
13414 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
13415 ndr->offset = _relative_save_offset;
13417 ndr->flags = _flags_save_string;
13420 uint32_t _flags_save_string = ndr->flags;
13421 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13422 if (r->print_processor) {
13423 uint32_t _relative_save_offset;
13424 _relative_save_offset = ndr->offset;
13425 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
13426 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
13427 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
13428 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
13429 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
13430 ndr->offset = _relative_save_offset;
13432 ndr->flags = _flags_save_string;
13435 uint32_t _flags_save_string = ndr->flags;
13436 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13437 if (r->vendor_setup) {
13438 uint32_t _relative_save_offset;
13439 _relative_save_offset = ndr->offset;
13440 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->vendor_setup));
13441 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
13442 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
13443 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->vendor_setup));
13444 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
13445 ndr->offset = _relative_save_offset;
13447 ndr->flags = _flags_save_string;
13450 uint32_t _flags_save_string_array = ndr->flags;
13451 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13452 if (r->color_profiles) {
13453 uint32_t _relative_save_offset;
13454 _relative_save_offset = ndr->offset;
13455 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->color_profiles));
13456 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
13457 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
13458 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->color_profiles));
13459 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
13460 ndr->offset = _relative_save_offset;
13462 ndr->flags = _flags_save_string_array;
13465 uint32_t _flags_save_string = ndr->flags;
13466 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13468 uint32_t _relative_save_offset;
13469 _relative_save_offset = ndr->offset;
13470 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_path));
13471 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
13472 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
13473 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_path));
13474 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
13475 ndr->offset = _relative_save_offset;
13477 ndr->flags = _flags_save_string;
13480 uint32_t _flags_save_string_array = ndr->flags;
13481 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13482 if (r->core_driver_dependencies) {
13483 uint32_t _relative_save_offset;
13484 _relative_save_offset = ndr->offset;
13485 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->core_driver_dependencies));
13486 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
13487 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
13488 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->core_driver_dependencies));
13489 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
13490 ndr->offset = _relative_save_offset;
13492 ndr->flags = _flags_save_string_array;
13495 return NDR_ERR_SUCCESS;
13498 _PUBLIC_ void ndr_print_spoolss_DriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo8 *r)
13500 ndr_print_struct(ndr, name, "spoolss_DriverInfo8");
13502 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13503 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13505 if (r->driver_name) {
13506 ndr_print_string(ndr, "driver_name", r->driver_name);
13509 ndr_print_ptr(ndr, "architecture", r->architecture);
13511 if (r->architecture) {
13512 ndr_print_string(ndr, "architecture", r->architecture);
13515 ndr_print_ptr(ndr, "driver_path", r->driver_path);
13517 if (r->driver_path) {
13518 ndr_print_string(ndr, "driver_path", r->driver_path);
13521 ndr_print_ptr(ndr, "data_file", r->data_file);
13523 if (r->data_file) {
13524 ndr_print_string(ndr, "data_file", r->data_file);
13527 ndr_print_ptr(ndr, "config_file", r->config_file);
13529 if (r->config_file) {
13530 ndr_print_string(ndr, "config_file", r->config_file);
13533 ndr_print_ptr(ndr, "help_file", r->help_file);
13535 if (r->help_file) {
13536 ndr_print_string(ndr, "help_file", r->help_file);
13539 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13541 if (r->monitor_name) {
13542 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13545 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
13547 if (r->default_datatype) {
13548 ndr_print_string(ndr, "default_datatype", r->default_datatype);
13551 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
13553 if (r->dependent_files) {
13554 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
13557 ndr_print_ptr(ndr, "previous_names", r->previous_names);
13559 if (r->previous_names) {
13560 ndr_print_string_array(ndr, "previous_names", r->previous_names);
13563 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
13564 ndr_print_hyper(ndr, "driver_version", r->driver_version);
13565 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
13567 if (r->manufacturer_name) {
13568 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
13571 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
13573 if (r->manufacturer_url) {
13574 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
13577 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
13579 if (r->hardware_id) {
13580 ndr_print_string(ndr, "hardware_id", r->hardware_id);
13583 ndr_print_ptr(ndr, "provider", r->provider);
13586 ndr_print_string(ndr, "provider", r->provider);
13589 ndr_print_ptr(ndr, "print_processor", r->print_processor);
13591 if (r->print_processor) {
13592 ndr_print_string(ndr, "print_processor", r->print_processor);
13595 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
13597 if (r->vendor_setup) {
13598 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
13601 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
13603 if (r->color_profiles) {
13604 ndr_print_string_array(ndr, "color_profiles", r->color_profiles);
13607 ndr_print_ptr(ndr, "inf_path", r->inf_path);
13610 ndr_print_string(ndr, "inf_path", r->inf_path);
13613 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
13614 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
13616 if (r->core_driver_dependencies) {
13617 ndr_print_string_array(ndr, "core_driver_dependencies", r->core_driver_dependencies);
13620 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
13621 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
13625 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8 *r, struct smb_iconv_convenience *ic, int flags)
13627 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo8, ic);
13630 static enum ndr_err_code ndr_push_spoolss_DriverFileType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverFileType r)
13632 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
13633 return NDR_ERR_SUCCESS;
13636 static enum ndr_err_code ndr_pull_spoolss_DriverFileType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverFileType *r)
13639 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
13641 return NDR_ERR_SUCCESS;
13644 _PUBLIC_ void ndr_print_spoolss_DriverFileType(struct ndr_print *ndr, const char *name, enum spoolss_DriverFileType r)
13646 const char *val = NULL;
13649 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING: val = "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
13650 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION: val = "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
13651 case SPOOLSS_DRIVER_FILE_TYPE_DATA: val = "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
13652 case SPOOLSS_DRIVER_FILE_TYPE_HELP: val = "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
13653 case SPOOLSS_DRIVER_FILE_TYPE_OTHER: val = "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
13655 ndr_print_enum(ndr, name, "ENUM", val, r);
13658 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverFileInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverFileInfo *r)
13660 if (ndr_flags & NDR_SCALARS) {
13661 NDR_CHECK(ndr_push_align(ndr, 4));
13663 uint32_t _flags_save_string = ndr->flags;
13664 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13665 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->file_name));
13666 ndr->flags = _flags_save_string;
13668 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr, NDR_SCALARS, r->file_type));
13669 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->file_version));
13671 if (ndr_flags & NDR_BUFFERS) {
13673 uint32_t _flags_save_string = ndr->flags;
13674 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13675 if (r->file_name) {
13676 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->file_name));
13677 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->file_name));
13678 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->file_name));
13680 ndr->flags = _flags_save_string;
13683 return NDR_ERR_SUCCESS;
13686 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverFileInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverFileInfo *r)
13688 uint32_t _ptr_file_name;
13689 TALLOC_CTX *_mem_save_file_name_0;
13690 if (ndr_flags & NDR_SCALARS) {
13691 NDR_CHECK(ndr_pull_align(ndr, 4));
13693 uint32_t _flags_save_string = ndr->flags;
13694 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13695 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_file_name));
13696 if (_ptr_file_name) {
13697 NDR_PULL_ALLOC(ndr, r->file_name);
13698 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->file_name, _ptr_file_name));
13700 r->file_name = NULL;
13702 ndr->flags = _flags_save_string;
13704 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr, NDR_SCALARS, &r->file_type));
13705 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->file_version));
13707 if (ndr_flags & NDR_BUFFERS) {
13709 uint32_t _flags_save_string = ndr->flags;
13710 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13711 if (r->file_name) {
13712 uint32_t _relative_save_offset;
13713 _relative_save_offset = ndr->offset;
13714 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->file_name));
13715 _mem_save_file_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13716 NDR_PULL_SET_MEM_CTX(ndr, r->file_name, 0);
13717 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->file_name));
13718 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_file_name_0, 0);
13719 ndr->offset = _relative_save_offset;
13721 ndr->flags = _flags_save_string;
13724 return NDR_ERR_SUCCESS;
13727 _PUBLIC_ void ndr_print_spoolss_DriverFileInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DriverFileInfo *r)
13729 ndr_print_struct(ndr, name, "spoolss_DriverFileInfo");
13731 ndr_print_ptr(ndr, "file_name", r->file_name);
13733 if (r->file_name) {
13734 ndr_print_string(ndr, "file_name", r->file_name);
13737 ndr_print_spoolss_DriverFileType(ndr, "file_type", r->file_type);
13738 ndr_print_uint32(ndr, "file_version", r->file_version);
13742 _PUBLIC_ void ndr_print_spoolss_DriverInfo101(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo101 *r)
13744 uint32_t cntr_file_info_1;
13745 ndr_print_struct(ndr, name, "spoolss_DriverInfo101");
13747 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13748 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13750 if (r->driver_name) {
13751 ndr_print_string(ndr, "driver_name", r->driver_name);
13754 ndr_print_ptr(ndr, "architecture", r->architecture);
13756 if (r->architecture) {
13757 ndr_print_string(ndr, "architecture", r->architecture);
13760 ndr_print_ptr(ndr, "file_info", r->file_info);
13762 if (r->file_info) {
13763 ndr->print(ndr, "%s: ARRAY(%d)", "file_info", (int)r->file_count);
13765 for (cntr_file_info_1=0;cntr_file_info_1<r->file_count;cntr_file_info_1++) {
13767 if (asprintf(&idx_1, "[%d]", cntr_file_info_1) != -1) {
13768 ndr_print_spoolss_DriverFileInfo(ndr, "file_info", &r->file_info[cntr_file_info_1]);
13775 ndr_print_uint32(ndr, "file_count", r->file_count);
13776 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13778 if (r->monitor_name) {
13779 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13782 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
13784 if (r->default_datatype) {
13785 ndr_print_string(ndr, "default_datatype", r->default_datatype);
13788 ndr_print_ptr(ndr, "previous_names", r->previous_names);
13790 if (r->previous_names) {
13791 ndr_print_string_array(ndr, "previous_names", r->previous_names);
13794 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
13795 ndr_print_hyper(ndr, "driver_version", r->driver_version);
13796 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
13798 if (r->manufacturer_name) {
13799 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
13802 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
13804 if (r->manufacturer_url) {
13805 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
13808 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
13810 if (r->hardware_id) {
13811 ndr_print_string(ndr, "hardware_id", r->hardware_id);
13814 ndr_print_ptr(ndr, "provider", r->provider);
13817 ndr_print_string(ndr, "provider", r->provider);
13823 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101 *r, struct smb_iconv_convenience *ic, int flags)
13825 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo101, ic);
13828 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverInfo *r)
13830 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
13832 uint32_t _flags_save_UNION = ndr->flags;
13833 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
13834 if (ndr_flags & NDR_SCALARS) {
13835 int level = ndr_push_get_switch_value(ndr, r);
13838 NDR_CHECK(ndr_push_align(ndr, 4));
13839 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13840 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
13844 NDR_CHECK(ndr_push_align(ndr, 4));
13845 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13846 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
13850 NDR_CHECK(ndr_push_align(ndr, 4));
13851 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13852 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
13856 NDR_CHECK(ndr_push_align(ndr, 4));
13857 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13858 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
13862 NDR_CHECK(ndr_push_align(ndr, 4));
13863 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13864 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
13868 NDR_CHECK(ndr_push_align(ndr, 8));
13869 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13870 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
13874 NDR_CHECK(ndr_push_align(ndr, 8));
13875 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13876 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
13880 NDR_CHECK(ndr_push_align(ndr, 8));
13881 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13882 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
13890 if (ndr_flags & NDR_BUFFERS) {
13891 int level = ndr_push_get_switch_value(ndr, r);
13892 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
13895 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
13899 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
13903 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
13907 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
13911 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
13915 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
13919 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
13923 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
13931 ndr->flags = _flags_save_UNION;
13933 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
13934 return NDR_ERR_SUCCESS;
13937 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverInfo *r)
13939 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
13942 uint32_t _flags_save_UNION = ndr->flags;
13943 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
13944 level = ndr_pull_get_switch_value(ndr, r);
13945 if (ndr_flags & NDR_SCALARS) {
13948 NDR_CHECK(ndr_pull_align(ndr, 4));
13949 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13950 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
13954 NDR_CHECK(ndr_pull_align(ndr, 4));
13955 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13956 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
13960 NDR_CHECK(ndr_pull_align(ndr, 4));
13961 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13962 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
13966 NDR_CHECK(ndr_pull_align(ndr, 4));
13967 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13968 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
13972 NDR_CHECK(ndr_pull_align(ndr, 4));
13973 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13974 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
13978 NDR_CHECK(ndr_pull_align(ndr, 8));
13979 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13980 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
13984 NDR_CHECK(ndr_pull_align(ndr, 8));
13985 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13986 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
13990 NDR_CHECK(ndr_pull_align(ndr, 8));
13991 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13992 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
14000 if (ndr_flags & NDR_BUFFERS) {
14001 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14004 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
14008 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
14012 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
14016 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
14020 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
14024 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
14028 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
14032 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
14040 ndr->flags = _flags_save_UNION;
14042 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14043 return NDR_ERR_SUCCESS;
14046 _PUBLIC_ void ndr_print_spoolss_DriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverInfo *r)
14050 uint32_t _flags_save_UNION = ndr->flags;
14051 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
14052 level = ndr_print_get_switch_value(ndr, r);
14053 ndr_print_union(ndr, name, level, "spoolss_DriverInfo");
14056 ndr_print_spoolss_DriverInfo1(ndr, "info1", &r->info1);
14060 ndr_print_spoolss_DriverInfo2(ndr, "info2", &r->info2);
14064 ndr_print_spoolss_DriverInfo3(ndr, "info3", &r->info3);
14068 ndr_print_spoolss_DriverInfo4(ndr, "info4", &r->info4);
14072 ndr_print_spoolss_DriverInfo5(ndr, "info5", &r->info5);
14076 ndr_print_spoolss_DriverInfo6(ndr, "info6", &r->info6);
14080 ndr_print_spoolss_DriverInfo8(ndr, "info8", &r->info8);
14084 ndr_print_spoolss_DriverInfo101(ndr, "info101", &r->info101);
14091 ndr->flags = _flags_save_UNION;
14095 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo(const union spoolss_DriverInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14097 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
14098 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo, ic);
14101 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverDirectoryInfo1 *r)
14103 if (ndr_flags & NDR_SCALARS) {
14104 NDR_CHECK(ndr_push_align(ndr, 4));
14106 uint32_t _flags_save_string = ndr->flags;
14107 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14108 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
14109 ndr->flags = _flags_save_string;
14112 if (ndr_flags & NDR_BUFFERS) {
14114 return NDR_ERR_SUCCESS;
14117 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverDirectoryInfo1 *r)
14119 if (ndr_flags & NDR_SCALARS) {
14120 NDR_CHECK(ndr_pull_align(ndr, 4));
14122 uint32_t _flags_save_string = ndr->flags;
14123 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14124 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
14125 ndr->flags = _flags_save_string;
14128 if (ndr_flags & NDR_BUFFERS) {
14130 return NDR_ERR_SUCCESS;
14133 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverDirectoryInfo1 *r)
14135 ndr_print_struct(ndr, name, "spoolss_DriverDirectoryInfo1");
14137 ndr_print_string(ndr, "directory_name", r->directory_name);
14141 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
14143 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo1, ic);
14146 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverDirectoryInfo *r)
14148 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14150 uint32_t _flags_save_UNION = ndr->flags;
14151 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
14152 if (ndr_flags & NDR_SCALARS) {
14153 int level = ndr_push_get_switch_value(ndr, r);
14156 NDR_CHECK(ndr_push_align(ndr, 4));
14157 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14158 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14162 NDR_CHECK(ndr_push_align(ndr, 4));
14163 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14164 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14169 if (ndr_flags & NDR_BUFFERS) {
14170 int level = ndr_push_get_switch_value(ndr, r);
14171 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14181 ndr->flags = _flags_save_UNION;
14183 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14184 return NDR_ERR_SUCCESS;
14187 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverDirectoryInfo *r)
14189 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14192 uint32_t _flags_save_UNION = ndr->flags;
14193 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
14194 level = ndr_pull_get_switch_value(ndr, r);
14195 if (ndr_flags & NDR_SCALARS) {
14198 NDR_CHECK(ndr_pull_align(ndr, 4));
14199 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14200 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14204 NDR_CHECK(ndr_pull_align(ndr, 4));
14205 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14206 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14211 if (ndr_flags & NDR_BUFFERS) {
14212 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14222 ndr->flags = _flags_save_UNION;
14224 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14225 return NDR_ERR_SUCCESS;
14228 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverDirectoryInfo *r)
14232 uint32_t _flags_save_UNION = ndr->flags;
14233 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
14234 level = ndr_print_get_switch_value(ndr, r);
14235 ndr_print_union(ndr, name, level, "spoolss_DriverDirectoryInfo");
14238 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
14242 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
14246 ndr->flags = _flags_save_UNION;
14250 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14252 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
14253 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo, ic);
14256 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorInfo1 *r)
14258 if (ndr_flags & NDR_SCALARS) {
14259 NDR_CHECK(ndr_push_align(ndr, 4));
14261 uint32_t _flags_save_string = ndr->flags;
14262 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14263 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor_name));
14264 ndr->flags = _flags_save_string;
14267 if (ndr_flags & NDR_BUFFERS) {
14269 uint32_t _flags_save_string = ndr->flags;
14270 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14271 if (r->print_processor_name) {
14272 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor_name));
14273 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor_name));
14274 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor_name));
14276 ndr->flags = _flags_save_string;
14279 return NDR_ERR_SUCCESS;
14282 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorInfo1 *r)
14284 uint32_t _ptr_print_processor_name;
14285 TALLOC_CTX *_mem_save_print_processor_name_0;
14286 if (ndr_flags & NDR_SCALARS) {
14287 NDR_CHECK(ndr_pull_align(ndr, 4));
14289 uint32_t _flags_save_string = ndr->flags;
14290 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14291 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
14292 if (_ptr_print_processor_name) {
14293 NDR_PULL_ALLOC(ndr, r->print_processor_name);
14294 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor_name, _ptr_print_processor_name));
14296 r->print_processor_name = NULL;
14298 ndr->flags = _flags_save_string;
14301 if (ndr_flags & NDR_BUFFERS) {
14303 uint32_t _flags_save_string = ndr->flags;
14304 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14305 if (r->print_processor_name) {
14306 uint32_t _relative_save_offset;
14307 _relative_save_offset = ndr->offset;
14308 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor_name));
14309 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14310 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor_name, 0);
14311 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor_name));
14312 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
14313 ndr->offset = _relative_save_offset;
14315 ndr->flags = _flags_save_string;
14318 return NDR_ERR_SUCCESS;
14321 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorInfo1 *r)
14323 ndr_print_struct(ndr, name, "spoolss_PrintProcessorInfo1");
14325 ndr_print_ptr(ndr, "print_processor_name", r->print_processor_name);
14327 if (r->print_processor_name) {
14328 ndr_print_string(ndr, "print_processor_name", r->print_processor_name);
14334 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorInfo1(const struct spoolss_PrintProcessorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
14336 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorInfo1, ic);
14339 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorInfo *r)
14341 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14343 uint32_t _flags_save_UNION = ndr->flags;
14344 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
14345 if (ndr_flags & NDR_SCALARS) {
14346 int level = ndr_push_get_switch_value(ndr, r);
14349 NDR_CHECK(ndr_push_align(ndr, 4));
14350 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14351 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
14359 if (ndr_flags & NDR_BUFFERS) {
14360 int level = ndr_push_get_switch_value(ndr, r);
14361 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14364 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
14372 ndr->flags = _flags_save_UNION;
14374 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14375 return NDR_ERR_SUCCESS;
14378 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorInfo *r)
14380 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14383 uint32_t _flags_save_UNION = ndr->flags;
14384 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
14385 level = ndr_pull_get_switch_value(ndr, r);
14386 if (ndr_flags & NDR_SCALARS) {
14389 NDR_CHECK(ndr_pull_align(ndr, 4));
14390 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14391 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
14399 if (ndr_flags & NDR_BUFFERS) {
14400 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14403 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
14411 ndr->flags = _flags_save_UNION;
14413 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14414 return NDR_ERR_SUCCESS;
14417 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorInfo *r)
14421 uint32_t _flags_save_UNION = ndr->flags;
14422 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
14423 level = ndr_print_get_switch_value(ndr, r);
14424 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorInfo");
14427 ndr_print_spoolss_PrintProcessorInfo1(ndr, "info1", &r->info1);
14434 ndr->flags = _flags_save_UNION;
14438 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
14440 if (ndr_flags & NDR_SCALARS) {
14441 NDR_CHECK(ndr_push_align(ndr, 4));
14443 uint32_t _flags_save_string = ndr->flags;
14444 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14445 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
14446 ndr->flags = _flags_save_string;
14449 if (ndr_flags & NDR_BUFFERS) {
14451 return NDR_ERR_SUCCESS;
14454 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorDirectoryInfo1 *r)
14456 if (ndr_flags & NDR_SCALARS) {
14457 NDR_CHECK(ndr_pull_align(ndr, 4));
14459 uint32_t _flags_save_string = ndr->flags;
14460 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14461 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
14462 ndr->flags = _flags_save_string;
14465 if (ndr_flags & NDR_BUFFERS) {
14467 return NDR_ERR_SUCCESS;
14470 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
14472 ndr_print_struct(ndr, name, "spoolss_PrintProcessorDirectoryInfo1");
14474 ndr_print_string(ndr, "directory_name", r->directory_name);
14478 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
14480 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo1, ic);
14483 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorDirectoryInfo *r)
14485 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14487 uint32_t _flags_save_UNION = ndr->flags;
14488 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
14489 if (ndr_flags & NDR_SCALARS) {
14490 int level = ndr_push_get_switch_value(ndr, r);
14493 NDR_CHECK(ndr_push_align(ndr, 4));
14494 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14495 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14499 NDR_CHECK(ndr_push_align(ndr, 4));
14500 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14501 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14506 if (ndr_flags & NDR_BUFFERS) {
14507 int level = ndr_push_get_switch_value(ndr, r);
14508 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14518 ndr->flags = _flags_save_UNION;
14520 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14521 return NDR_ERR_SUCCESS;
14524 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorDirectoryInfo *r)
14526 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14529 uint32_t _flags_save_UNION = ndr->flags;
14530 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
14531 level = ndr_pull_get_switch_value(ndr, r);
14532 if (ndr_flags & NDR_SCALARS) {
14535 NDR_CHECK(ndr_pull_align(ndr, 4));
14536 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14537 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14541 NDR_CHECK(ndr_pull_align(ndr, 4));
14542 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14543 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14548 if (ndr_flags & NDR_BUFFERS) {
14549 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14559 ndr->flags = _flags_save_UNION;
14561 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14562 return NDR_ERR_SUCCESS;
14565 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorDirectoryInfo *r)
14569 uint32_t _flags_save_UNION = ndr->flags;
14570 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
14571 level = ndr_print_get_switch_value(ndr, r);
14572 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorDirectoryInfo");
14575 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
14579 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
14583 ndr->flags = _flags_save_UNION;
14587 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14589 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
14590 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo, ic);
14593 static enum ndr_err_code ndr_push_spoolss_DocumentInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DocumentInfo1 *r)
14595 if (ndr_flags & NDR_SCALARS) {
14596 NDR_CHECK(ndr_push_align(ndr, 4));
14597 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
14598 NDR_CHECK(ndr_push_unique_ptr(ndr, r->output_file));
14599 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
14601 if (ndr_flags & NDR_BUFFERS) {
14602 if (r->document_name) {
14603 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
14604 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14605 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
14606 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14608 if (r->output_file) {
14609 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
14610 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14611 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
14612 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->output_file, ndr_charset_length(r->output_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14615 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
14616 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14617 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
14618 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14621 return NDR_ERR_SUCCESS;
14624 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DocumentInfo1 *r)
14626 uint32_t _ptr_document_name;
14627 TALLOC_CTX *_mem_save_document_name_0;
14628 uint32_t _ptr_output_file;
14629 TALLOC_CTX *_mem_save_output_file_0;
14630 uint32_t _ptr_datatype;
14631 TALLOC_CTX *_mem_save_datatype_0;
14632 if (ndr_flags & NDR_SCALARS) {
14633 NDR_CHECK(ndr_pull_align(ndr, 4));
14634 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
14635 if (_ptr_document_name) {
14636 NDR_PULL_ALLOC(ndr, r->document_name);
14638 r->document_name = NULL;
14640 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_output_file));
14641 if (_ptr_output_file) {
14642 NDR_PULL_ALLOC(ndr, r->output_file);
14644 r->output_file = NULL;
14646 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
14647 if (_ptr_datatype) {
14648 NDR_PULL_ALLOC(ndr, r->datatype);
14650 r->datatype = NULL;
14653 if (ndr_flags & NDR_BUFFERS) {
14654 if (r->document_name) {
14655 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14656 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
14657 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
14658 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
14659 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
14660 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));
14662 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
14663 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
14664 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
14666 if (r->output_file) {
14667 _mem_save_output_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
14668 NDR_PULL_SET_MEM_CTX(ndr, r->output_file, 0);
14669 NDR_CHECK(ndr_pull_array_size(ndr, &r->output_file));
14670 NDR_CHECK(ndr_pull_array_length(ndr, &r->output_file));
14671 if (ndr_get_array_length(ndr, &r->output_file) > ndr_get_array_size(ndr, &r->output_file)) {
14672 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));
14674 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t)));
14675 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->output_file, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t), CH_UTF16));
14676 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_output_file_0, 0);
14679 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
14680 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
14681 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
14682 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
14683 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
14684 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));
14686 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
14687 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
14688 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
14691 return NDR_ERR_SUCCESS;
14694 _PUBLIC_ void ndr_print_spoolss_DocumentInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DocumentInfo1 *r)
14696 ndr_print_struct(ndr, name, "spoolss_DocumentInfo1");
14698 ndr_print_ptr(ndr, "document_name", r->document_name);
14700 if (r->document_name) {
14701 ndr_print_string(ndr, "document_name", r->document_name);
14704 ndr_print_ptr(ndr, "output_file", r->output_file);
14706 if (r->output_file) {
14707 ndr_print_string(ndr, "output_file", r->output_file);
14710 ndr_print_ptr(ndr, "datatype", r->datatype);
14713 ndr_print_string(ndr, "datatype", r->datatype);
14719 static enum ndr_err_code ndr_push_spoolss_DocumentInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DocumentInfo *r)
14721 if (ndr_flags & NDR_SCALARS) {
14722 int level = ndr_push_get_switch_value(ndr, r);
14723 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
14726 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
14740 if (ndr_flags & NDR_BUFFERS) {
14741 int level = ndr_push_get_switch_value(ndr, r);
14745 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
14760 return NDR_ERR_SUCCESS;
14763 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DocumentInfo *r)
14767 TALLOC_CTX *_mem_save_info1_0;
14768 level = ndr_pull_get_switch_value(ndr, r);
14769 if (ndr_flags & NDR_SCALARS) {
14770 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
14771 if (_level != level) {
14772 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
14776 uint32_t _ptr_info1;
14777 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
14779 NDR_PULL_ALLOC(ndr, r->info1);
14796 if (ndr_flags & NDR_BUFFERS) {
14800 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
14801 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
14802 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
14803 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
14818 return NDR_ERR_SUCCESS;
14821 _PUBLIC_ void ndr_print_spoolss_DocumentInfo(struct ndr_print *ndr, const char *name, const union spoolss_DocumentInfo *r)
14824 level = ndr_print_get_switch_value(ndr, r);
14825 ndr_print_union(ndr, name, level, "spoolss_DocumentInfo");
14828 ndr_print_ptr(ndr, "info1", r->info1);
14831 ndr_print_spoolss_DocumentInfo1(ndr, "info1", r->info1);
14848 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersion(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersion *r)
14850 if (ndr_flags & NDR_SCALARS) {
14851 NDR_CHECK(ndr_push_align(ndr, 4));
14852 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersion(r, ndr->iconv_convenience, ndr->flags)));
14853 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
14854 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
14855 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
14856 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
14858 uint32_t _flags_save_string = ndr->flags;
14859 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14861 struct ndr_push *_ndr_extra_string;
14862 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
14863 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
14864 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
14866 ndr->flags = _flags_save_string;
14869 if (ndr_flags & NDR_BUFFERS) {
14871 return NDR_ERR_SUCCESS;
14874 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersion(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersion *r)
14876 if (ndr_flags & NDR_SCALARS) {
14877 NDR_CHECK(ndr_pull_align(ndr, 4));
14878 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
14879 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
14880 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
14881 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
14882 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
14884 uint32_t _flags_save_string = ndr->flags;
14885 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14887 struct ndr_pull *_ndr_extra_string;
14888 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
14889 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
14890 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
14892 ndr->flags = _flags_save_string;
14895 if (ndr_flags & NDR_BUFFERS) {
14897 return NDR_ERR_SUCCESS;
14900 _PUBLIC_ void ndr_print_spoolss_OSVersion(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersion *r)
14902 ndr_print_struct(ndr, name, "spoolss_OSVersion");
14904 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);
14905 ndr_print_uint32(ndr, "major", r->major);
14906 ndr_print_uint32(ndr, "minor", r->minor);
14907 ndr_print_uint32(ndr, "build", r->build);
14908 ndr_print_uint32(ndr, "unknown", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown);
14909 ndr_print_string(ndr, "extra_string", r->extra_string);
14913 _PUBLIC_ size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion *r, struct smb_iconv_convenience *ic, int flags)
14915 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion, ic);
14918 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersionEx(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersionEx *r)
14920 if (ndr_flags & NDR_SCALARS) {
14921 NDR_CHECK(ndr_push_align(ndr, 4));
14922 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersionEx(r, ndr->iconv_convenience, ndr->flags)));
14923 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
14924 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
14925 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
14926 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
14928 uint32_t _flags_save_string = ndr->flags;
14929 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14931 struct ndr_push *_ndr_extra_string;
14932 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
14933 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
14934 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
14936 ndr->flags = _flags_save_string;
14938 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
14939 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
14941 if (ndr_flags & NDR_BUFFERS) {
14943 return NDR_ERR_SUCCESS;
14946 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersionEx(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersionEx *r)
14948 if (ndr_flags & NDR_SCALARS) {
14949 NDR_CHECK(ndr_pull_align(ndr, 4));
14950 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
14951 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
14952 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
14953 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
14954 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
14956 uint32_t _flags_save_string = ndr->flags;
14957 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14959 struct ndr_pull *_ndr_extra_string;
14960 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
14961 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
14962 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
14964 ndr->flags = _flags_save_string;
14966 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
14967 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
14969 if (ndr_flags & NDR_BUFFERS) {
14971 return NDR_ERR_SUCCESS;
14974 _PUBLIC_ void ndr_print_spoolss_OSVersionEx(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersionEx *r)
14976 ndr_print_struct(ndr, name, "spoolss_OSVersionEx");
14978 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);
14979 ndr_print_uint32(ndr, "major", r->major);
14980 ndr_print_uint32(ndr, "minor", r->minor);
14981 ndr_print_uint32(ndr, "build", r->build);
14982 ndr_print_uint32(ndr, "unknown1", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown1);
14983 ndr_print_string(ndr, "extra_string", r->extra_string);
14984 ndr_print_uint32(ndr, "unknown2", r->unknown2);
14985 ndr_print_uint32(ndr, "unknown3", r->unknown3);
14989 _PUBLIC_ size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx *r, struct smb_iconv_convenience *ic, int flags)
14991 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx, ic);
14994 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterData *r)
14996 if (ndr_flags & NDR_SCALARS) {
14997 int level = ndr_push_get_switch_value(ndr, r);
15004 uint32_t _flags_save_string = ndr->flags;
15005 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15006 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
15007 ndr->flags = _flags_save_string;
15013 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15014 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15015 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
15016 ndr->flags = _flags_save_DATA_BLOB;
15021 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
15024 case REG_MULTI_SZ: {
15026 uint32_t _flags_save_string_array = ndr->flags;
15027 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15028 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
15029 ndr->flags = _flags_save_string_array;
15035 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15036 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15037 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
15038 ndr->flags = _flags_save_DATA_BLOB;
15044 if (ndr_flags & NDR_BUFFERS) {
15045 int level = ndr_push_get_switch_value(ndr, r);
15067 return NDR_ERR_SUCCESS;
15070 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterData *r)
15073 level = ndr_pull_get_switch_value(ndr, r);
15074 if (ndr_flags & NDR_SCALARS) {
15081 uint32_t _flags_save_string = ndr->flags;
15082 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15083 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
15084 ndr->flags = _flags_save_string;
15090 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15091 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15092 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
15093 ndr->flags = _flags_save_DATA_BLOB;
15098 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
15101 case REG_MULTI_SZ: {
15103 uint32_t _flags_save_string_array = ndr->flags;
15104 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15105 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
15106 ndr->flags = _flags_save_string_array;
15112 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15113 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15114 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
15115 ndr->flags = _flags_save_DATA_BLOB;
15121 if (ndr_flags & NDR_BUFFERS) {
15143 return NDR_ERR_SUCCESS;
15146 _PUBLIC_ void ndr_print_spoolss_PrinterData(struct ndr_print *ndr, const char *name, const union spoolss_PrinterData *r)
15149 level = ndr_print_get_switch_value(ndr, r);
15150 ndr_print_union(ndr, name, level, "spoolss_PrinterData");
15156 ndr_print_string(ndr, "string", r->string);
15160 ndr_print_DATA_BLOB(ndr, "binary", r->binary);
15164 ndr_print_uint32(ndr, "value", r->value);
15168 ndr_print_string_array(ndr, "string_array", r->string_array);
15172 ndr_print_DATA_BLOB(ndr, "data", r->data);
15178 _PUBLIC_ size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15180 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterData, ic);
15183 static enum ndr_err_code ndr_push_spoolss_FormFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_FormFlags r)
15185 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
15186 return NDR_ERR_SUCCESS;
15189 static enum ndr_err_code ndr_pull_spoolss_FormFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_FormFlags *r)
15192 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
15194 return NDR_ERR_SUCCESS;
15197 _PUBLIC_ void ndr_print_spoolss_FormFlags(struct ndr_print *ndr, const char *name, enum spoolss_FormFlags r)
15199 const char *val = NULL;
15202 case SPOOLSS_FORM_USER: val = "SPOOLSS_FORM_USER"; break;
15203 case SPOOLSS_FORM_BUILTIN: val = "SPOOLSS_FORM_BUILTIN"; break;
15204 case SPOOLSS_FORM_PRINTER: val = "SPOOLSS_FORM_PRINTER"; break;
15206 ndr_print_enum(ndr, name, "ENUM", val, r);
15209 static enum ndr_err_code ndr_push_spoolss_FormSize(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormSize *r)
15211 if (ndr_flags & NDR_SCALARS) {
15212 NDR_CHECK(ndr_push_align(ndr, 4));
15213 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->width));
15214 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->height));
15216 if (ndr_flags & NDR_BUFFERS) {
15218 return NDR_ERR_SUCCESS;
15221 static enum ndr_err_code ndr_pull_spoolss_FormSize(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormSize *r)
15223 if (ndr_flags & NDR_SCALARS) {
15224 NDR_CHECK(ndr_pull_align(ndr, 4));
15225 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->width));
15226 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->height));
15228 if (ndr_flags & NDR_BUFFERS) {
15230 return NDR_ERR_SUCCESS;
15233 _PUBLIC_ void ndr_print_spoolss_FormSize(struct ndr_print *ndr, const char *name, const struct spoolss_FormSize *r)
15235 ndr_print_struct(ndr, name, "spoolss_FormSize");
15237 ndr_print_uint32(ndr, "width", r->width);
15238 ndr_print_uint32(ndr, "height", r->height);
15242 static enum ndr_err_code ndr_push_spoolss_FormArea(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormArea *r)
15244 if (ndr_flags & NDR_SCALARS) {
15245 NDR_CHECK(ndr_push_align(ndr, 4));
15246 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->left));
15247 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->top));
15248 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->right));
15249 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bottom));
15251 if (ndr_flags & NDR_BUFFERS) {
15253 return NDR_ERR_SUCCESS;
15256 static enum ndr_err_code ndr_pull_spoolss_FormArea(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormArea *r)
15258 if (ndr_flags & NDR_SCALARS) {
15259 NDR_CHECK(ndr_pull_align(ndr, 4));
15260 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->left));
15261 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->top));
15262 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->right));
15263 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bottom));
15265 if (ndr_flags & NDR_BUFFERS) {
15267 return NDR_ERR_SUCCESS;
15270 _PUBLIC_ void ndr_print_spoolss_FormArea(struct ndr_print *ndr, const char *name, const struct spoolss_FormArea *r)
15272 ndr_print_struct(ndr, name, "spoolss_FormArea");
15274 ndr_print_uint32(ndr, "left", r->left);
15275 ndr_print_uint32(ndr, "top", r->top);
15276 ndr_print_uint32(ndr, "right", r->right);
15277 ndr_print_uint32(ndr, "bottom", r->bottom);
15281 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo1 *r)
15283 if (ndr_flags & NDR_SCALARS) {
15284 NDR_CHECK(ndr_push_align(ndr, 4));
15285 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15287 uint32_t _flags_save_string = ndr->flags;
15288 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15289 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
15290 ndr->flags = _flags_save_string;
15292 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15293 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15295 if (ndr_flags & NDR_BUFFERS) {
15297 uint32_t _flags_save_string = ndr->flags;
15298 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15299 if (r->form_name) {
15300 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->form_name));
15301 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
15302 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->form_name));
15304 ndr->flags = _flags_save_string;
15307 return NDR_ERR_SUCCESS;
15310 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo1 *r)
15312 uint32_t _ptr_form_name;
15313 TALLOC_CTX *_mem_save_form_name_0;
15314 if (ndr_flags & NDR_SCALARS) {
15315 NDR_CHECK(ndr_pull_align(ndr, 4));
15316 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15318 uint32_t _flags_save_string = ndr->flags;
15319 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15320 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15321 if (_ptr_form_name) {
15322 NDR_PULL_ALLOC(ndr, r->form_name);
15323 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
15325 r->form_name = NULL;
15327 ndr->flags = _flags_save_string;
15329 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15330 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15332 if (ndr_flags & NDR_BUFFERS) {
15334 uint32_t _flags_save_string = ndr->flags;
15335 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15336 if (r->form_name) {
15337 uint32_t _relative_save_offset;
15338 _relative_save_offset = ndr->offset;
15339 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
15340 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15341 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15342 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
15343 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15344 ndr->offset = _relative_save_offset;
15346 ndr->flags = _flags_save_string;
15349 return NDR_ERR_SUCCESS;
15352 _PUBLIC_ void ndr_print_spoolss_FormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo1 *r)
15354 ndr_print_struct(ndr, name, "spoolss_FormInfo1");
15356 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15357 ndr_print_ptr(ndr, "form_name", r->form_name);
15359 if (r->form_name) {
15360 ndr_print_string(ndr, "form_name", r->form_name);
15363 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15364 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15368 _PUBLIC_ size_t ndr_size_spoolss_FormInfo1(const struct spoolss_FormInfo1 *r, struct smb_iconv_convenience *ic, int flags)
15370 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo1, ic);
15373 static enum ndr_err_code ndr_push_spoolss_FormStringType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
15375 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
15376 return NDR_ERR_SUCCESS;
15379 static enum ndr_err_code ndr_pull_spoolss_FormStringType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
15382 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
15384 return NDR_ERR_SUCCESS;
15387 _PUBLIC_ void ndr_print_spoolss_FormStringType(struct ndr_print *ndr, const char *name, uint32_t r)
15389 ndr_print_uint32(ndr, name, r);
15391 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE, r);
15392 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL, r);
15393 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR, r);
15397 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo2 *r)
15399 if (ndr_flags & NDR_SCALARS) {
15400 NDR_CHECK(ndr_push_align(ndr, 4));
15401 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15403 uint32_t _flags_save_string = ndr->flags;
15404 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15405 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
15406 ndr->flags = _flags_save_string;
15408 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15409 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15411 uint32_t _flags_save_string = ndr->flags;
15412 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15413 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->keyword));
15414 ndr->flags = _flags_save_string;
15416 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
15418 uint32_t _flags_save_string = ndr->flags;
15419 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15420 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->mui_dll));
15421 ndr->flags = _flags_save_string;
15423 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
15425 uint32_t _flags_save_string = ndr->flags;
15426 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15427 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->display_name));
15428 ndr->flags = _flags_save_string;
15430 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
15432 if (ndr_flags & NDR_BUFFERS) {
15434 uint32_t _flags_save_string = ndr->flags;
15435 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15436 if (r->form_name) {
15437 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->form_name));
15438 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
15439 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->form_name));
15441 ndr->flags = _flags_save_string;
15444 uint32_t _flags_save_string = ndr->flags;
15445 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15447 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->keyword));
15448 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->keyword));
15449 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->keyword));
15451 ndr->flags = _flags_save_string;
15454 uint32_t _flags_save_string = ndr->flags;
15455 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15457 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->mui_dll));
15458 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mui_dll));
15459 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->mui_dll));
15461 ndr->flags = _flags_save_string;
15464 uint32_t _flags_save_string = ndr->flags;
15465 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15466 if (r->display_name) {
15467 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->display_name));
15468 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->display_name));
15469 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->display_name));
15471 ndr->flags = _flags_save_string;
15474 return NDR_ERR_SUCCESS;
15477 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo2 *r)
15479 uint32_t _ptr_form_name;
15480 TALLOC_CTX *_mem_save_form_name_0;
15481 uint32_t _ptr_keyword;
15482 TALLOC_CTX *_mem_save_keyword_0;
15483 uint32_t _ptr_mui_dll;
15484 TALLOC_CTX *_mem_save_mui_dll_0;
15485 uint32_t _ptr_display_name;
15486 TALLOC_CTX *_mem_save_display_name_0;
15487 if (ndr_flags & NDR_SCALARS) {
15488 NDR_CHECK(ndr_pull_align(ndr, 4));
15489 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15491 uint32_t _flags_save_string = ndr->flags;
15492 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15493 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15494 if (_ptr_form_name) {
15495 NDR_PULL_ALLOC(ndr, r->form_name);
15496 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
15498 r->form_name = NULL;
15500 ndr->flags = _flags_save_string;
15502 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15503 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15505 uint32_t _flags_save_string = ndr->flags;
15506 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15507 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
15508 if (_ptr_keyword) {
15509 NDR_PULL_ALLOC(ndr, r->keyword);
15510 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->keyword, _ptr_keyword));
15514 ndr->flags = _flags_save_string;
15516 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
15518 uint32_t _flags_save_string = ndr->flags;
15519 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15520 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
15521 if (_ptr_mui_dll) {
15522 NDR_PULL_ALLOC(ndr, r->mui_dll);
15523 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->mui_dll, _ptr_mui_dll));
15527 ndr->flags = _flags_save_string;
15529 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
15531 uint32_t _flags_save_string = ndr->flags;
15532 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15533 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
15534 if (_ptr_display_name) {
15535 NDR_PULL_ALLOC(ndr, r->display_name);
15536 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->display_name, _ptr_display_name));
15538 r->display_name = NULL;
15540 ndr->flags = _flags_save_string;
15542 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
15544 if (ndr_flags & NDR_BUFFERS) {
15546 uint32_t _flags_save_string = ndr->flags;
15547 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15548 if (r->form_name) {
15549 uint32_t _relative_save_offset;
15550 _relative_save_offset = ndr->offset;
15551 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
15552 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15553 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15554 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
15555 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15556 ndr->offset = _relative_save_offset;
15558 ndr->flags = _flags_save_string;
15561 uint32_t _flags_save_string = ndr->flags;
15562 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15564 uint32_t _relative_save_offset;
15565 _relative_save_offset = ndr->offset;
15566 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->keyword));
15567 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
15568 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
15569 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->keyword));
15570 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
15571 ndr->offset = _relative_save_offset;
15573 ndr->flags = _flags_save_string;
15576 uint32_t _flags_save_string = ndr->flags;
15577 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15579 uint32_t _relative_save_offset;
15580 _relative_save_offset = ndr->offset;
15581 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->mui_dll));
15582 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
15583 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
15584 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mui_dll));
15585 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
15586 ndr->offset = _relative_save_offset;
15588 ndr->flags = _flags_save_string;
15591 uint32_t _flags_save_string = ndr->flags;
15592 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15593 if (r->display_name) {
15594 uint32_t _relative_save_offset;
15595 _relative_save_offset = ndr->offset;
15596 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->display_name));
15597 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15598 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
15599 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->display_name));
15600 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
15601 ndr->offset = _relative_save_offset;
15603 ndr->flags = _flags_save_string;
15606 return NDR_ERR_SUCCESS;
15609 _PUBLIC_ void ndr_print_spoolss_FormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo2 *r)
15611 ndr_print_struct(ndr, name, "spoolss_FormInfo2");
15613 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15614 ndr_print_ptr(ndr, "form_name", r->form_name);
15616 if (r->form_name) {
15617 ndr_print_string(ndr, "form_name", r->form_name);
15620 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15621 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15622 ndr_print_ptr(ndr, "keyword", r->keyword);
15625 ndr_print_string(ndr, "keyword", r->keyword);
15628 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
15629 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
15632 ndr_print_string(ndr, "mui_dll", r->mui_dll);
15635 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
15636 ndr_print_ptr(ndr, "display_name", r->display_name);
15638 if (r->display_name) {
15639 ndr_print_string(ndr, "display_name", r->display_name);
15642 ndr_print_uint32(ndr, "lang_id", r->lang_id);
15646 _PUBLIC_ size_t ndr_size_spoolss_FormInfo2(const struct spoolss_FormInfo2 *r, struct smb_iconv_convenience *ic, int flags)
15648 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo2, ic);
15651 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_FormInfo *r)
15653 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
15655 uint32_t _flags_save_UNION = ndr->flags;
15656 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15657 if (ndr_flags & NDR_SCALARS) {
15658 int level = ndr_push_get_switch_value(ndr, r);
15661 NDR_CHECK(ndr_push_align(ndr, 4));
15662 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15663 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
15667 NDR_CHECK(ndr_push_align(ndr, 4));
15668 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15669 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
15677 if (ndr_flags & NDR_BUFFERS) {
15678 int level = ndr_push_get_switch_value(ndr, r);
15679 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
15682 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
15686 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
15694 ndr->flags = _flags_save_UNION;
15696 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
15697 return NDR_ERR_SUCCESS;
15700 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_FormInfo *r)
15702 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
15705 uint32_t _flags_save_UNION = ndr->flags;
15706 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15707 level = ndr_pull_get_switch_value(ndr, r);
15708 if (ndr_flags & NDR_SCALARS) {
15711 NDR_CHECK(ndr_pull_align(ndr, 4));
15712 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15713 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
15717 NDR_CHECK(ndr_pull_align(ndr, 4));
15718 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15719 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
15727 if (ndr_flags & NDR_BUFFERS) {
15728 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15731 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
15735 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
15743 ndr->flags = _flags_save_UNION;
15745 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15746 return NDR_ERR_SUCCESS;
15749 _PUBLIC_ void ndr_print_spoolss_FormInfo(struct ndr_print *ndr, const char *name, const union spoolss_FormInfo *r)
15753 uint32_t _flags_save_UNION = ndr->flags;
15754 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15755 level = ndr_print_get_switch_value(ndr, r);
15756 ndr_print_union(ndr, name, level, "spoolss_FormInfo");
15759 ndr_print_spoolss_FormInfo1(ndr, "info1", &r->info1);
15763 ndr_print_spoolss_FormInfo2(ndr, "info2", &r->info2);
15770 ndr->flags = _flags_save_UNION;
15774 _PUBLIC_ size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15776 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
15777 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo, ic);
15780 static enum ndr_err_code ndr_push_spoolss_AddFormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo1 *r)
15782 if (ndr_flags & NDR_SCALARS) {
15783 NDR_CHECK(ndr_push_align(ndr, 4));
15784 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15785 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
15786 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15787 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15789 if (ndr_flags & NDR_BUFFERS) {
15790 if (r->form_name) {
15791 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15792 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15793 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15794 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15797 return NDR_ERR_SUCCESS;
15800 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo1 *r)
15802 uint32_t _ptr_form_name;
15803 TALLOC_CTX *_mem_save_form_name_0;
15804 if (ndr_flags & NDR_SCALARS) {
15805 NDR_CHECK(ndr_pull_align(ndr, 4));
15806 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15807 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15808 if (_ptr_form_name) {
15809 NDR_PULL_ALLOC(ndr, r->form_name);
15811 r->form_name = NULL;
15813 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15814 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15816 if (ndr_flags & NDR_BUFFERS) {
15817 if (r->form_name) {
15818 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15819 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15820 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
15821 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
15822 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
15823 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));
15825 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
15826 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
15827 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15830 return NDR_ERR_SUCCESS;
15833 _PUBLIC_ void ndr_print_spoolss_AddFormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo1 *r)
15835 ndr_print_struct(ndr, name, "spoolss_AddFormInfo1");
15837 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15838 ndr_print_ptr(ndr, "form_name", r->form_name);
15840 if (r->form_name) {
15841 ndr_print_string(ndr, "form_name", r->form_name);
15844 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15845 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15849 static enum ndr_err_code ndr_push_spoolss_AddFormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo2 *r)
15851 if (ndr_flags & NDR_SCALARS) {
15852 NDR_CHECK(ndr_push_align(ndr, 4));
15853 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15854 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
15855 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15856 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15857 NDR_CHECK(ndr_push_unique_ptr(ndr, r->keyword));
15858 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
15859 NDR_CHECK(ndr_push_unique_ptr(ndr, r->mui_dll));
15860 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
15861 NDR_CHECK(ndr_push_unique_ptr(ndr, r->display_name));
15862 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
15864 if (ndr_flags & NDR_BUFFERS) {
15865 if (r->form_name) {
15866 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15867 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15868 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15869 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15872 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
15873 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15874 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
15875 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->keyword, ndr_charset_length(r->keyword, CH_DOS), sizeof(uint8_t), CH_DOS));
15878 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
15879 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15880 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
15881 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->mui_dll, ndr_charset_length(r->mui_dll, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15883 if (r->display_name) {
15884 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
15885 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15886 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
15887 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->display_name, ndr_charset_length(r->display_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15890 return NDR_ERR_SUCCESS;
15893 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo2 *r)
15895 uint32_t _ptr_form_name;
15896 TALLOC_CTX *_mem_save_form_name_0;
15897 uint32_t _ptr_keyword;
15898 TALLOC_CTX *_mem_save_keyword_0;
15899 uint32_t _ptr_mui_dll;
15900 TALLOC_CTX *_mem_save_mui_dll_0;
15901 uint32_t _ptr_display_name;
15902 TALLOC_CTX *_mem_save_display_name_0;
15903 if (ndr_flags & NDR_SCALARS) {
15904 NDR_CHECK(ndr_pull_align(ndr, 4));
15905 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15906 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15907 if (_ptr_form_name) {
15908 NDR_PULL_ALLOC(ndr, r->form_name);
15910 r->form_name = NULL;
15912 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15913 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15914 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
15915 if (_ptr_keyword) {
15916 NDR_PULL_ALLOC(ndr, r->keyword);
15920 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
15921 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
15922 if (_ptr_mui_dll) {
15923 NDR_PULL_ALLOC(ndr, r->mui_dll);
15927 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
15928 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
15929 if (_ptr_display_name) {
15930 NDR_PULL_ALLOC(ndr, r->display_name);
15932 r->display_name = NULL;
15934 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
15936 if (ndr_flags & NDR_BUFFERS) {
15937 if (r->form_name) {
15938 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15939 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15940 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
15941 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
15942 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
15943 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));
15945 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
15946 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
15947 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15950 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
15951 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
15952 NDR_CHECK(ndr_pull_array_size(ndr, &r->keyword));
15953 NDR_CHECK(ndr_pull_array_length(ndr, &r->keyword));
15954 if (ndr_get_array_length(ndr, &r->keyword) > ndr_get_array_size(ndr, &r->keyword)) {
15955 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->keyword), ndr_get_array_length(ndr, &r->keyword));
15957 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t)));
15958 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->keyword, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t), CH_DOS));
15959 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
15962 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
15963 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
15964 NDR_CHECK(ndr_pull_array_size(ndr, &r->mui_dll));
15965 NDR_CHECK(ndr_pull_array_length(ndr, &r->mui_dll));
15966 if (ndr_get_array_length(ndr, &r->mui_dll) > ndr_get_array_size(ndr, &r->mui_dll)) {
15967 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->mui_dll), ndr_get_array_length(ndr, &r->mui_dll));
15969 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t)));
15970 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->mui_dll, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t), CH_UTF16));
15971 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
15973 if (r->display_name) {
15974 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15975 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
15976 NDR_CHECK(ndr_pull_array_size(ndr, &r->display_name));
15977 NDR_CHECK(ndr_pull_array_length(ndr, &r->display_name));
15978 if (ndr_get_array_length(ndr, &r->display_name) > ndr_get_array_size(ndr, &r->display_name)) {
15979 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->display_name), ndr_get_array_length(ndr, &r->display_name));
15981 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t)));
15982 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->display_name, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t), CH_UTF16));
15983 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
15986 return NDR_ERR_SUCCESS;
15989 _PUBLIC_ void ndr_print_spoolss_AddFormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo2 *r)
15991 ndr_print_struct(ndr, name, "spoolss_AddFormInfo2");
15993 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15994 ndr_print_ptr(ndr, "form_name", r->form_name);
15996 if (r->form_name) {
15997 ndr_print_string(ndr, "form_name", r->form_name);
16000 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16001 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16002 ndr_print_ptr(ndr, "keyword", r->keyword);
16005 ndr_print_string(ndr, "keyword", r->keyword);
16008 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
16009 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
16012 ndr_print_string(ndr, "mui_dll", r->mui_dll);
16015 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
16016 ndr_print_ptr(ndr, "display_name", r->display_name);
16018 if (r->display_name) {
16019 ndr_print_string(ndr, "display_name", r->display_name);
16022 ndr_print_uint32(ndr, "lang_id", r->lang_id);
16026 static enum ndr_err_code ndr_push_spoolss_AddFormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddFormInfo *r)
16028 if (ndr_flags & NDR_SCALARS) {
16029 int level = ndr_push_get_switch_value(ndr, r);
16030 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
16033 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
16037 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
16041 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
16044 if (ndr_flags & NDR_BUFFERS) {
16045 int level = ndr_push_get_switch_value(ndr, r);
16049 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
16055 NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
16060 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
16063 return NDR_ERR_SUCCESS;
16066 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddFormInfo *r)
16070 TALLOC_CTX *_mem_save_info1_0;
16071 TALLOC_CTX *_mem_save_info2_0;
16072 level = ndr_pull_get_switch_value(ndr, r);
16073 if (ndr_flags & NDR_SCALARS) {
16074 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
16075 if (_level != level) {
16076 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
16080 uint32_t _ptr_info1;
16081 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
16083 NDR_PULL_ALLOC(ndr, r->info1);
16090 uint32_t _ptr_info2;
16091 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
16093 NDR_PULL_ALLOC(ndr, r->info2);
16100 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
16103 if (ndr_flags & NDR_BUFFERS) {
16107 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
16108 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
16109 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
16110 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
16116 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
16117 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
16118 NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
16119 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
16124 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
16127 return NDR_ERR_SUCCESS;
16130 _PUBLIC_ void ndr_print_spoolss_AddFormInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddFormInfo *r)
16133 level = ndr_print_get_switch_value(ndr, r);
16134 ndr_print_union(ndr, name, level, "spoolss_AddFormInfo");
16137 ndr_print_ptr(ndr, "info1", r->info1);
16140 ndr_print_spoolss_AddFormInfo1(ndr, "info1", r->info1);
16146 ndr_print_ptr(ndr, "info2", r->info2);
16149 ndr_print_spoolss_AddFormInfo2(ndr, "info2", r->info2);
16155 ndr_print_bad_level(ndr, name, level);
16159 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo1 *r)
16161 if (ndr_flags & NDR_SCALARS) {
16162 NDR_CHECK(ndr_push_align(ndr, 4));
16164 uint32_t _flags_save_string = ndr->flags;
16165 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16166 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
16167 ndr->flags = _flags_save_string;
16170 if (ndr_flags & NDR_BUFFERS) {
16172 uint32_t _flags_save_string = ndr->flags;
16173 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16174 if (r->port_name) {
16175 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->port_name));
16176 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
16177 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->port_name));
16179 ndr->flags = _flags_save_string;
16182 return NDR_ERR_SUCCESS;
16185 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo1 *r)
16187 uint32_t _ptr_port_name;
16188 TALLOC_CTX *_mem_save_port_name_0;
16189 if (ndr_flags & NDR_SCALARS) {
16190 NDR_CHECK(ndr_pull_align(ndr, 4));
16192 uint32_t _flags_save_string = ndr->flags;
16193 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16194 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
16195 if (_ptr_port_name) {
16196 NDR_PULL_ALLOC(ndr, r->port_name);
16197 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
16199 r->port_name = NULL;
16201 ndr->flags = _flags_save_string;
16204 if (ndr_flags & NDR_BUFFERS) {
16206 uint32_t _flags_save_string = ndr->flags;
16207 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16208 if (r->port_name) {
16209 uint32_t _relative_save_offset;
16210 _relative_save_offset = ndr->offset;
16211 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
16212 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16213 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
16214 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
16215 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
16216 ndr->offset = _relative_save_offset;
16218 ndr->flags = _flags_save_string;
16221 return NDR_ERR_SUCCESS;
16224 _PUBLIC_ void ndr_print_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo1 *r)
16226 ndr_print_struct(ndr, name, "spoolss_PortInfo1");
16228 ndr_print_ptr(ndr, "port_name", r->port_name);
16230 if (r->port_name) {
16231 ndr_print_string(ndr, "port_name", r->port_name);
16237 _PUBLIC_ size_t ndr_size_spoolss_PortInfo1(const struct spoolss_PortInfo1 *r, struct smb_iconv_convenience *ic, int flags)
16239 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo1, ic);
16242 static enum ndr_err_code ndr_push_spoolss_PortType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
16244 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16245 return NDR_ERR_SUCCESS;
16248 static enum ndr_err_code ndr_pull_spoolss_PortType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
16251 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16253 return NDR_ERR_SUCCESS;
16256 _PUBLIC_ void ndr_print_spoolss_PortType(struct ndr_print *ndr, const char *name, uint32_t r)
16258 ndr_print_uint32(ndr, name, r);
16260 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE, r);
16261 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ, r);
16262 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED, r);
16263 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED, r);
16267 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo2 *r)
16269 if (ndr_flags & NDR_SCALARS) {
16270 NDR_CHECK(ndr_push_align(ndr, 4));
16272 uint32_t _flags_save_string = ndr->flags;
16273 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16274 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
16275 ndr->flags = _flags_save_string;
16278 uint32_t _flags_save_string = ndr->flags;
16279 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16280 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
16281 ndr->flags = _flags_save_string;
16284 uint32_t _flags_save_string = ndr->flags;
16285 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16286 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
16287 ndr->flags = _flags_save_string;
16289 NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
16290 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
16292 if (ndr_flags & NDR_BUFFERS) {
16294 uint32_t _flags_save_string = ndr->flags;
16295 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16296 if (r->port_name) {
16297 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->port_name));
16298 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
16299 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->port_name));
16301 ndr->flags = _flags_save_string;
16304 uint32_t _flags_save_string = ndr->flags;
16305 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16306 if (r->monitor_name) {
16307 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
16308 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
16309 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
16311 ndr->flags = _flags_save_string;
16314 uint32_t _flags_save_string = ndr->flags;
16315 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16316 if (r->description) {
16317 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->description));
16318 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
16319 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->description));
16321 ndr->flags = _flags_save_string;
16324 return NDR_ERR_SUCCESS;
16327 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo2 *r)
16329 uint32_t _ptr_port_name;
16330 TALLOC_CTX *_mem_save_port_name_0;
16331 uint32_t _ptr_monitor_name;
16332 TALLOC_CTX *_mem_save_monitor_name_0;
16333 uint32_t _ptr_description;
16334 TALLOC_CTX *_mem_save_description_0;
16335 if (ndr_flags & NDR_SCALARS) {
16336 NDR_CHECK(ndr_pull_align(ndr, 4));
16338 uint32_t _flags_save_string = ndr->flags;
16339 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16340 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
16341 if (_ptr_port_name) {
16342 NDR_PULL_ALLOC(ndr, r->port_name);
16343 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
16345 r->port_name = NULL;
16347 ndr->flags = _flags_save_string;
16350 uint32_t _flags_save_string = ndr->flags;
16351 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16352 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
16353 if (_ptr_monitor_name) {
16354 NDR_PULL_ALLOC(ndr, r->monitor_name);
16355 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
16357 r->monitor_name = NULL;
16359 ndr->flags = _flags_save_string;
16362 uint32_t _flags_save_string = ndr->flags;
16363 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16364 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
16365 if (_ptr_description) {
16366 NDR_PULL_ALLOC(ndr, r->description);
16367 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
16369 r->description = NULL;
16371 ndr->flags = _flags_save_string;
16373 NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
16374 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
16376 if (ndr_flags & NDR_BUFFERS) {
16378 uint32_t _flags_save_string = ndr->flags;
16379 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16380 if (r->port_name) {
16381 uint32_t _relative_save_offset;
16382 _relative_save_offset = ndr->offset;
16383 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
16384 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16385 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
16386 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
16387 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
16388 ndr->offset = _relative_save_offset;
16390 ndr->flags = _flags_save_string;
16393 uint32_t _flags_save_string = ndr->flags;
16394 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16395 if (r->monitor_name) {
16396 uint32_t _relative_save_offset;
16397 _relative_save_offset = ndr->offset;
16398 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
16399 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16400 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
16401 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
16402 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
16403 ndr->offset = _relative_save_offset;
16405 ndr->flags = _flags_save_string;
16408 uint32_t _flags_save_string = ndr->flags;
16409 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16410 if (r->description) {
16411 uint32_t _relative_save_offset;
16412 _relative_save_offset = ndr->offset;
16413 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
16414 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
16415 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
16416 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
16417 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
16418 ndr->offset = _relative_save_offset;
16420 ndr->flags = _flags_save_string;
16423 return NDR_ERR_SUCCESS;
16426 _PUBLIC_ void ndr_print_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo2 *r)
16428 ndr_print_struct(ndr, name, "spoolss_PortInfo2");
16430 ndr_print_ptr(ndr, "port_name", r->port_name);
16432 if (r->port_name) {
16433 ndr_print_string(ndr, "port_name", r->port_name);
16436 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
16438 if (r->monitor_name) {
16439 ndr_print_string(ndr, "monitor_name", r->monitor_name);
16442 ndr_print_ptr(ndr, "description", r->description);
16444 if (r->description) {
16445 ndr_print_string(ndr, "description", r->description);
16448 ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
16449 ndr_print_uint32(ndr, "reserved", r->reserved);
16453 _PUBLIC_ size_t ndr_size_spoolss_PortInfo2(const struct spoolss_PortInfo2 *r, struct smb_iconv_convenience *ic, int flags)
16455 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo2, ic);
16458 static enum ndr_err_code ndr_push_spoolss_PortStatus(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortStatus r)
16460 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16461 return NDR_ERR_SUCCESS;
16464 static enum ndr_err_code ndr_pull_spoolss_PortStatus(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortStatus *r)
16467 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16469 return NDR_ERR_SUCCESS;
16472 _PUBLIC_ void ndr_print_spoolss_PortStatus(struct ndr_print *ndr, const char *name, enum spoolss_PortStatus r)
16474 const char *val = NULL;
16477 case PORT_STATUS_CLEAR: val = "PORT_STATUS_CLEAR"; break;
16478 case PORT_STATUS_OFFLINE: val = "PORT_STATUS_OFFLINE"; break;
16479 case PORT_STATUS_PAPER_JAM: val = "PORT_STATUS_PAPER_JAM"; break;
16480 case PORT_STATUS_PAPER_OUT: val = "PORT_STATUS_PAPER_OUT"; break;
16481 case PORT_STATUS_OUTPUT_BIN_FULL: val = "PORT_STATUS_OUTPUT_BIN_FULL"; break;
16482 case PORT_STATUS_PAPER_PROBLEM: val = "PORT_STATUS_PAPER_PROBLEM"; break;
16483 case PORT_STATUS_NO_TONER: val = "PORT_STATUS_NO_TONER"; break;
16484 case PORT_STATUS_DOOR_OPEN: val = "PORT_STATUS_DOOR_OPEN"; break;
16485 case PORT_STATUS_USER_INTERVENTION: val = "PORT_STATUS_USER_INTERVENTION"; break;
16486 case PORT_STATUS_OUT_OF_MEMORY: val = "PORT_STATUS_OUT_OF_MEMORY"; break;
16487 case PORT_STATUS_TONER_LOW: val = "PORT_STATUS_TONER_LOW"; break;
16488 case PORT_STATUS_WARMING_UP: val = "PORT_STATUS_WARMING_UP"; break;
16489 case PORT_STATUS_POWER_SAVE: val = "PORT_STATUS_POWER_SAVE"; break;
16491 ndr_print_enum(ndr, name, "ENUM", val, r);
16494 static enum ndr_err_code ndr_push_spoolss_PortSeverity(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortSeverity r)
16496 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16497 return NDR_ERR_SUCCESS;
16500 static enum ndr_err_code ndr_pull_spoolss_PortSeverity(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortSeverity *r)
16503 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16505 return NDR_ERR_SUCCESS;
16508 _PUBLIC_ void ndr_print_spoolss_PortSeverity(struct ndr_print *ndr, const char *name, enum spoolss_PortSeverity r)
16510 const char *val = NULL;
16513 case PORT_STATUS_TYPE_ERROR: val = "PORT_STATUS_TYPE_ERROR"; break;
16514 case PORT_STATUS_TYPE_WARNING: val = "PORT_STATUS_TYPE_WARNING"; break;
16515 case PORT_STATUS_TYPE_INFO: val = "PORT_STATUS_TYPE_INFO"; break;
16517 ndr_print_enum(ndr, name, "ENUM", val, r);
16520 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo3 *r)
16522 if (ndr_flags & NDR_SCALARS) {
16523 NDR_CHECK(ndr_push_align(ndr, 4));
16524 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr, NDR_SCALARS, r->status));
16526 uint32_t _flags_save_string = ndr->flags;
16527 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16528 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->status_string));
16529 ndr->flags = _flags_save_string;
16531 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr, NDR_SCALARS, r->severity));
16533 if (ndr_flags & NDR_BUFFERS) {
16535 uint32_t _flags_save_string = ndr->flags;
16536 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16537 if (r->status_string) {
16538 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->status_string));
16539 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->status_string));
16540 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->status_string));
16542 ndr->flags = _flags_save_string;
16545 return NDR_ERR_SUCCESS;
16548 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo3 *r)
16550 uint32_t _ptr_status_string;
16551 TALLOC_CTX *_mem_save_status_string_0;
16552 if (ndr_flags & NDR_SCALARS) {
16553 NDR_CHECK(ndr_pull_align(ndr, 4));
16554 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr, NDR_SCALARS, &r->status));
16556 uint32_t _flags_save_string = ndr->flags;
16557 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16558 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_status_string));
16559 if (_ptr_status_string) {
16560 NDR_PULL_ALLOC(ndr, r->status_string);
16561 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->status_string, _ptr_status_string));
16563 r->status_string = NULL;
16565 ndr->flags = _flags_save_string;
16567 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr, NDR_SCALARS, &r->severity));
16569 if (ndr_flags & NDR_BUFFERS) {
16571 uint32_t _flags_save_string = ndr->flags;
16572 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16573 if (r->status_string) {
16574 uint32_t _relative_save_offset;
16575 _relative_save_offset = ndr->offset;
16576 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->status_string));
16577 _mem_save_status_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
16578 NDR_PULL_SET_MEM_CTX(ndr, r->status_string, 0);
16579 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->status_string));
16580 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_string_0, 0);
16581 ndr->offset = _relative_save_offset;
16583 ndr->flags = _flags_save_string;
16586 return NDR_ERR_SUCCESS;
16589 _PUBLIC_ void ndr_print_spoolss_PortInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo3 *r)
16591 ndr_print_struct(ndr, name, "spoolss_PortInfo3");
16593 ndr_print_spoolss_PortStatus(ndr, "status", r->status);
16594 ndr_print_ptr(ndr, "status_string", r->status_string);
16596 if (r->status_string) {
16597 ndr_print_string(ndr, "status_string", r->status_string);
16600 ndr_print_spoolss_PortSeverity(ndr, "severity", r->severity);
16604 _PUBLIC_ size_t ndr_size_spoolss_PortInfo3(const struct spoolss_PortInfo3 *r, struct smb_iconv_convenience *ic, int flags)
16606 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo3, ic);
16609 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfoFF(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfoFF *r)
16611 if (ndr_flags & NDR_SCALARS) {
16612 NDR_CHECK(ndr_push_align(ndr, 4));
16614 uint32_t _flags_save_string = ndr->flags;
16615 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16616 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
16617 ndr->flags = _flags_save_string;
16619 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->monitor_data));
16621 if (ndr_flags & NDR_BUFFERS) {
16623 uint32_t _flags_save_string = ndr->flags;
16624 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16625 if (r->port_name) {
16626 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->port_name));
16627 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
16628 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->port_name));
16630 ndr->flags = _flags_save_string;
16633 return NDR_ERR_SUCCESS;
16636 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfoFF(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfoFF *r)
16638 uint32_t _ptr_port_name;
16639 TALLOC_CTX *_mem_save_port_name_0;
16640 if (ndr_flags & NDR_SCALARS) {
16641 NDR_CHECK(ndr_pull_align(ndr, 4));
16643 uint32_t _flags_save_string = ndr->flags;
16644 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16645 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
16646 if (_ptr_port_name) {
16647 NDR_PULL_ALLOC(ndr, r->port_name);
16648 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
16650 r->port_name = NULL;
16652 ndr->flags = _flags_save_string;
16654 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->monitor_data));
16656 if (ndr_flags & NDR_BUFFERS) {
16658 uint32_t _flags_save_string = ndr->flags;
16659 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16660 if (r->port_name) {
16661 uint32_t _relative_save_offset;
16662 _relative_save_offset = ndr->offset;
16663 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
16664 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16665 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
16666 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
16667 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
16668 ndr->offset = _relative_save_offset;
16670 ndr->flags = _flags_save_string;
16673 return NDR_ERR_SUCCESS;
16676 _PUBLIC_ void ndr_print_spoolss_PortInfoFF(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfoFF *r)
16678 ndr_print_struct(ndr, name, "spoolss_PortInfoFF");
16680 ndr_print_ptr(ndr, "port_name", r->port_name);
16682 if (r->port_name) {
16683 ndr_print_string(ndr, "port_name", r->port_name);
16686 ndr_print_DATA_BLOB(ndr, "monitor_data", r->monitor_data);
16690 _PUBLIC_ size_t ndr_size_spoolss_PortInfoFF(const struct spoolss_PortInfoFF *r, struct smb_iconv_convenience *ic, int flags)
16692 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfoFF, ic);
16695 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PortInfo *r)
16697 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16699 uint32_t _flags_save_UNION = ndr->flags;
16700 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
16701 if (ndr_flags & NDR_SCALARS) {
16702 int level = ndr_push_get_switch_value(ndr, r);
16705 NDR_CHECK(ndr_push_align(ndr, 4));
16706 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16707 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
16711 NDR_CHECK(ndr_push_align(ndr, 4));
16712 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16713 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
16717 NDR_CHECK(ndr_push_align(ndr, 4));
16718 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16719 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
16723 NDR_CHECK(ndr_push_align(ndr, 4));
16724 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16725 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
16733 if (ndr_flags & NDR_BUFFERS) {
16734 int level = ndr_push_get_switch_value(ndr, r);
16735 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16738 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
16742 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
16746 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
16750 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
16758 ndr->flags = _flags_save_UNION;
16760 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16761 return NDR_ERR_SUCCESS;
16764 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PortInfo *r)
16766 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16769 uint32_t _flags_save_UNION = ndr->flags;
16770 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
16771 level = ndr_pull_get_switch_value(ndr, r);
16772 if (ndr_flags & NDR_SCALARS) {
16775 NDR_CHECK(ndr_pull_align(ndr, 4));
16776 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16777 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
16781 NDR_CHECK(ndr_pull_align(ndr, 4));
16782 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16783 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
16787 NDR_CHECK(ndr_pull_align(ndr, 4));
16788 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16789 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
16793 NDR_CHECK(ndr_pull_align(ndr, 4));
16794 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16795 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
16803 if (ndr_flags & NDR_BUFFERS) {
16804 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16807 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
16811 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
16815 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
16819 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
16827 ndr->flags = _flags_save_UNION;
16829 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16830 return NDR_ERR_SUCCESS;
16833 _PUBLIC_ void ndr_print_spoolss_PortInfo(struct ndr_print *ndr, const char *name, const union spoolss_PortInfo *r)
16837 uint32_t _flags_save_UNION = ndr->flags;
16838 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
16839 level = ndr_print_get_switch_value(ndr, r);
16840 ndr_print_union(ndr, name, level, "spoolss_PortInfo");
16843 ndr_print_spoolss_PortInfo1(ndr, "info1", &r->info1);
16847 ndr_print_spoolss_PortInfo2(ndr, "info2", &r->info2);
16851 ndr_print_spoolss_PortInfo3(ndr, "info3", &r->info3);
16855 ndr_print_spoolss_PortInfoFF(ndr, "infoFF", &r->infoFF);
16862 ndr->flags = _flags_save_UNION;
16866 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo1 *r)
16868 if (ndr_flags & NDR_SCALARS) {
16869 NDR_CHECK(ndr_push_align(ndr, 4));
16871 uint32_t _flags_save_string = ndr->flags;
16872 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16873 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
16874 ndr->flags = _flags_save_string;
16877 if (ndr_flags & NDR_BUFFERS) {
16879 uint32_t _flags_save_string = ndr->flags;
16880 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16881 if (r->monitor_name) {
16882 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
16883 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
16884 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
16886 ndr->flags = _flags_save_string;
16889 return NDR_ERR_SUCCESS;
16892 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo1 *r)
16894 uint32_t _ptr_monitor_name;
16895 TALLOC_CTX *_mem_save_monitor_name_0;
16896 if (ndr_flags & NDR_SCALARS) {
16897 NDR_CHECK(ndr_pull_align(ndr, 4));
16899 uint32_t _flags_save_string = ndr->flags;
16900 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16901 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
16902 if (_ptr_monitor_name) {
16903 NDR_PULL_ALLOC(ndr, r->monitor_name);
16904 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
16906 r->monitor_name = NULL;
16908 ndr->flags = _flags_save_string;
16911 if (ndr_flags & NDR_BUFFERS) {
16913 uint32_t _flags_save_string = ndr->flags;
16914 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16915 if (r->monitor_name) {
16916 uint32_t _relative_save_offset;
16917 _relative_save_offset = ndr->offset;
16918 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
16919 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16920 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
16921 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
16922 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
16923 ndr->offset = _relative_save_offset;
16925 ndr->flags = _flags_save_string;
16928 return NDR_ERR_SUCCESS;
16931 _PUBLIC_ void ndr_print_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo1 *r)
16933 ndr_print_struct(ndr, name, "spoolss_MonitorInfo1");
16935 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
16937 if (r->monitor_name) {
16938 ndr_print_string(ndr, "monitor_name", r->monitor_name);
16944 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo1(const struct spoolss_MonitorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
16946 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo1, ic);
16949 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo2 *r)
16951 if (ndr_flags & NDR_SCALARS) {
16952 NDR_CHECK(ndr_push_align(ndr, 4));
16954 uint32_t _flags_save_string = ndr->flags;
16955 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16956 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
16957 ndr->flags = _flags_save_string;
16960 uint32_t _flags_save_string = ndr->flags;
16961 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16962 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->environment));
16963 ndr->flags = _flags_save_string;
16966 uint32_t _flags_save_string = ndr->flags;
16967 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16968 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name));
16969 ndr->flags = _flags_save_string;
16972 if (ndr_flags & NDR_BUFFERS) {
16974 uint32_t _flags_save_string = ndr->flags;
16975 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16976 if (r->monitor_name) {
16977 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
16978 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
16979 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
16981 ndr->flags = _flags_save_string;
16984 uint32_t _flags_save_string = ndr->flags;
16985 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16986 if (r->environment) {
16987 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->environment));
16988 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
16989 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->environment));
16991 ndr->flags = _flags_save_string;
16994 uint32_t _flags_save_string = ndr->flags;
16995 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16997 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dll_name));
16998 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
16999 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dll_name));
17001 ndr->flags = _flags_save_string;
17004 return NDR_ERR_SUCCESS;
17007 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo2 *r)
17009 uint32_t _ptr_monitor_name;
17010 TALLOC_CTX *_mem_save_monitor_name_0;
17011 uint32_t _ptr_environment;
17012 TALLOC_CTX *_mem_save_environment_0;
17013 uint32_t _ptr_dll_name;
17014 TALLOC_CTX *_mem_save_dll_name_0;
17015 if (ndr_flags & NDR_SCALARS) {
17016 NDR_CHECK(ndr_pull_align(ndr, 4));
17018 uint32_t _flags_save_string = ndr->flags;
17019 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17020 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
17021 if (_ptr_monitor_name) {
17022 NDR_PULL_ALLOC(ndr, r->monitor_name);
17023 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
17025 r->monitor_name = NULL;
17027 ndr->flags = _flags_save_string;
17030 uint32_t _flags_save_string = ndr->flags;
17031 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17032 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
17033 if (_ptr_environment) {
17034 NDR_PULL_ALLOC(ndr, r->environment);
17035 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->environment, _ptr_environment));
17037 r->environment = NULL;
17039 ndr->flags = _flags_save_string;
17042 uint32_t _flags_save_string = ndr->flags;
17043 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17044 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name));
17045 if (_ptr_dll_name) {
17046 NDR_PULL_ALLOC(ndr, r->dll_name);
17047 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dll_name, _ptr_dll_name));
17049 r->dll_name = NULL;
17051 ndr->flags = _flags_save_string;
17054 if (ndr_flags & NDR_BUFFERS) {
17056 uint32_t _flags_save_string = ndr->flags;
17057 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17058 if (r->monitor_name) {
17059 uint32_t _relative_save_offset;
17060 _relative_save_offset = ndr->offset;
17061 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
17062 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17063 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
17064 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
17065 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
17066 ndr->offset = _relative_save_offset;
17068 ndr->flags = _flags_save_string;
17071 uint32_t _flags_save_string = ndr->flags;
17072 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17073 if (r->environment) {
17074 uint32_t _relative_save_offset;
17075 _relative_save_offset = ndr->offset;
17076 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->environment));
17077 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
17078 NDR_PULL_SET_MEM_CTX(ndr, r->environment, 0);
17079 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
17080 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
17081 ndr->offset = _relative_save_offset;
17083 ndr->flags = _flags_save_string;
17086 uint32_t _flags_save_string = ndr->flags;
17087 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17089 uint32_t _relative_save_offset;
17090 _relative_save_offset = ndr->offset;
17091 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dll_name));
17092 _mem_save_dll_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17093 NDR_PULL_SET_MEM_CTX(ndr, r->dll_name, 0);
17094 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
17095 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dll_name_0, 0);
17096 ndr->offset = _relative_save_offset;
17098 ndr->flags = _flags_save_string;
17101 return NDR_ERR_SUCCESS;
17104 _PUBLIC_ void ndr_print_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo2 *r)
17106 ndr_print_struct(ndr, name, "spoolss_MonitorInfo2");
17108 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
17110 if (r->monitor_name) {
17111 ndr_print_string(ndr, "monitor_name", r->monitor_name);
17114 ndr_print_ptr(ndr, "environment", r->environment);
17116 if (r->environment) {
17117 ndr_print_string(ndr, "environment", r->environment);
17120 ndr_print_ptr(ndr, "dll_name", r->dll_name);
17123 ndr_print_string(ndr, "dll_name", r->dll_name);
17129 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo2(const struct spoolss_MonitorInfo2 *r, struct smb_iconv_convenience *ic, int flags)
17131 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo2, ic);
17134 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_MonitorInfo *r)
17136 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
17138 uint32_t _flags_save_UNION = ndr->flags;
17139 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
17140 if (ndr_flags & NDR_SCALARS) {
17141 int level = ndr_push_get_switch_value(ndr, r);
17144 NDR_CHECK(ndr_push_align(ndr, 4));
17145 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17146 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
17150 NDR_CHECK(ndr_push_align(ndr, 4));
17151 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17152 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
17160 if (ndr_flags & NDR_BUFFERS) {
17161 int level = ndr_push_get_switch_value(ndr, r);
17162 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
17165 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
17169 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
17177 ndr->flags = _flags_save_UNION;
17179 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
17180 return NDR_ERR_SUCCESS;
17183 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_MonitorInfo *r)
17185 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
17188 uint32_t _flags_save_UNION = ndr->flags;
17189 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
17190 level = ndr_pull_get_switch_value(ndr, r);
17191 if (ndr_flags & NDR_SCALARS) {
17194 NDR_CHECK(ndr_pull_align(ndr, 4));
17195 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17196 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
17200 NDR_CHECK(ndr_pull_align(ndr, 4));
17201 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17202 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
17210 if (ndr_flags & NDR_BUFFERS) {
17211 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
17214 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
17218 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
17226 ndr->flags = _flags_save_UNION;
17228 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17229 return NDR_ERR_SUCCESS;
17232 _PUBLIC_ void ndr_print_spoolss_MonitorInfo(struct ndr_print *ndr, const char *name, const union spoolss_MonitorInfo *r)
17236 uint32_t _flags_save_UNION = ndr->flags;
17237 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
17238 level = ndr_print_get_switch_value(ndr, r);
17239 ndr_print_union(ndr, name, level, "spoolss_MonitorInfo");
17242 ndr_print_spoolss_MonitorInfo1(ndr, "info1", &r->info1);
17246 ndr_print_spoolss_MonitorInfo2(ndr, "info2", &r->info2);
17253 ndr->flags = _flags_save_UNION;
17257 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcDataTypesInfo1 *r)
17259 if (ndr_flags & NDR_SCALARS) {
17260 NDR_CHECK(ndr_push_align(ndr, 4));
17262 uint32_t _flags_save_string = ndr->flags;
17263 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17264 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name_array));
17265 ndr->flags = _flags_save_string;
17268 if (ndr_flags & NDR_BUFFERS) {
17270 uint32_t _flags_save_string = ndr->flags;
17271 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17272 if (r->name_array) {
17273 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->name_array));
17274 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name_array));
17275 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->name_array));
17277 ndr->flags = _flags_save_string;
17280 return NDR_ERR_SUCCESS;
17283 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcDataTypesInfo1 *r)
17285 uint32_t _ptr_name_array;
17286 TALLOC_CTX *_mem_save_name_array_0;
17287 if (ndr_flags & NDR_SCALARS) {
17288 NDR_CHECK(ndr_pull_align(ndr, 4));
17290 uint32_t _flags_save_string = ndr->flags;
17291 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17292 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name_array));
17293 if (_ptr_name_array) {
17294 NDR_PULL_ALLOC(ndr, r->name_array);
17295 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name_array, _ptr_name_array));
17297 r->name_array = NULL;
17299 ndr->flags = _flags_save_string;
17302 if (ndr_flags & NDR_BUFFERS) {
17304 uint32_t _flags_save_string = ndr->flags;
17305 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17306 if (r->name_array) {
17307 uint32_t _relative_save_offset;
17308 _relative_save_offset = ndr->offset;
17309 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name_array));
17310 _mem_save_name_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
17311 NDR_PULL_SET_MEM_CTX(ndr, r->name_array, 0);
17312 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name_array));
17313 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_array_0, 0);
17314 ndr->offset = _relative_save_offset;
17316 ndr->flags = _flags_save_string;
17319 return NDR_ERR_SUCCESS;
17322 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcDataTypesInfo1 *r)
17324 ndr_print_struct(ndr, name, "spoolss_PrintProcDataTypesInfo1");
17326 ndr_print_ptr(ndr, "name_array", r->name_array);
17328 if (r->name_array) {
17329 ndr_print_string(ndr, "name_array", r->name_array);
17335 _PUBLIC_ size_t ndr_size_spoolss_PrintProcDataTypesInfo1(const struct spoolss_PrintProcDataTypesInfo1 *r, struct smb_iconv_convenience *ic, int flags)
17337 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcDataTypesInfo1, ic);
17340 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcDataTypesInfo *r)
17342 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
17344 uint32_t _flags_save_UNION = ndr->flags;
17345 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
17346 if (ndr_flags & NDR_SCALARS) {
17347 int level = ndr_push_get_switch_value(ndr, r);
17350 NDR_CHECK(ndr_push_align(ndr, 4));
17351 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17352 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
17360 if (ndr_flags & NDR_BUFFERS) {
17361 int level = ndr_push_get_switch_value(ndr, r);
17362 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
17365 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
17373 ndr->flags = _flags_save_UNION;
17375 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
17376 return NDR_ERR_SUCCESS;
17379 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcDataTypesInfo *r)
17381 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
17384 uint32_t _flags_save_UNION = ndr->flags;
17385 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
17386 level = ndr_pull_get_switch_value(ndr, r);
17387 if (ndr_flags & NDR_SCALARS) {
17390 NDR_CHECK(ndr_pull_align(ndr, 4));
17391 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17392 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
17400 if (ndr_flags & NDR_BUFFERS) {
17401 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
17404 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
17412 ndr->flags = _flags_save_UNION;
17414 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17415 return NDR_ERR_SUCCESS;
17418 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcDataTypesInfo *r)
17422 uint32_t _flags_save_UNION = ndr->flags;
17423 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
17424 level = ndr_print_get_switch_value(ndr, r);
17425 ndr_print_union(ndr, name, level, "spoolss_PrintProcDataTypesInfo");
17428 ndr_print_spoolss_PrintProcDataTypesInfo1(ndr, "info1", &r->info1);
17435 ndr->flags = _flags_save_UNION;
17439 static enum ndr_err_code ndr_push_spoolss_PrinterChangeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
17441 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17442 return NDR_ERR_SUCCESS;
17445 static enum ndr_err_code ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17448 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17450 return NDR_ERR_SUCCESS;
17453 _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
17455 ndr_print_uint32(ndr, name, r);
17457 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER, r);
17458 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER, r);
17459 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER, r);
17460 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, r);
17461 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB, r);
17462 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB, r);
17463 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB, r);
17464 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB, r);
17465 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM, r);
17466 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM, r);
17467 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM, r);
17468 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT, r);
17469 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT, r);
17470 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
17471 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
17472 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
17473 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER, r);
17474 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
17475 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
17476 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
17477 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT, r);
17481 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobNotifyField r)
17483 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
17484 return NDR_ERR_SUCCESS;
17487 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobNotifyField *r)
17490 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
17492 return NDR_ERR_SUCCESS;
17495 _PUBLIC_ void ndr_print_spoolss_JobNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_JobNotifyField r)
17497 const char *val = NULL;
17500 case JOB_NOTIFY_FIELD_PRINTER_NAME: val = "JOB_NOTIFY_FIELD_PRINTER_NAME"; break;
17501 case JOB_NOTIFY_FIELD_MACHINE_NAME: val = "JOB_NOTIFY_FIELD_MACHINE_NAME"; break;
17502 case JOB_NOTIFY_FIELD_PORT_NAME: val = "JOB_NOTIFY_FIELD_PORT_NAME"; break;
17503 case JOB_NOTIFY_FIELD_USER_NAME: val = "JOB_NOTIFY_FIELD_USER_NAME"; break;
17504 case JOB_NOTIFY_FIELD_NOTIFY_NAME: val = "JOB_NOTIFY_FIELD_NOTIFY_NAME"; break;
17505 case JOB_NOTIFY_FIELD_DATATYPE: val = "JOB_NOTIFY_FIELD_DATATYPE"; break;
17506 case JOB_NOTIFY_FIELD_PRINT_PROCESSOR: val = "JOB_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
17507 case JOB_NOTIFY_FIELD_PARAMETERS: val = "JOB_NOTIFY_FIELD_PARAMETERS"; break;
17508 case JOB_NOTIFY_FIELD_DRIVER_NAME: val = "JOB_NOTIFY_FIELD_DRIVER_NAME"; break;
17509 case JOB_NOTIFY_FIELD_DEVMODE: val = "JOB_NOTIFY_FIELD_DEVMODE"; break;
17510 case JOB_NOTIFY_FIELD_STATUS: val = "JOB_NOTIFY_FIELD_STATUS"; break;
17511 case JOB_NOTIFY_FIELD_STATUS_STRING: val = "JOB_NOTIFY_FIELD_STATUS_STRING"; break;
17512 case JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
17513 case JOB_NOTIFY_FIELD_DOCUMENT: val = "JOB_NOTIFY_FIELD_DOCUMENT"; break;
17514 case JOB_NOTIFY_FIELD_PRIORITY: val = "JOB_NOTIFY_FIELD_PRIORITY"; break;
17515 case JOB_NOTIFY_FIELD_POSITION: val = "JOB_NOTIFY_FIELD_POSITION"; break;
17516 case JOB_NOTIFY_FIELD_SUBMITTED: val = "JOB_NOTIFY_FIELD_SUBMITTED"; break;
17517 case JOB_NOTIFY_FIELD_START_TIME: val = "JOB_NOTIFY_FIELD_START_TIME"; break;
17518 case JOB_NOTIFY_FIELD_UNTIL_TIME: val = "JOB_NOTIFY_FIELD_UNTIL_TIME"; break;
17519 case JOB_NOTIFY_FIELD_TIME: val = "JOB_NOTIFY_FIELD_TIME"; break;
17520 case JOB_NOTIFY_FIELD_TOTAL_PAGES: val = "JOB_NOTIFY_FIELD_TOTAL_PAGES"; break;
17521 case JOB_NOTIFY_FIELD_PAGES_PRINTED: val = "JOB_NOTIFY_FIELD_PAGES_PRINTED"; break;
17522 case JOB_NOTIFY_FIELD_TOTAL_BYTES: val = "JOB_NOTIFY_FIELD_TOTAL_BYTES"; break;
17523 case JOB_NOTIFY_FIELD_BYTES_PRINTED: val = "JOB_NOTIFY_FIELD_BYTES_PRINTED"; break;
17525 ndr_print_enum(ndr, name, "ENUM", val, r);
17528 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrintNotifyField r)
17530 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
17531 return NDR_ERR_SUCCESS;
17534 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrintNotifyField *r)
17537 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
17539 return NDR_ERR_SUCCESS;
17542 _PUBLIC_ void ndr_print_spoolss_PrintNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_PrintNotifyField r)
17544 const char *val = NULL;
17547 case PRINTER_NOTIFY_FIELD_SERVER_NAME: val = "PRINTER_NOTIFY_FIELD_SERVER_NAME"; break;
17548 case PRINTER_NOTIFY_FIELD_PRINTER_NAME: val = "PRINTER_NOTIFY_FIELD_PRINTER_NAME"; break;
17549 case PRINTER_NOTIFY_FIELD_SHARE_NAME: val = "PRINTER_NOTIFY_FIELD_SHARE_NAME"; break;
17550 case PRINTER_NOTIFY_FIELD_PORT_NAME: val = "PRINTER_NOTIFY_FIELD_PORT_NAME"; break;
17551 case PRINTER_NOTIFY_FIELD_DRIVER_NAME: val = "PRINTER_NOTIFY_FIELD_DRIVER_NAME"; break;
17552 case PRINTER_NOTIFY_FIELD_COMMENT: val = "PRINTER_NOTIFY_FIELD_COMMENT"; break;
17553 case PRINTER_NOTIFY_FIELD_LOCATION: val = "PRINTER_NOTIFY_FIELD_LOCATION"; break;
17554 case PRINTER_NOTIFY_FIELD_DEVMODE: val = "PRINTER_NOTIFY_FIELD_DEVMODE"; break;
17555 case PRINTER_NOTIFY_FIELD_SEPFILE: val = "PRINTER_NOTIFY_FIELD_SEPFILE"; break;
17556 case PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR: val = "PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
17557 case PRINTER_NOTIFY_FIELD_PARAMETERS: val = "PRINTER_NOTIFY_FIELD_PARAMETERS"; break;
17558 case PRINTER_NOTIFY_FIELD_DATATYPE: val = "PRINTER_NOTIFY_FIELD_DATATYPE"; break;
17559 case PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
17560 case PRINTER_NOTIFY_FIELD_ATTRIBUTES: val = "PRINTER_NOTIFY_FIELD_ATTRIBUTES"; break;
17561 case PRINTER_NOTIFY_FIELD_PRIORITY: val = "PRINTER_NOTIFY_FIELD_PRIORITY"; break;
17562 case PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY: val = "PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY"; break;
17563 case PRINTER_NOTIFY_FIELD_START_TIME: val = "PRINTER_NOTIFY_FIELD_START_TIME"; break;
17564 case PRINTER_NOTIFY_FIELD_UNTIL_TIME: val = "PRINTER_NOTIFY_FIELD_UNTIL_TIME"; break;
17565 case PRINTER_NOTIFY_FIELD_STATUS: val = "PRINTER_NOTIFY_FIELD_STATUS"; break;
17566 case PRINTER_NOTIFY_FIELD_STATUS_STRING: val = "PRINTER_NOTIFY_FIELD_STATUS_STRING"; break;
17567 case PRINTER_NOTIFY_FIELD_CJOBS: val = "PRINTER_NOTIFY_FIELD_CJOBS"; break;
17568 case PRINTER_NOTIFY_FIELD_AVERAGE_PPM: val = "PRINTER_NOTIFY_FIELD_AVERAGE_PPM"; break;
17569 case PRINTER_NOTIFY_FIELD_TOTAL_PAGES: val = "PRINTER_NOTIFY_FIELD_TOTAL_PAGES"; break;
17570 case PRINTER_NOTIFY_FIELD_PAGES_PRINTED: val = "PRINTER_NOTIFY_FIELD_PAGES_PRINTED"; break;
17571 case PRINTER_NOTIFY_FIELD_TOTAL_BYTES: val = "PRINTER_NOTIFY_FIELD_TOTAL_BYTES"; break;
17572 case PRINTER_NOTIFY_FIELD_BYTES_PRINTED: val = "PRINTER_NOTIFY_FIELD_BYTES_PRINTED"; break;
17573 case PRINTER_NOTIFY_FIELD_OBJECT_GUID: val = "PRINTER_NOTIFY_FIELD_OBJECT_GUID"; break;
17574 case PRINTER_NOTIFY_FIELD_FRIENDLY_NAME: val = "PRINTER_NOTIFY_FIELD_FRIENDLY_NAME"; break;
17576 ndr_print_enum(ndr, name, "ENUM", val, r);
17579 static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyType r)
17581 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
17582 return NDR_ERR_SUCCESS;
17585 static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyType *r)
17588 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
17590 return NDR_ERR_SUCCESS;
17593 _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
17595 const char *val = NULL;
17598 case PRINTER_NOTIFY_TYPE: val = "PRINTER_NOTIFY_TYPE"; break;
17599 case JOB_NOTIFY_TYPE: val = "JOB_NOTIFY_TYPE"; break;
17601 ndr_print_enum(ndr, name, "ENUM", val, r);
17604 static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, int ndr_flags, const union spoolss_Field *r)
17606 if (ndr_flags & NDR_SCALARS) {
17607 int level = ndr_push_get_switch_value(ndr, r);
17609 case PRINTER_NOTIFY_TYPE: {
17610 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
17613 case JOB_NOTIFY_TYPE: {
17614 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
17618 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
17623 if (ndr_flags & NDR_BUFFERS) {
17624 int level = ndr_push_get_switch_value(ndr, r);
17626 case PRINTER_NOTIFY_TYPE:
17629 case JOB_NOTIFY_TYPE:
17637 return NDR_ERR_SUCCESS;
17640 static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, int ndr_flags, union spoolss_Field *r)
17643 level = ndr_pull_get_switch_value(ndr, r);
17644 if (ndr_flags & NDR_SCALARS) {
17646 case PRINTER_NOTIFY_TYPE: {
17647 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
17650 case JOB_NOTIFY_TYPE: {
17651 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
17655 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
17660 if (ndr_flags & NDR_BUFFERS) {
17662 case PRINTER_NOTIFY_TYPE:
17665 case JOB_NOTIFY_TYPE:
17673 return NDR_ERR_SUCCESS;
17676 static enum ndr_err_code ndr_push_spoolss_NotifyOptionType(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOptionType *r)
17678 uint32_t cntr_fields_1;
17679 if (ndr_flags & NDR_SCALARS) {
17680 NDR_CHECK(ndr_push_align(ndr, 4));
17681 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
17682 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
17683 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
17684 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
17685 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17686 NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
17688 if (ndr_flags & NDR_BUFFERS) {
17690 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17691 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
17692 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
17693 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
17697 return NDR_ERR_SUCCESS;
17700 static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionType *r)
17702 uint32_t _ptr_fields;
17703 uint32_t cntr_fields_1;
17704 TALLOC_CTX *_mem_save_fields_0;
17705 TALLOC_CTX *_mem_save_fields_1;
17706 if (ndr_flags & NDR_SCALARS) {
17707 NDR_CHECK(ndr_pull_align(ndr, 4));
17708 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
17709 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
17710 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
17711 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
17712 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
17713 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
17715 NDR_PULL_ALLOC(ndr, r->fields);
17720 if (ndr_flags & NDR_BUFFERS) {
17722 _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
17723 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
17724 NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
17725 NDR_PULL_ALLOC_N(ndr, r->fields, ndr_get_array_size(ndr, &r->fields));
17726 _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
17727 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
17728 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
17729 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
17730 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
17732 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
17733 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
17736 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->fields, r->count));
17739 return NDR_ERR_SUCCESS;
17742 _PUBLIC_ void ndr_print_spoolss_NotifyOptionType(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionType *r)
17744 uint32_t cntr_fields_1;
17745 ndr_print_struct(ndr, name, "spoolss_NotifyOptionType");
17747 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
17748 ndr_print_uint16(ndr, "u1", r->u1);
17749 ndr_print_uint32(ndr, "u2", r->u2);
17750 ndr_print_uint32(ndr, "u3", r->u3);
17751 ndr_print_uint32(ndr, "count", r->count);
17752 ndr_print_ptr(ndr, "fields", r->fields);
17755 ndr->print(ndr, "%s: ARRAY(%d)", "fields", (int)r->count);
17757 for (cntr_fields_1=0;cntr_fields_1<r->count;cntr_fields_1++) {
17759 if (asprintf(&idx_1, "[%d]", cntr_fields_1) != -1) {
17760 ndr_print_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type);
17761 ndr_print_spoolss_Field(ndr, "fields", &r->fields[cntr_fields_1]);
17771 static enum ndr_err_code ndr_push_spoolssNotifyOptionFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
17773 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17774 return NDR_ERR_SUCCESS;
17777 static enum ndr_err_code ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17780 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17782 return NDR_ERR_SUCCESS;
17785 _PUBLIC_ void ndr_print_spoolssNotifyOptionFlags(struct ndr_print *ndr, const char *name, uint32_t r)
17787 ndr_print_uint32(ndr, name, r);
17789 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH, r);
17793 static enum ndr_err_code ndr_push_spoolss_NotifyOption(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOption *r)
17795 uint32_t cntr_types_1;
17796 if (ndr_flags & NDR_SCALARS) {
17797 NDR_CHECK(ndr_push_align(ndr, 4));
17798 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
17799 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, r->flags));
17800 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17801 NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
17803 if (ndr_flags & NDR_BUFFERS) {
17805 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17806 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17807 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
17809 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17810 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
17814 return NDR_ERR_SUCCESS;
17817 static enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOption *r)
17819 uint32_t _ptr_types;
17820 uint32_t cntr_types_1;
17821 TALLOC_CTX *_mem_save_types_0;
17822 TALLOC_CTX *_mem_save_types_1;
17823 if (ndr_flags & NDR_SCALARS) {
17824 NDR_CHECK(ndr_pull_align(ndr, 4));
17825 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
17826 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, &r->flags));
17827 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
17828 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
17830 NDR_PULL_ALLOC(ndr, r->types);
17835 if (ndr_flags & NDR_BUFFERS) {
17837 _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
17838 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
17839 NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
17840 NDR_PULL_ALLOC_N(ndr, r->types, ndr_get_array_size(ndr, &r->types));
17841 _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
17842 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
17843 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17844 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
17846 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17847 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
17849 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
17850 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
17853 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
17856 return NDR_ERR_SUCCESS;
17859 _PUBLIC_ void ndr_print_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOption *r)
17861 uint32_t cntr_types_1;
17862 ndr_print_struct(ndr, name, "spoolss_NotifyOption");
17864 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
17865 ndr_print_spoolssNotifyOptionFlags(ndr, "flags", r->flags);
17866 ndr_print_uint32(ndr, "count", r->count);
17867 ndr_print_ptr(ndr, "types", r->types);
17870 ndr->print(ndr, "%s: ARRAY(%d)", "types", (int)r->count);
17872 for (cntr_types_1=0;cntr_types_1<r->count;cntr_types_1++) {
17874 if (asprintf(&idx_1, "[%d]", cntr_types_1) != -1) {
17875 ndr_print_spoolss_NotifyOptionType(ndr, "types", &r->types[cntr_types_1]);
17885 static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyString *r)
17887 if (ndr_flags & NDR_SCALARS) {
17888 NDR_CHECK(ndr_push_align(ndr, 4));
17889 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
17890 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
17892 if (ndr_flags & NDR_BUFFERS) {
17894 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
17895 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
17898 return NDR_ERR_SUCCESS;
17901 static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyString *r)
17903 uint32_t _ptr_string;
17904 TALLOC_CTX *_mem_save_string_0;
17905 if (ndr_flags & NDR_SCALARS) {
17906 NDR_CHECK(ndr_pull_align(ndr, 4));
17907 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
17908 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
17910 NDR_PULL_ALLOC(ndr, r->string);
17915 if (ndr_flags & NDR_BUFFERS) {
17917 _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
17918 NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
17919 NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
17920 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_size(ndr, &r->string), sizeof(uint16_t), CH_UTF16));
17921 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
17924 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size / 2));
17927 return NDR_ERR_SUCCESS;
17930 _PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
17932 ndr_print_struct(ndr, name, "spoolss_NotifyString");
17934 ndr_print_uint32(ndr, "size", r->size);
17935 ndr_print_ptr(ndr, "string", r->string);
17938 ndr_print_string(ndr, "string", r->string);
17944 static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyTable r)
17946 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17947 return NDR_ERR_SUCCESS;
17950 static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyTable *r)
17953 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17955 return NDR_ERR_SUCCESS;
17958 _PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
17960 const char *val = NULL;
17963 case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
17964 case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
17965 case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
17966 case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
17967 case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
17969 ndr_print_enum(ndr, name, "ENUM", val, r);
17972 static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int ndr_flags, const union spoolss_NotifyData *r)
17974 if (ndr_flags & NDR_SCALARS) {
17975 int level = ndr_push_get_switch_value(ndr, r);
17976 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
17979 uint32_t cntr_integer_0;
17980 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
17981 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
17986 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
17990 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
17994 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
17998 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
18002 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18005 if (ndr_flags & NDR_BUFFERS) {
18006 int level = ndr_push_get_switch_value(ndr, r);
18012 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
18016 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
18020 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
18024 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
18028 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18031 return NDR_ERR_SUCCESS;
18034 static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int ndr_flags, union spoolss_NotifyData *r)
18038 level = ndr_pull_get_switch_value(ndr, r);
18039 if (ndr_flags & NDR_SCALARS) {
18040 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18041 if (_level != level) {
18042 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
18046 uint32_t cntr_integer_0;
18047 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
18048 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
18053 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
18057 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
18061 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
18065 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
18069 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18072 if (ndr_flags & NDR_BUFFERS) {
18078 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
18082 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
18086 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
18090 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
18094 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18097 return NDR_ERR_SUCCESS;
18100 _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
18103 uint32_t cntr_integer_0;
18104 level = ndr_print_get_switch_value(ndr, r);
18105 ndr_print_union(ndr, name, level, "spoolss_NotifyData");
18108 ndr->print(ndr, "%s: ARRAY(%d)", "integer", (int)2);
18110 for (cntr_integer_0=0;cntr_integer_0<2;cntr_integer_0++) {
18112 if (asprintf(&idx_0, "[%d]", cntr_integer_0) != -1) {
18113 ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
18121 ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
18125 ndr_print_spoolss_DevmodeContainer(ndr, "devmode", &r->devmode);
18129 ndr_print_spoolss_TimeCtr(ndr, "time", &r->time);
18133 ndr_print_sec_desc_buf(ndr, "sd", &r->sd);
18137 ndr_print_bad_level(ndr, name, level);
18141 static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Notify *r)
18143 if (ndr_flags & NDR_SCALARS) {
18144 NDR_CHECK(ndr_push_align(ndr, 4));
18145 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
18146 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->field, r->type));
18147 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->field));
18148 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr, NDR_SCALARS, r->variable_type));
18149 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
18150 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
18151 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
18153 if (ndr_flags & NDR_BUFFERS) {
18154 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
18156 return NDR_ERR_SUCCESS;
18159 static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Notify *r)
18161 if (ndr_flags & NDR_SCALARS) {
18162 NDR_CHECK(ndr_pull_align(ndr, 4));
18163 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
18164 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->field, r->type));
18165 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
18166 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr, NDR_SCALARS, &r->variable_type));
18167 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
18168 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
18169 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
18171 if (ndr_flags & NDR_BUFFERS) {
18172 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
18174 return NDR_ERR_SUCCESS;
18177 _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
18179 ndr_print_struct(ndr, name, "spoolss_Notify");
18181 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
18182 ndr_print_set_switch_value(ndr, &r->field, r->type);
18183 ndr_print_spoolss_Field(ndr, "field", &r->field);
18184 ndr_print_spoolss_NotifyTable(ndr, "variable_type", r->variable_type);
18185 ndr_print_uint32(ndr, "job_id", r->job_id);
18186 ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
18187 ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
18191 static enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyInfo *r)
18193 uint32_t cntr_notifies_0;
18194 if (ndr_flags & NDR_SCALARS) {
18195 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
18196 NDR_CHECK(ndr_push_align(ndr, 4));
18197 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
18198 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
18199 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
18200 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18201 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
18204 if (ndr_flags & NDR_BUFFERS) {
18205 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18206 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
18209 return NDR_ERR_SUCCESS;
18212 static enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyInfo *r)
18214 uint32_t cntr_notifies_0;
18215 TALLOC_CTX *_mem_save_notifies_0;
18216 if (ndr_flags & NDR_SCALARS) {
18217 NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
18218 NDR_CHECK(ndr_pull_align(ndr, 4));
18219 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18220 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
18221 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
18222 NDR_PULL_ALLOC_N(ndr, r->notifies, ndr_get_array_size(ndr, &r->notifies));
18223 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
18224 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
18225 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18226 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
18228 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
18230 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
18233 if (ndr_flags & NDR_BUFFERS) {
18234 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
18235 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
18236 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
18237 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
18239 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
18241 return NDR_ERR_SUCCESS;
18244 _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
18246 uint32_t cntr_notifies_0;
18247 ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
18249 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
18250 ndr_print_uint32(ndr, "flags", r->flags);
18251 ndr_print_uint32(ndr, "count", r->count);
18252 ndr->print(ndr, "%s: ARRAY(%d)", "notifies", (int)r->count);
18254 for (cntr_notifies_0=0;cntr_notifies_0<r->count;cntr_notifies_0++) {
18256 if (asprintf(&idx_0, "[%d]", cntr_notifies_0) != -1) {
18257 ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
18265 static enum ndr_err_code ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_ReplyPrinterInfo *r)
18267 if (ndr_flags & NDR_SCALARS) {
18268 int level = ndr_push_get_switch_value(ndr, r);
18269 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
18272 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
18276 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18279 if (ndr_flags & NDR_BUFFERS) {
18280 int level = ndr_push_get_switch_value(ndr, r);
18284 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
18289 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18292 return NDR_ERR_SUCCESS;
18295 static enum ndr_err_code ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_ReplyPrinterInfo *r)
18299 TALLOC_CTX *_mem_save_info0_0;
18300 level = ndr_pull_get_switch_value(ndr, r);
18301 if (ndr_flags & NDR_SCALARS) {
18302 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18303 if (_level != level) {
18304 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
18308 uint32_t _ptr_info0;
18309 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
18311 NDR_PULL_ALLOC(ndr, r->info0);
18318 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18321 if (ndr_flags & NDR_BUFFERS) {
18325 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
18326 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
18327 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
18328 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
18333 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18336 return NDR_ERR_SUCCESS;
18339 _PUBLIC_ void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_ReplyPrinterInfo *r)
18342 level = ndr_print_get_switch_value(ndr, r);
18343 ndr_print_union(ndr, name, level, "spoolss_ReplyPrinterInfo");
18346 ndr_print_ptr(ndr, "info0", r->info0);
18349 ndr_print_spoolss_NotifyInfo(ndr, "info0", r->info0);
18355 ndr_print_bad_level(ndr, name, level);
18359 static enum ndr_err_code ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18361 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18362 return NDR_ERR_SUCCESS;
18365 static enum ndr_err_code ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18368 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18370 return NDR_ERR_SUCCESS;
18373 _PUBLIC_ void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18375 ndr_print_uint32(ndr, name, r);
18377 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED, r);
18378 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED, r);
18379 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH, r);
18383 static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel1 *r)
18385 if (ndr_flags & NDR_SCALARS) {
18386 NDR_CHECK(ndr_push_align(ndr, 4));
18387 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
18388 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
18389 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
18390 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
18391 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
18392 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
18393 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
18395 if (ndr_flags & NDR_BUFFERS) {
18397 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
18398 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18399 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
18400 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18403 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18404 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18405 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18406 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18409 return NDR_ERR_SUCCESS;
18412 static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel1 *r)
18414 uint32_t _ptr_client;
18415 TALLOC_CTX *_mem_save_client_0;
18416 uint32_t _ptr_user;
18417 TALLOC_CTX *_mem_save_user_0;
18418 if (ndr_flags & NDR_SCALARS) {
18419 NDR_CHECK(ndr_pull_align(ndr, 4));
18420 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18421 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
18423 NDR_PULL_ALLOC(ndr, r->client);
18427 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
18429 NDR_PULL_ALLOC(ndr, r->user);
18433 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
18434 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
18435 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
18436 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
18438 if (ndr_flags & NDR_BUFFERS) {
18440 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
18441 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
18442 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
18443 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
18444 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
18445 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));
18447 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
18448 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
18449 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
18452 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
18453 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
18454 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
18455 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
18456 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
18457 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));
18459 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
18460 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
18461 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
18464 return NDR_ERR_SUCCESS;
18467 _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
18469 ndr_print_struct(ndr, name, "spoolss_UserLevel1");
18471 ndr_print_uint32(ndr, "size", r->size);
18472 ndr_print_ptr(ndr, "client", r->client);
18475 ndr_print_string(ndr, "client", r->client);
18478 ndr_print_ptr(ndr, "user", r->user);
18481 ndr_print_string(ndr, "user", r->user);
18484 ndr_print_uint32(ndr, "build", r->build);
18485 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
18486 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
18487 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
18491 static enum ndr_err_code ndr_push_spoolss_UserLevel2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel2 *r)
18493 if (ndr_flags & NDR_SCALARS) {
18494 NDR_CHECK(ndr_push_align(ndr, 4));
18495 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->not_used));
18497 if (ndr_flags & NDR_BUFFERS) {
18499 return NDR_ERR_SUCCESS;
18502 static enum ndr_err_code ndr_pull_spoolss_UserLevel2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel2 *r)
18504 if (ndr_flags & NDR_SCALARS) {
18505 NDR_CHECK(ndr_pull_align(ndr, 4));
18506 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->not_used));
18508 if (ndr_flags & NDR_BUFFERS) {
18510 return NDR_ERR_SUCCESS;
18513 _PUBLIC_ void ndr_print_spoolss_UserLevel2(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel2 *r)
18515 ndr_print_struct(ndr, name, "spoolss_UserLevel2");
18517 ndr_print_uint32(ndr, "not_used", r->not_used);
18521 static enum ndr_err_code ndr_push_spoolss_UserLevel3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel3 *r)
18523 if (ndr_flags & NDR_SCALARS) {
18524 NDR_CHECK(ndr_push_align(ndr, 4));
18525 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
18526 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
18527 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size2));
18528 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
18529 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
18530 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
18531 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
18532 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
18533 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
18534 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reserved));
18536 if (ndr_flags & NDR_BUFFERS) {
18538 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
18539 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18540 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
18541 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18544 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18545 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18546 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
18547 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18550 return NDR_ERR_SUCCESS;
18553 static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel3 *r)
18555 uint32_t _ptr_client;
18556 TALLOC_CTX *_mem_save_client_0;
18557 uint32_t _ptr_user;
18558 TALLOC_CTX *_mem_save_user_0;
18559 if (ndr_flags & NDR_SCALARS) {
18560 NDR_CHECK(ndr_pull_align(ndr, 4));
18561 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18562 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
18563 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size2));
18564 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
18566 NDR_PULL_ALLOC(ndr, r->client);
18570 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
18572 NDR_PULL_ALLOC(ndr, r->user);
18576 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
18577 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
18578 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
18579 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
18580 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reserved));
18582 if (ndr_flags & NDR_BUFFERS) {
18584 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
18585 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
18586 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
18587 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
18588 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
18589 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));
18591 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
18592 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
18593 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
18596 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
18597 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
18598 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
18599 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
18600 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
18601 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));
18603 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
18604 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
18605 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
18608 return NDR_ERR_SUCCESS;
18611 _PUBLIC_ void ndr_print_spoolss_UserLevel3(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel3 *r)
18613 ndr_print_struct(ndr, name, "spoolss_UserLevel3");
18615 ndr_print_uint32(ndr, "size", r->size);
18616 ndr_print_uint32(ndr, "flags", r->flags);
18617 ndr_print_uint32(ndr, "size2", r->size2);
18618 ndr_print_ptr(ndr, "client", r->client);
18621 ndr_print_string(ndr, "client", r->client);
18624 ndr_print_ptr(ndr, "user", r->user);
18627 ndr_print_string(ndr, "user", r->user);
18630 ndr_print_uint32(ndr, "build", r->build);
18631 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
18632 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
18633 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
18634 ndr_print_udlong(ndr, "reserved", r->reserved);
18638 static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, int ndr_flags, const union spoolss_UserLevel *r)
18640 if (ndr_flags & NDR_SCALARS) {
18641 int level = ndr_push_get_switch_value(ndr, r);
18642 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
18645 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
18649 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level2));
18653 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level3));
18657 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18660 if (ndr_flags & NDR_BUFFERS) {
18661 int level = ndr_push_get_switch_value(ndr, r);
18665 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
18671 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
18677 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
18682 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18685 return NDR_ERR_SUCCESS;
18688 static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, int ndr_flags, union spoolss_UserLevel *r)
18692 TALLOC_CTX *_mem_save_level1_0;
18693 TALLOC_CTX *_mem_save_level2_0;
18694 TALLOC_CTX *_mem_save_level3_0;
18695 level = ndr_pull_get_switch_value(ndr, r);
18696 if (ndr_flags & NDR_SCALARS) {
18697 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18698 if (_level != level) {
18699 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
18703 uint32_t _ptr_level1;
18704 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
18706 NDR_PULL_ALLOC(ndr, r->level1);
18713 uint32_t _ptr_level2;
18714 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
18716 NDR_PULL_ALLOC(ndr, r->level2);
18723 uint32_t _ptr_level3;
18724 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
18726 NDR_PULL_ALLOC(ndr, r->level3);
18733 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18736 if (ndr_flags & NDR_BUFFERS) {
18740 _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
18741 NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
18742 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
18743 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
18749 _mem_save_level2_0 = NDR_PULL_GET_MEM_CTX(ndr);
18750 NDR_PULL_SET_MEM_CTX(ndr, r->level2, 0);
18751 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
18752 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level2_0, 0);
18758 _mem_save_level3_0 = NDR_PULL_GET_MEM_CTX(ndr);
18759 NDR_PULL_SET_MEM_CTX(ndr, r->level3, 0);
18760 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
18761 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level3_0, 0);
18766 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18769 return NDR_ERR_SUCCESS;
18772 _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
18775 level = ndr_print_get_switch_value(ndr, r);
18776 ndr_print_union(ndr, name, level, "spoolss_UserLevel");
18779 ndr_print_ptr(ndr, "level1", r->level1);
18782 ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
18788 ndr_print_ptr(ndr, "level2", r->level2);
18791 ndr_print_spoolss_UserLevel2(ndr, "level2", r->level2);
18797 ndr_print_ptr(ndr, "level3", r->level3);
18800 ndr_print_spoolss_UserLevel3(ndr, "level3", r->level3);
18806 ndr_print_bad_level(ndr, name, level);
18810 static enum ndr_err_code ndr_push_spoolss_UserLevelCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevelCtr *r)
18812 if (ndr_flags & NDR_SCALARS) {
18813 NDR_CHECK(ndr_push_align(ndr, 4));
18814 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
18815 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
18816 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
18818 if (ndr_flags & NDR_BUFFERS) {
18819 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
18821 return NDR_ERR_SUCCESS;
18824 static enum ndr_err_code ndr_pull_spoolss_UserLevelCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevelCtr *r)
18826 if (ndr_flags & NDR_SCALARS) {
18827 NDR_CHECK(ndr_pull_align(ndr, 4));
18828 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
18829 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
18830 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
18832 if (ndr_flags & NDR_BUFFERS) {
18833 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
18835 return NDR_ERR_SUCCESS;
18838 _PUBLIC_ void ndr_print_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevelCtr *r)
18840 ndr_print_struct(ndr, name, "spoolss_UserLevelCtr");
18842 ndr_print_uint32(ndr, "level", r->level);
18843 ndr_print_set_switch_value(ndr, &r->user_info, r->level);
18844 ndr_print_spoolss_UserLevel(ndr, "user_info", &r->user_info);
18848 static enum ndr_err_code ndr_push_spoolss_AccessRights(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18850 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18851 return NDR_ERR_SUCCESS;
18854 static enum ndr_err_code ndr_pull_spoolss_AccessRights(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18857 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18859 return NDR_ERR_SUCCESS;
18862 _PUBLIC_ void ndr_print_spoolss_AccessRights(struct ndr_print *ndr, const char *name, uint32_t r)
18864 ndr_print_uint32(ndr, name, r);
18866 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER, r);
18867 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE, r);
18868 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER, r);
18869 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE, r);
18870 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER, r);
18871 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ, r);
18875 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterEnumValues(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterEnumValues *r)
18877 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
18878 if (ndr_flags & NDR_SCALARS) {
18879 NDR_CHECK(ndr_push_align(ndr, 4));
18880 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
18882 uint32_t _flags_save_string = ndr->flags;
18883 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18884 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->value_name));
18885 ndr->flags = _flags_save_string;
18887 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2 * strlen_m_term(r->value_name)));
18888 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->type));
18889 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data));
18890 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_PrinterData(r->data, r->type, ndr->iconv_convenience, ndr->flags)));
18892 if (ndr_flags & NDR_BUFFERS) {
18893 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
18895 uint32_t _flags_save_string = ndr->flags;
18896 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18897 if (r->value_name) {
18898 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->value_name));
18899 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->value_name));
18900 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->value_name));
18902 ndr->flags = _flags_save_string;
18905 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data));
18907 struct ndr_push *_ndr_data;
18908 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
18909 NDR_CHECK(ndr_push_set_switch_value(_ndr_data, r->data, r->type));
18910 NDR_CHECK(ndr_push_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
18911 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_data, 0, r->data_length));
18913 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data));
18916 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
18917 return NDR_ERR_SUCCESS;
18920 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterEnumValues(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterEnumValues *r)
18922 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
18923 uint32_t _ptr_value_name;
18924 TALLOC_CTX *_mem_save_value_name_0;
18925 uint32_t _ptr_data;
18926 TALLOC_CTX *_mem_save_data_0;
18927 if (ndr_flags & NDR_SCALARS) {
18928 NDR_CHECK(ndr_pull_align(ndr, 4));
18929 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18931 uint32_t _flags_save_string = ndr->flags;
18932 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18933 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_name));
18934 if (_ptr_value_name) {
18935 NDR_PULL_ALLOC(ndr, r->value_name);
18936 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->value_name, _ptr_value_name));
18938 r->value_name = NULL;
18940 ndr->flags = _flags_save_string;
18942 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value_name_len));
18943 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->type));
18944 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
18946 NDR_PULL_ALLOC(ndr, r->data);
18947 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data, _ptr_data));
18951 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data_length));
18953 if (ndr_flags & NDR_BUFFERS) {
18954 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
18956 uint32_t _flags_save_string = ndr->flags;
18957 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18958 if (r->value_name) {
18959 uint32_t _relative_save_offset;
18960 _relative_save_offset = ndr->offset;
18961 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->value_name));
18962 _mem_save_value_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
18963 NDR_PULL_SET_MEM_CTX(ndr, r->value_name, 0);
18964 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->value_name));
18965 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_name_0, 0);
18966 ndr->offset = _relative_save_offset;
18968 ndr->flags = _flags_save_string;
18971 uint32_t _relative_save_offset;
18972 _relative_save_offset = ndr->offset;
18973 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data));
18974 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
18975 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
18977 struct ndr_pull *_ndr_data;
18978 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
18979 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, r->data, r->type));
18980 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
18981 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 0, r->data_length));
18983 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
18984 ndr->offset = _relative_save_offset;
18987 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
18988 return NDR_ERR_SUCCESS;
18991 _PUBLIC_ void ndr_print_spoolss_PrinterEnumValues(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterEnumValues *r)
18993 ndr_print_struct(ndr, name, "spoolss_PrinterEnumValues");
18995 ndr_print_ptr(ndr, "value_name", r->value_name);
18997 if (r->value_name) {
18998 ndr_print_string(ndr, "value_name", r->value_name);
19001 ndr_print_uint32(ndr, "value_name_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * strlen_m_term(r->value_name):r->value_name_len);
19002 ndr_print_winreg_Type(ndr, "type", r->type);
19003 ndr_print_ptr(ndr, "data", r->data);
19006 ndr_print_set_switch_value(ndr, r->data, r->type);
19007 ndr_print_spoolss_PrinterData(ndr, "data", r->data);
19010 ndr_print_uint32(ndr, "data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_PrinterData(r->data, r->type, ndr->iconv_convenience, ndr->flags):r->data_length);
19014 _PUBLIC_ size_t ndr_size_spoolss_PrinterEnumValues(const struct spoolss_PrinterEnumValues *r, struct smb_iconv_convenience *ic, int flags)
19016 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterEnumValues, ic);
19019 static enum ndr_err_code ndr_push_spoolss_KeyNames(struct ndr_push *ndr, int ndr_flags, const union spoolss_KeyNames *r)
19021 if (ndr_flags & NDR_SCALARS) {
19022 int level = ndr_push_get_switch_value(ndr, r);
19032 uint32_t _flags_save_string_array = ndr->flags;
19033 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19034 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
19035 ndr->flags = _flags_save_string_array;
19041 if (ndr_flags & NDR_BUFFERS) {
19042 int level = ndr_push_get_switch_value(ndr, r);
19055 return NDR_ERR_SUCCESS;
19058 static enum ndr_err_code ndr_pull_spoolss_KeyNames(struct ndr_pull *ndr, int ndr_flags, union spoolss_KeyNames *r)
19061 level = ndr_pull_get_switch_value(ndr, r);
19062 if (ndr_flags & NDR_SCALARS) {
19072 uint32_t _flags_save_string_array = ndr->flags;
19073 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19074 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
19075 ndr->flags = _flags_save_string_array;
19081 if (ndr_flags & NDR_BUFFERS) {
19094 return NDR_ERR_SUCCESS;
19097 _PUBLIC_ void ndr_print_spoolss_KeyNames(struct ndr_print *ndr, const char *name, const union spoolss_KeyNames *r)
19100 level = ndr_print_get_switch_value(ndr, r);
19101 ndr_print_union(ndr, name, level, "spoolss_KeyNames");
19110 ndr_print_string_array(ndr, "string_array", r->string_array);
19116 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19118 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19119 return NDR_ERR_SUCCESS;
19122 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19125 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19127 return NDR_ERR_SUCCESS;
19130 _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
19132 ndr_print_uint32(ndr, name, r);
19134 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
19135 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
19136 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
19140 static enum ndr_err_code ndr_push_spoolss_PortProtocol(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortProtocol r)
19142 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19143 return NDR_ERR_SUCCESS;
19146 static enum ndr_err_code ndr_pull_spoolss_PortProtocol(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortProtocol *r)
19149 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19151 return NDR_ERR_SUCCESS;
19154 _PUBLIC_ void ndr_print_spoolss_PortProtocol(struct ndr_print *ndr, const char *name, enum spoolss_PortProtocol r)
19156 const char *val = NULL;
19159 case PROTOCOL_RAWTCP_TYPE: val = "PROTOCOL_RAWTCP_TYPE"; break;
19160 case PROTOCOL_LPR_TYPE: val = "PROTOCOL_LPR_TYPE"; break;
19162 ndr_print_enum(ndr, name, "ENUM", val, r);
19165 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData1 *r)
19167 if (ndr_flags & NDR_SCALARS) {
19168 NDR_CHECK(ndr_push_align(ndr, 4));
19169 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
19170 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
19171 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
19172 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
19173 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
19174 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
19175 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19176 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
19177 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
19178 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
19179 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
19180 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19181 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
19182 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
19183 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
19185 if (ndr_flags & NDR_BUFFERS) {
19187 return NDR_ERR_SUCCESS;
19190 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData1 *r)
19192 if (ndr_flags & NDR_SCALARS) {
19193 NDR_CHECK(ndr_pull_align(ndr, 4));
19194 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
19195 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
19196 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
19197 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19198 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
19199 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
19200 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19201 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
19202 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
19203 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
19204 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
19205 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19206 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
19207 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
19208 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
19210 if (ndr_flags & NDR_BUFFERS) {
19212 return NDR_ERR_SUCCESS;
19215 _PUBLIC_ void ndr_print_spoolss_PortData1(struct ndr_print *ndr, const char *name, const struct spoolss_PortData1 *r)
19217 ndr_print_struct(ndr, name, "spoolss_PortData1");
19219 ndr_print_string(ndr, "portname", r->portname);
19220 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000001:r->version);
19221 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
19222 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
19223 ndr_print_uint32(ndr, "reserved", r->reserved);
19224 ndr_print_string(ndr, "hostaddress", r->hostaddress);
19225 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
19226 ndr_print_uint32(ndr, "dblspool", r->dblspool);
19227 ndr_print_string(ndr, "queue", r->queue);
19228 ndr_print_string(ndr, "ip_address", r->ip_address);
19229 ndr_print_string(ndr, "hardware_address", r->hardware_address);
19230 ndr_print_string(ndr, "device_type", r->device_type);
19231 ndr_print_uint32(ndr, "port_number", r->port_number);
19232 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
19233 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
19237 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData2 *r)
19239 if (ndr_flags & NDR_SCALARS) {
19240 NDR_CHECK(ndr_push_align(ndr, 4));
19241 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
19242 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000002));
19243 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
19244 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
19245 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
19246 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
19247 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19248 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
19249 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
19250 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19251 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
19252 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
19253 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
19254 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_monitor_mib_index));
19256 if (ndr_flags & NDR_BUFFERS) {
19258 return NDR_ERR_SUCCESS;
19261 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData2 *r)
19263 if (ndr_flags & NDR_SCALARS) {
19264 NDR_CHECK(ndr_pull_align(ndr, 4));
19265 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
19266 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
19267 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
19268 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19269 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
19270 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
19271 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
19272 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
19273 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
19274 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
19275 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
19276 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
19277 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
19278 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_monitor_mib_index));
19280 if (ndr_flags & NDR_BUFFERS) {
19282 return NDR_ERR_SUCCESS;
19285 _PUBLIC_ void ndr_print_spoolss_PortData2(struct ndr_print *ndr, const char *name, const struct spoolss_PortData2 *r)
19287 ndr_print_struct(ndr, name, "spoolss_PortData2");
19289 ndr_print_string(ndr, "portname", r->portname);
19290 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000002:r->version);
19291 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
19292 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
19293 ndr_print_uint32(ndr, "reserved", r->reserved);
19294 ndr_print_string(ndr, "hostaddress", r->hostaddress);
19295 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
19296 ndr_print_uint32(ndr, "dblspool", r->dblspool);
19297 ndr_print_string(ndr, "queue", r->queue);
19298 ndr_print_string(ndr, "device_type", r->device_type);
19299 ndr_print_uint32(ndr, "port_number", r->port_number);
19300 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
19301 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
19302 ndr_print_uint32(ndr, "port_monitor_mib_index", r->port_monitor_mib_index);
19306 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorUi(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorUi *r)
19308 if (ndr_flags & NDR_SCALARS) {
19309 NDR_CHECK(ndr_push_align(ndr, 4));
19311 uint32_t _flags_save_string = ndr->flags;
19312 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19313 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
19314 ndr->flags = _flags_save_string;
19317 if (ndr_flags & NDR_BUFFERS) {
19319 return NDR_ERR_SUCCESS;
19322 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorUi(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorUi *r)
19324 if (ndr_flags & NDR_SCALARS) {
19325 NDR_CHECK(ndr_pull_align(ndr, 4));
19327 uint32_t _flags_save_string = ndr->flags;
19328 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19329 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
19330 ndr->flags = _flags_save_string;
19333 if (ndr_flags & NDR_BUFFERS) {
19335 return NDR_ERR_SUCCESS;
19338 _PUBLIC_ void ndr_print_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorUi *r)
19340 ndr_print_struct(ndr, name, "spoolss_MonitorUi");
19342 ndr_print_string(ndr, "dll_name", r->dll_name);
19346 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19348 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19349 return NDR_ERR_SUCCESS;
19352 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19355 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19357 return NDR_ERR_SUCCESS;
19360 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r)
19362 ndr_print_uint32(ndr, name, r);
19364 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
19365 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
19366 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
19367 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
19368 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
19369 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
19370 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
19371 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
19375 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r)
19377 if (flags & NDR_IN) {
19378 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
19379 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
19380 if (r->in.server) {
19381 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19382 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19383 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19384 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19387 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19388 if (r->in.buffer) {
19389 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19391 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19393 if (flags & NDR_OUT) {
19394 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19396 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
19398 if (r->out.needed == NULL) {
19399 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19401 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19402 if (r->out.count == NULL) {
19403 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19405 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
19406 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19408 return NDR_ERR_SUCCESS;
19411 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinters *r)
19413 uint32_t _ptr_server;
19414 uint32_t _ptr_buffer;
19415 uint32_t _ptr_info;
19416 TALLOC_CTX *_mem_save_server_0;
19417 TALLOC_CTX *_mem_save_buffer_0;
19418 TALLOC_CTX *_mem_save_info_0;
19419 TALLOC_CTX *_mem_save_needed_0;
19420 TALLOC_CTX *_mem_save_count_0;
19421 if (flags & NDR_IN) {
19422 ZERO_STRUCT(r->out);
19424 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
19425 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
19427 NDR_PULL_ALLOC(ndr, r->in.server);
19429 r->in.server = NULL;
19431 if (r->in.server) {
19432 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
19433 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
19434 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
19435 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
19436 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
19437 return 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));
19439 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
19440 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
19441 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
19443 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19444 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19446 NDR_PULL_ALLOC(ndr, r->in.buffer);
19448 r->in.buffer = NULL;
19450 if (r->in.buffer) {
19451 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19452 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19453 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19454 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19456 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19457 NDR_PULL_ALLOC(ndr, r->out.needed);
19458 ZERO_STRUCTP(r->out.needed);
19459 NDR_PULL_ALLOC(ndr, r->out.count);
19460 ZERO_STRUCTP(r->out.count);
19462 if (flags & NDR_OUT) {
19463 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19465 NDR_PULL_ALLOC(ndr, r->out.info);
19467 r->out.info = NULL;
19470 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19471 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19472 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
19473 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19475 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19476 NDR_PULL_ALLOC(ndr, r->out.needed);
19478 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19479 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19480 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19481 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19482 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19483 NDR_PULL_ALLOC(ndr, r->out.count);
19485 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
19486 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
19487 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
19488 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
19489 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19491 return NDR_ERR_SUCCESS;
19494 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinters *r)
19496 uint32_t cntr_info_0;
19497 if (flags & NDR_IN) {
19498 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19499 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
19501 if (flags & NDR_OUT) {
19502 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19503 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19504 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19506 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19507 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19510 return NDR_ERR_SUCCESS;
19513 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinters *r)
19515 uint32_t cntr_info_0;
19516 TALLOC_CTX *_mem_save_info_0;
19517 if (flags & NDR_IN) {
19518 ZERO_STRUCT(r->out);
19520 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19521 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
19523 if (flags & NDR_OUT) {
19524 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
19525 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19526 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19527 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19528 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19529 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19531 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19532 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19534 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19536 return NDR_ERR_SUCCESS;
19539 _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinters *r)
19541 uint32_t cntr_info_2;
19542 ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
19544 if (flags & NDR_SET_VALUES) {
19545 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19547 if (flags & NDR_IN) {
19548 ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
19550 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
19551 ndr_print_ptr(ndr, "server", r->in.server);
19553 if (r->in.server) {
19554 ndr_print_string(ndr, "server", r->in.server);
19557 ndr_print_uint32(ndr, "level", r->in.level);
19558 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19560 if (r->in.buffer) {
19561 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19564 ndr_print_uint32(ndr, "offered", r->in.offered);
19567 if (flags & NDR_OUT) {
19568 ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
19570 ndr_print_ptr(ndr, "count", r->out.count);
19572 ndr_print_uint32(ndr, "count", *r->out.count);
19574 ndr_print_ptr(ndr, "info", r->out.info);
19576 ndr_print_ptr(ndr, "info", *r->out.info);
19578 if (*r->out.info) {
19579 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
19581 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
19583 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
19584 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
19585 ndr_print_spoolss_PrinterInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
19593 ndr_print_ptr(ndr, "needed", r->out.needed);
19595 ndr_print_uint32(ndr, "needed", *r->out.needed);
19597 ndr_print_WERROR(ndr, "result", r->out.result);
19603 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinter *r)
19605 if (flags & NDR_IN) {
19606 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
19607 if (r->in.printername) {
19608 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
19609 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19610 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
19611 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19613 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
19614 if (r->in.datatype) {
19615 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
19616 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19617 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
19618 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19620 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
19621 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
19623 if (flags & NDR_OUT) {
19624 if (r->out.handle == NULL) {
19625 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19627 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
19628 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19630 return NDR_ERR_SUCCESS;
19633 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinter *r)
19635 uint32_t _ptr_printername;
19636 uint32_t _ptr_datatype;
19637 TALLOC_CTX *_mem_save_printername_0;
19638 TALLOC_CTX *_mem_save_datatype_0;
19639 TALLOC_CTX *_mem_save_handle_0;
19640 if (flags & NDR_IN) {
19641 ZERO_STRUCT(r->out);
19643 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
19644 if (_ptr_printername) {
19645 NDR_PULL_ALLOC(ndr, r->in.printername);
19647 r->in.printername = NULL;
19649 if (r->in.printername) {
19650 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
19651 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
19652 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
19653 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
19654 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
19655 return 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));
19657 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
19658 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
19659 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
19661 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
19662 if (_ptr_datatype) {
19663 NDR_PULL_ALLOC(ndr, r->in.datatype);
19665 r->in.datatype = NULL;
19667 if (r->in.datatype) {
19668 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
19669 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
19670 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
19671 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
19672 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
19673 return 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));
19675 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
19676 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
19677 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
19679 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
19680 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
19681 NDR_PULL_ALLOC(ndr, r->out.handle);
19682 ZERO_STRUCTP(r->out.handle);
19684 if (flags & NDR_OUT) {
19685 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19686 NDR_PULL_ALLOC(ndr, r->out.handle);
19688 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19689 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
19690 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
19691 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19692 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19694 return NDR_ERR_SUCCESS;
19697 _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinter *r)
19699 ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
19701 if (flags & NDR_SET_VALUES) {
19702 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19704 if (flags & NDR_IN) {
19705 ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
19707 ndr_print_ptr(ndr, "printername", r->in.printername);
19709 if (r->in.printername) {
19710 ndr_print_string(ndr, "printername", r->in.printername);
19713 ndr_print_ptr(ndr, "datatype", r->in.datatype);
19715 if (r->in.datatype) {
19716 ndr_print_string(ndr, "datatype", r->in.datatype);
19719 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
19720 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
19723 if (flags & NDR_OUT) {
19724 ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
19726 ndr_print_ptr(ndr, "handle", r->out.handle);
19728 ndr_print_policy_handle(ndr, "handle", r->out.handle);
19730 ndr_print_WERROR(ndr, "result", r->out.result);
19736 static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, int flags, const struct spoolss_SetJob *r)
19738 if (flags & NDR_IN) {
19739 if (r->in.handle == NULL) {
19740 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19742 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19743 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
19744 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
19746 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
19748 NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
19750 if (flags & NDR_OUT) {
19751 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19753 return NDR_ERR_SUCCESS;
19756 static enum ndr_err_code ndr_pull_spoolss_SetJob(struct ndr_pull *ndr, int flags, struct spoolss_SetJob *r)
19759 TALLOC_CTX *_mem_save_handle_0;
19760 TALLOC_CTX *_mem_save_ctr_0;
19761 if (flags & NDR_IN) {
19762 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19763 NDR_PULL_ALLOC(ndr, r->in.handle);
19765 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19766 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19767 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19768 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19769 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
19770 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
19772 NDR_PULL_ALLOC(ndr, r->in.ctr);
19777 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19778 NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
19779 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
19780 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
19782 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
19784 if (flags & NDR_OUT) {
19785 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19787 return NDR_ERR_SUCCESS;
19790 _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetJob *r)
19792 ndr_print_struct(ndr, name, "spoolss_SetJob");
19794 if (flags & NDR_SET_VALUES) {
19795 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19797 if (flags & NDR_IN) {
19798 ndr_print_struct(ndr, "in", "spoolss_SetJob");
19800 ndr_print_ptr(ndr, "handle", r->in.handle);
19802 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19804 ndr_print_uint32(ndr, "job_id", r->in.job_id);
19805 ndr_print_ptr(ndr, "ctr", r->in.ctr);
19808 ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
19811 ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
19814 if (flags & NDR_OUT) {
19815 ndr_print_struct(ndr, "out", "spoolss_SetJob");
19817 ndr_print_WERROR(ndr, "result", r->out.result);
19823 static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, int flags, const struct spoolss_GetJob *r)
19825 if (flags & NDR_IN) {
19826 if (r->in.handle == NULL) {
19827 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19829 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19830 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
19831 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19832 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19833 if (r->in.buffer) {
19834 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19836 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19838 if (flags & NDR_OUT) {
19839 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19842 struct ndr_push *_ndr_info;
19843 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
19844 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
19845 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
19846 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
19849 if (r->out.needed == NULL) {
19850 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19852 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19853 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19855 return NDR_ERR_SUCCESS;
19858 static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags, struct spoolss_GetJob *r)
19860 uint32_t _ptr_buffer;
19861 uint32_t _ptr_info;
19862 TALLOC_CTX *_mem_save_handle_0;
19863 TALLOC_CTX *_mem_save_buffer_0;
19864 TALLOC_CTX *_mem_save_info_0;
19865 TALLOC_CTX *_mem_save_needed_0;
19866 if (flags & NDR_IN) {
19867 ZERO_STRUCT(r->out);
19869 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19870 NDR_PULL_ALLOC(ndr, r->in.handle);
19872 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19873 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19874 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19875 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19876 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
19877 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19878 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19880 NDR_PULL_ALLOC(ndr, r->in.buffer);
19882 r->in.buffer = NULL;
19884 if (r->in.buffer) {
19885 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19886 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19887 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19888 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19890 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19891 NDR_PULL_ALLOC(ndr, r->out.needed);
19892 ZERO_STRUCTP(r->out.needed);
19894 if (flags & NDR_OUT) {
19895 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19897 NDR_PULL_ALLOC(ndr, r->out.info);
19899 r->out.info = NULL;
19902 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19903 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19905 struct ndr_pull *_ndr_info;
19906 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
19907 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
19908 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
19909 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
19911 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19913 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19914 NDR_PULL_ALLOC(ndr, r->out.needed);
19916 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19917 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19918 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19919 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19920 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19922 return NDR_ERR_SUCCESS;
19925 _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetJob *r)
19927 ndr_print_struct(ndr, name, "spoolss_GetJob");
19929 if (flags & NDR_SET_VALUES) {
19930 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19932 if (flags & NDR_IN) {
19933 ndr_print_struct(ndr, "in", "spoolss_GetJob");
19935 ndr_print_ptr(ndr, "handle", r->in.handle);
19937 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19939 ndr_print_uint32(ndr, "job_id", r->in.job_id);
19940 ndr_print_uint32(ndr, "level", r->in.level);
19941 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19943 if (r->in.buffer) {
19944 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19947 ndr_print_uint32(ndr, "offered", r->in.offered);
19950 if (flags & NDR_OUT) {
19951 ndr_print_struct(ndr, "out", "spoolss_GetJob");
19953 ndr_print_ptr(ndr, "info", r->out.info);
19956 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
19957 ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
19960 ndr_print_ptr(ndr, "needed", r->out.needed);
19962 ndr_print_uint32(ndr, "needed", *r->out.needed);
19964 ndr_print_WERROR(ndr, "result", r->out.result);
19970 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct _spoolss_EnumJobs *r)
19972 if (flags & NDR_IN) {
19973 if (r->in.handle == NULL) {
19974 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19976 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19977 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
19978 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
19979 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19980 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19981 if (r->in.buffer) {
19982 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19984 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19986 if (flags & NDR_OUT) {
19987 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19989 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
19991 if (r->out.needed == NULL) {
19992 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19994 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19995 if (r->out.count == NULL) {
19996 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19998 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
19999 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20001 return NDR_ERR_SUCCESS;
20004 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct _spoolss_EnumJobs *r)
20006 uint32_t _ptr_buffer;
20007 uint32_t _ptr_info;
20008 TALLOC_CTX *_mem_save_handle_0;
20009 TALLOC_CTX *_mem_save_buffer_0;
20010 TALLOC_CTX *_mem_save_info_0;
20011 TALLOC_CTX *_mem_save_needed_0;
20012 TALLOC_CTX *_mem_save_count_0;
20013 if (flags & NDR_IN) {
20014 ZERO_STRUCT(r->out);
20016 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20017 NDR_PULL_ALLOC(ndr, r->in.handle);
20019 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20020 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20021 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20022 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20023 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
20024 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
20025 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20026 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20028 NDR_PULL_ALLOC(ndr, r->in.buffer);
20030 r->in.buffer = NULL;
20032 if (r->in.buffer) {
20033 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20034 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20035 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20036 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20038 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20039 NDR_PULL_ALLOC(ndr, r->out.needed);
20040 ZERO_STRUCTP(r->out.needed);
20041 NDR_PULL_ALLOC(ndr, r->out.count);
20042 ZERO_STRUCTP(r->out.count);
20044 if (flags & NDR_OUT) {
20045 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20047 NDR_PULL_ALLOC(ndr, r->out.info);
20049 r->out.info = NULL;
20052 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20053 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20054 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
20055 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20057 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20058 NDR_PULL_ALLOC(ndr, r->out.needed);
20060 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20061 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20062 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20063 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20064 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20065 NDR_PULL_ALLOC(ndr, r->out.count);
20067 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
20068 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
20069 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
20070 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
20071 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20073 return NDR_ERR_SUCCESS;
20076 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct __spoolss_EnumJobs *r)
20078 uint32_t cntr_info_0;
20079 if (flags & NDR_IN) {
20080 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20081 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
20083 if (flags & NDR_OUT) {
20084 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20085 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20086 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20088 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20089 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20092 return NDR_ERR_SUCCESS;
20095 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct __spoolss_EnumJobs *r)
20097 uint32_t cntr_info_0;
20098 TALLOC_CTX *_mem_save_info_0;
20099 if (flags & NDR_IN) {
20100 ZERO_STRUCT(r->out);
20102 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20103 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
20105 if (flags & NDR_OUT) {
20106 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
20107 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20108 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20109 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20110 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20111 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20113 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20114 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20116 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20118 return NDR_ERR_SUCCESS;
20121 _PUBLIC_ void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumJobs *r)
20123 uint32_t cntr_info_2;
20124 ndr_print_struct(ndr, name, "spoolss_EnumJobs");
20126 if (flags & NDR_SET_VALUES) {
20127 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20129 if (flags & NDR_IN) {
20130 ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
20132 ndr_print_ptr(ndr, "handle", r->in.handle);
20134 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20136 ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
20137 ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
20138 ndr_print_uint32(ndr, "level", r->in.level);
20139 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20141 if (r->in.buffer) {
20142 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20145 ndr_print_uint32(ndr, "offered", r->in.offered);
20148 if (flags & NDR_OUT) {
20149 ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
20151 ndr_print_ptr(ndr, "count", r->out.count);
20153 ndr_print_uint32(ndr, "count", *r->out.count);
20155 ndr_print_ptr(ndr, "info", r->out.info);
20157 ndr_print_ptr(ndr, "info", *r->out.info);
20159 if (*r->out.info) {
20160 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
20162 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
20164 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
20165 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
20166 ndr_print_spoolss_JobInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
20174 ndr_print_ptr(ndr, "needed", r->out.needed);
20176 ndr_print_uint32(ndr, "needed", *r->out.needed);
20178 ndr_print_WERROR(ndr, "result", r->out.result);
20184 static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinter *r)
20186 if (flags & NDR_IN) {
20188 if (flags & NDR_OUT) {
20189 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20191 return NDR_ERR_SUCCESS;
20194 static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinter *r)
20196 if (flags & NDR_IN) {
20198 if (flags & NDR_OUT) {
20199 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20201 return NDR_ERR_SUCCESS;
20204 _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinter *r)
20206 ndr_print_struct(ndr, name, "spoolss_AddPrinter");
20208 if (flags & NDR_SET_VALUES) {
20209 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20211 if (flags & NDR_IN) {
20212 ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
20216 if (flags & NDR_OUT) {
20217 ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
20219 ndr_print_WERROR(ndr, "result", r->out.result);
20225 static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinter *r)
20227 if (flags & NDR_IN) {
20228 if (r->in.handle == NULL) {
20229 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20231 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20233 if (flags & NDR_OUT) {
20234 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20236 return NDR_ERR_SUCCESS;
20239 static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinter *r)
20241 TALLOC_CTX *_mem_save_handle_0;
20242 if (flags & NDR_IN) {
20243 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20244 NDR_PULL_ALLOC(ndr, r->in.handle);
20246 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20247 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20248 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20249 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20251 if (flags & NDR_OUT) {
20252 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20254 return NDR_ERR_SUCCESS;
20257 _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinter *r)
20259 ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
20261 if (flags & NDR_SET_VALUES) {
20262 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20264 if (flags & NDR_IN) {
20265 ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
20267 ndr_print_ptr(ndr, "handle", r->in.handle);
20269 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20273 if (flags & NDR_OUT) {
20274 ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
20276 ndr_print_WERROR(ndr, "result", r->out.result);
20282 static enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinter *r)
20284 if (flags & NDR_IN) {
20285 if (r->in.handle == NULL) {
20286 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20288 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20289 if (r->in.info_ctr == NULL) {
20290 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20292 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20293 if (r->in.devmode_ctr == NULL) {
20294 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20296 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20297 if (r->in.secdesc_ctr == NULL) {
20298 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20300 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20301 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
20303 if (flags & NDR_OUT) {
20304 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20306 return NDR_ERR_SUCCESS;
20309 static enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinter *r)
20311 TALLOC_CTX *_mem_save_handle_0;
20312 TALLOC_CTX *_mem_save_info_ctr_0;
20313 TALLOC_CTX *_mem_save_devmode_ctr_0;
20314 TALLOC_CTX *_mem_save_secdesc_ctr_0;
20315 if (flags & NDR_IN) {
20316 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20317 NDR_PULL_ALLOC(ndr, r->in.handle);
20319 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20320 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20321 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20322 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20323 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20324 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
20326 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20327 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
20328 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20329 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20330 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20331 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
20333 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20334 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
20335 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20336 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20337 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20338 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
20340 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20341 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
20342 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20343 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20344 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
20346 if (flags & NDR_OUT) {
20347 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20349 return NDR_ERR_SUCCESS;
20352 _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinter *r)
20354 ndr_print_struct(ndr, name, "spoolss_SetPrinter");
20356 if (flags & NDR_SET_VALUES) {
20357 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20359 if (flags & NDR_IN) {
20360 ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
20362 ndr_print_ptr(ndr, "handle", r->in.handle);
20364 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20366 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
20368 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
20370 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
20372 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
20374 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
20376 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
20378 ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
20381 if (flags & NDR_OUT) {
20382 ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
20384 ndr_print_WERROR(ndr, "result", r->out.result);
20390 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinter *r)
20392 if (flags & NDR_IN) {
20393 if (r->in.handle == NULL) {
20394 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20396 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20397 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20398 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20399 if (r->in.buffer) {
20400 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20402 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20404 if (flags & NDR_OUT) {
20405 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20408 struct ndr_push *_ndr_info;
20409 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20410 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
20411 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20412 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20415 if (r->out.needed == NULL) {
20416 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20418 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20419 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20421 return NDR_ERR_SUCCESS;
20424 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinter *r)
20426 uint32_t _ptr_buffer;
20427 uint32_t _ptr_info;
20428 TALLOC_CTX *_mem_save_handle_0;
20429 TALLOC_CTX *_mem_save_buffer_0;
20430 TALLOC_CTX *_mem_save_info_0;
20431 TALLOC_CTX *_mem_save_needed_0;
20432 if (flags & NDR_IN) {
20433 ZERO_STRUCT(r->out);
20435 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20436 NDR_PULL_ALLOC(ndr, r->in.handle);
20438 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20439 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20440 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20441 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20442 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20443 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20445 NDR_PULL_ALLOC(ndr, r->in.buffer);
20447 r->in.buffer = NULL;
20449 if (r->in.buffer) {
20450 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20451 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20452 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20453 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20455 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20456 NDR_PULL_ALLOC(ndr, r->out.needed);
20457 ZERO_STRUCTP(r->out.needed);
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_PrinterInfo(_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 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20487 return NDR_ERR_SUCCESS;
20490 _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinter *r)
20492 ndr_print_struct(ndr, name, "spoolss_GetPrinter");
20494 if (flags & NDR_SET_VALUES) {
20495 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20497 if (flags & NDR_IN) {
20498 ndr_print_struct(ndr, "in", "spoolss_GetPrinter");
20500 ndr_print_ptr(ndr, "handle", r->in.handle);
20502 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20504 ndr_print_uint32(ndr, "level", r->in.level);
20505 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20507 if (r->in.buffer) {
20508 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20511 ndr_print_uint32(ndr, "offered", r->in.offered);
20514 if (flags & NDR_OUT) {
20515 ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
20517 ndr_print_ptr(ndr, "info", r->out.info);
20520 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
20521 ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
20524 ndr_print_ptr(ndr, "needed", r->out.needed);
20526 ndr_print_uint32(ndr, "needed", *r->out.needed);
20528 ndr_print_WERROR(ndr, "result", r->out.result);
20534 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriver *r)
20536 if (flags & NDR_IN) {
20537 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
20538 if (r->in.servername) {
20539 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
20540 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20541 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
20542 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20544 if (r->in.info_ctr == NULL) {
20545 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20547 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20549 if (flags & NDR_OUT) {
20550 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20552 return NDR_ERR_SUCCESS;
20555 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriver *r)
20557 uint32_t _ptr_servername;
20558 TALLOC_CTX *_mem_save_servername_0;
20559 TALLOC_CTX *_mem_save_info_ctr_0;
20560 if (flags & NDR_IN) {
20561 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
20562 if (_ptr_servername) {
20563 NDR_PULL_ALLOC(ndr, r->in.servername);
20565 r->in.servername = NULL;
20567 if (r->in.servername) {
20568 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
20569 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
20570 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
20571 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
20572 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
20573 return 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));
20575 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
20576 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
20577 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
20579 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20580 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
20582 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20583 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
20584 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20585 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20587 if (flags & NDR_OUT) {
20588 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20590 return NDR_ERR_SUCCESS;
20593 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriver *r)
20595 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
20597 if (flags & NDR_SET_VALUES) {
20598 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20600 if (flags & NDR_IN) {
20601 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
20603 ndr_print_ptr(ndr, "servername", r->in.servername);
20605 if (r->in.servername) {
20606 ndr_print_string(ndr, "servername", r->in.servername);
20609 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
20611 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
20615 if (flags & NDR_OUT) {
20616 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
20618 ndr_print_WERROR(ndr, "result", r->out.result);
20624 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDrivers *r)
20626 if (flags & NDR_IN) {
20627 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20628 if (r->in.server) {
20629 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20630 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20631 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20632 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20634 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
20635 if (r->in.environment) {
20636 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20637 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20638 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20639 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20641 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20642 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20643 if (r->in.buffer) {
20644 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20646 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20648 if (flags & NDR_OUT) {
20649 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20651 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
20653 if (r->out.needed == NULL) {
20654 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20656 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20657 if (r->out.count == NULL) {
20658 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20660 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
20661 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20663 return NDR_ERR_SUCCESS;
20666 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDrivers *r)
20668 uint32_t _ptr_server;
20669 uint32_t _ptr_environment;
20670 uint32_t _ptr_buffer;
20671 uint32_t _ptr_info;
20672 TALLOC_CTX *_mem_save_server_0;
20673 TALLOC_CTX *_mem_save_environment_0;
20674 TALLOC_CTX *_mem_save_buffer_0;
20675 TALLOC_CTX *_mem_save_info_0;
20676 TALLOC_CTX *_mem_save_needed_0;
20677 TALLOC_CTX *_mem_save_count_0;
20678 if (flags & NDR_IN) {
20679 ZERO_STRUCT(r->out);
20681 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20683 NDR_PULL_ALLOC(ndr, r->in.server);
20685 r->in.server = NULL;
20687 if (r->in.server) {
20688 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20689 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20690 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20691 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20692 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20693 return 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));
20695 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20696 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20697 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20699 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
20700 if (_ptr_environment) {
20701 NDR_PULL_ALLOC(ndr, r->in.environment);
20703 r->in.environment = NULL;
20705 if (r->in.environment) {
20706 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
20707 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
20708 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
20709 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
20710 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
20711 return 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));
20713 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
20714 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
20715 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
20717 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20718 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20720 NDR_PULL_ALLOC(ndr, r->in.buffer);
20722 r->in.buffer = NULL;
20724 if (r->in.buffer) {
20725 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20726 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20727 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20728 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20730 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20731 NDR_PULL_ALLOC(ndr, r->out.needed);
20732 ZERO_STRUCTP(r->out.needed);
20733 NDR_PULL_ALLOC(ndr, r->out.count);
20734 ZERO_STRUCTP(r->out.count);
20736 if (flags & NDR_OUT) {
20737 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20739 NDR_PULL_ALLOC(ndr, r->out.info);
20741 r->out.info = NULL;
20744 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20745 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20746 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
20747 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20749 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20750 NDR_PULL_ALLOC(ndr, r->out.needed);
20752 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20753 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20754 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20755 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20756 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20757 NDR_PULL_ALLOC(ndr, r->out.count);
20759 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
20760 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
20761 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
20762 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
20763 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20765 return NDR_ERR_SUCCESS;
20768 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDrivers *r)
20770 uint32_t cntr_info_0;
20771 if (flags & NDR_IN) {
20772 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20773 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
20775 if (flags & NDR_OUT) {
20776 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20777 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20778 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20780 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20781 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20784 return NDR_ERR_SUCCESS;
20787 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDrivers *r)
20789 uint32_t cntr_info_0;
20790 TALLOC_CTX *_mem_save_info_0;
20791 if (flags & NDR_IN) {
20792 ZERO_STRUCT(r->out);
20794 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20795 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
20797 if (flags & NDR_OUT) {
20798 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
20799 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20800 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20801 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20802 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20803 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20805 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20806 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20808 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20810 return NDR_ERR_SUCCESS;
20813 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDrivers *r)
20815 uint32_t cntr_info_2;
20816 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
20818 if (flags & NDR_SET_VALUES) {
20819 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20821 if (flags & NDR_IN) {
20822 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
20824 ndr_print_ptr(ndr, "server", r->in.server);
20826 if (r->in.server) {
20827 ndr_print_string(ndr, "server", r->in.server);
20830 ndr_print_ptr(ndr, "environment", r->in.environment);
20832 if (r->in.environment) {
20833 ndr_print_string(ndr, "environment", r->in.environment);
20836 ndr_print_uint32(ndr, "level", r->in.level);
20837 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20839 if (r->in.buffer) {
20840 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20843 ndr_print_uint32(ndr, "offered", r->in.offered);
20846 if (flags & NDR_OUT) {
20847 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
20849 ndr_print_ptr(ndr, "count", r->out.count);
20851 ndr_print_uint32(ndr, "count", *r->out.count);
20853 ndr_print_ptr(ndr, "info", r->out.info);
20855 ndr_print_ptr(ndr, "info", *r->out.info);
20857 if (*r->out.info) {
20858 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
20860 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
20862 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
20863 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
20864 ndr_print_spoolss_DriverInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
20872 ndr_print_ptr(ndr, "needed", r->out.needed);
20874 ndr_print_uint32(ndr, "needed", *r->out.needed);
20876 ndr_print_WERROR(ndr, "result", r->out.result);
20882 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver *r)
20884 if (flags & NDR_IN) {
20886 if (flags & NDR_OUT) {
20887 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20889 return NDR_ERR_SUCCESS;
20892 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver *r)
20894 if (flags & NDR_IN) {
20896 if (flags & NDR_OUT) {
20897 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20899 return NDR_ERR_SUCCESS;
20902 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver *r)
20904 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
20906 if (flags & NDR_SET_VALUES) {
20907 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20909 if (flags & NDR_IN) {
20910 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
20914 if (flags & NDR_OUT) {
20915 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
20917 ndr_print_WERROR(ndr, "result", r->out.result);
20923 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
20925 if (flags & NDR_IN) {
20926 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20927 if (r->in.server) {
20928 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20929 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20930 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20931 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20933 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
20934 if (r->in.environment) {
20935 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20936 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20937 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20938 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20940 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20941 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20942 if (r->in.buffer) {
20943 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20945 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20947 if (flags & NDR_OUT) {
20948 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20951 struct ndr_push *_ndr_info;
20952 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20953 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
20954 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
20955 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20958 if (r->out.needed == NULL) {
20959 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20961 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20962 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20964 return NDR_ERR_SUCCESS;
20967 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverDirectory *r)
20969 uint32_t _ptr_server;
20970 uint32_t _ptr_environment;
20971 uint32_t _ptr_buffer;
20972 uint32_t _ptr_info;
20973 TALLOC_CTX *_mem_save_server_0;
20974 TALLOC_CTX *_mem_save_environment_0;
20975 TALLOC_CTX *_mem_save_buffer_0;
20976 TALLOC_CTX *_mem_save_info_0;
20977 TALLOC_CTX *_mem_save_needed_0;
20978 if (flags & NDR_IN) {
20979 ZERO_STRUCT(r->out);
20981 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20983 NDR_PULL_ALLOC(ndr, r->in.server);
20985 r->in.server = NULL;
20987 if (r->in.server) {
20988 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20989 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20990 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20991 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20992 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20993 return 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));
20995 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20996 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20997 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20999 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
21000 if (_ptr_environment) {
21001 NDR_PULL_ALLOC(ndr, r->in.environment);
21003 r->in.environment = NULL;
21005 if (r->in.environment) {
21006 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
21007 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
21008 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
21009 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
21010 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
21011 return 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));
21013 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
21014 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
21015 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
21017 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21018 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21020 NDR_PULL_ALLOC(ndr, r->in.buffer);
21022 r->in.buffer = NULL;
21024 if (r->in.buffer) {
21025 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21026 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21027 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21028 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21030 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21031 NDR_PULL_ALLOC(ndr, r->out.needed);
21032 ZERO_STRUCTP(r->out.needed);
21034 if (flags & NDR_OUT) {
21035 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21037 NDR_PULL_ALLOC(ndr, r->out.info);
21039 r->out.info = NULL;
21042 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21043 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21045 struct ndr_pull *_ndr_info;
21046 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21047 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21048 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
21049 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21051 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21053 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21054 NDR_PULL_ALLOC(ndr, r->out.needed);
21056 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21057 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21058 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21059 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21060 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21062 return NDR_ERR_SUCCESS;
21065 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
21067 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
21069 if (flags & NDR_SET_VALUES) {
21070 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21072 if (flags & NDR_IN) {
21073 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
21075 ndr_print_ptr(ndr, "server", r->in.server);
21077 if (r->in.server) {
21078 ndr_print_string(ndr, "server", r->in.server);
21081 ndr_print_ptr(ndr, "environment", r->in.environment);
21083 if (r->in.environment) {
21084 ndr_print_string(ndr, "environment", r->in.environment);
21087 ndr_print_uint32(ndr, "level", r->in.level);
21088 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21090 if (r->in.buffer) {
21091 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21094 ndr_print_uint32(ndr, "offered", r->in.offered);
21097 if (flags & NDR_OUT) {
21098 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
21100 ndr_print_ptr(ndr, "info", r->out.info);
21103 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21104 ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
21107 ndr_print_ptr(ndr, "needed", r->out.needed);
21109 ndr_print_uint32(ndr, "needed", *r->out.needed);
21111 ndr_print_WERROR(ndr, "result", r->out.result);
21117 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriver *r)
21119 if (flags & NDR_IN) {
21120 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21121 if (r->in.server) {
21122 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21123 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21124 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21125 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21127 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21128 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21129 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21130 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21131 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
21132 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21133 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
21134 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21136 if (flags & NDR_OUT) {
21137 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21139 return NDR_ERR_SUCCESS;
21142 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriver *r)
21144 uint32_t _ptr_server;
21145 TALLOC_CTX *_mem_save_server_0;
21146 if (flags & NDR_IN) {
21147 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21149 NDR_PULL_ALLOC(ndr, r->in.server);
21151 r->in.server = NULL;
21153 if (r->in.server) {
21154 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21155 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21156 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21157 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21158 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21159 return 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));
21161 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21162 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21163 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21165 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
21166 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
21167 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
21168 return 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));
21170 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
21171 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
21172 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
21173 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
21174 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
21175 return 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));
21177 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
21178 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
21180 if (flags & NDR_OUT) {
21181 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21183 return NDR_ERR_SUCCESS;
21186 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriver *r)
21188 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
21190 if (flags & NDR_SET_VALUES) {
21191 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21193 if (flags & NDR_IN) {
21194 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
21196 ndr_print_ptr(ndr, "server", r->in.server);
21198 if (r->in.server) {
21199 ndr_print_string(ndr, "server", r->in.server);
21202 ndr_print_string(ndr, "architecture", r->in.architecture);
21203 ndr_print_string(ndr, "driver", r->in.driver);
21206 if (flags & NDR_OUT) {
21207 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
21209 ndr_print_WERROR(ndr, "result", r->out.result);
21215 static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProcessor *r)
21217 if (flags & NDR_IN) {
21218 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21219 if (r->in.server) {
21220 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21221 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21222 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21223 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21225 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21226 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21227 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21228 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21229 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
21230 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21231 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
21232 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));
21233 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
21234 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21235 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
21236 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));
21238 if (flags & NDR_OUT) {
21239 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21241 return NDR_ERR_SUCCESS;
21244 static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProcessor *r)
21246 uint32_t _ptr_server;
21247 TALLOC_CTX *_mem_save_server_0;
21248 if (flags & NDR_IN) {
21249 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21251 NDR_PULL_ALLOC(ndr, r->in.server);
21253 r->in.server = NULL;
21255 if (r->in.server) {
21256 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21257 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21258 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21259 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21260 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21261 return 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));
21263 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21264 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21265 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21267 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
21268 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
21269 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
21270 return 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));
21272 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
21273 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
21274 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
21275 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
21276 if (ndr_get_array_length(ndr, &r->in.path_name) > ndr_get_array_size(ndr, &r->in.path_name)) {
21277 return 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));
21279 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t)));
21280 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));
21281 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
21282 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
21283 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
21284 return 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));
21286 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
21287 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));
21289 if (flags & NDR_OUT) {
21290 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21292 return NDR_ERR_SUCCESS;
21295 _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProcessor *r)
21297 ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
21299 if (flags & NDR_SET_VALUES) {
21300 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21302 if (flags & NDR_IN) {
21303 ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
21305 ndr_print_ptr(ndr, "server", r->in.server);
21307 if (r->in.server) {
21308 ndr_print_string(ndr, "server", r->in.server);
21311 ndr_print_string(ndr, "architecture", r->in.architecture);
21312 ndr_print_string(ndr, "path_name", r->in.path_name);
21313 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
21316 if (flags & NDR_OUT) {
21317 ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
21319 ndr_print_WERROR(ndr, "result", r->out.result);
21325 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcessors *r)
21327 if (flags & NDR_IN) {
21328 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
21329 if (r->in.servername) {
21330 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
21331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21332 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
21333 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21335 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
21336 if (r->in.environment) {
21337 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21338 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21339 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21340 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21342 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21343 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21344 if (r->in.buffer) {
21345 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21347 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21349 if (flags & NDR_OUT) {
21350 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21352 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
21354 if (r->out.needed == NULL) {
21355 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21357 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21358 if (r->out.count == NULL) {
21359 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21361 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
21362 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21364 return NDR_ERR_SUCCESS;
21367 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessors *r)
21369 uint32_t _ptr_servername;
21370 uint32_t _ptr_environment;
21371 uint32_t _ptr_buffer;
21372 uint32_t _ptr_info;
21373 TALLOC_CTX *_mem_save_servername_0;
21374 TALLOC_CTX *_mem_save_environment_0;
21375 TALLOC_CTX *_mem_save_buffer_0;
21376 TALLOC_CTX *_mem_save_info_0;
21377 TALLOC_CTX *_mem_save_needed_0;
21378 TALLOC_CTX *_mem_save_count_0;
21379 if (flags & NDR_IN) {
21380 ZERO_STRUCT(r->out);
21382 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
21383 if (_ptr_servername) {
21384 NDR_PULL_ALLOC(ndr, r->in.servername);
21386 r->in.servername = NULL;
21388 if (r->in.servername) {
21389 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
21390 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
21391 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
21392 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
21393 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
21394 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.servername), ndr_get_array_length(ndr, &r->in.servername));
21396 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
21397 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
21398 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
21400 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
21401 if (_ptr_environment) {
21402 NDR_PULL_ALLOC(ndr, r->in.environment);
21404 r->in.environment = NULL;
21406 if (r->in.environment) {
21407 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
21408 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
21409 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
21410 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
21411 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
21412 return 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));
21414 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
21415 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
21416 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
21418 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21419 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21421 NDR_PULL_ALLOC(ndr, r->in.buffer);
21423 r->in.buffer = NULL;
21425 if (r->in.buffer) {
21426 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21427 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21428 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21429 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21431 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21432 NDR_PULL_ALLOC(ndr, r->out.needed);
21433 ZERO_STRUCTP(r->out.needed);
21434 NDR_PULL_ALLOC(ndr, r->out.count);
21435 ZERO_STRUCTP(r->out.count);
21437 if (flags & NDR_OUT) {
21438 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21440 NDR_PULL_ALLOC(ndr, r->out.info);
21442 r->out.info = NULL;
21445 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21446 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21447 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
21448 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21450 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21451 NDR_PULL_ALLOC(ndr, r->out.needed);
21453 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21454 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21455 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21456 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21457 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21458 NDR_PULL_ALLOC(ndr, r->out.count);
21460 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
21461 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
21462 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
21463 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
21464 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21466 return NDR_ERR_SUCCESS;
21469 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcessors *r)
21471 uint32_t cntr_info_0;
21472 if (flags & NDR_IN) {
21473 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21474 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
21476 if (flags & NDR_OUT) {
21477 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21478 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21479 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21481 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21482 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21485 return NDR_ERR_SUCCESS;
21488 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessors *r)
21490 uint32_t cntr_info_0;
21491 TALLOC_CTX *_mem_save_info_0;
21492 if (flags & NDR_IN) {
21493 ZERO_STRUCT(r->out);
21495 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21496 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
21498 if (flags & NDR_OUT) {
21499 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
21500 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21501 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21502 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21503 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21504 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21506 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21507 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21509 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21511 return NDR_ERR_SUCCESS;
21514 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcessors *r)
21516 uint32_t cntr_info_2;
21517 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
21519 if (flags & NDR_SET_VALUES) {
21520 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21522 if (flags & NDR_IN) {
21523 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
21525 ndr_print_ptr(ndr, "servername", r->in.servername);
21527 if (r->in.servername) {
21528 ndr_print_string(ndr, "servername", r->in.servername);
21531 ndr_print_ptr(ndr, "environment", r->in.environment);
21533 if (r->in.environment) {
21534 ndr_print_string(ndr, "environment", r->in.environment);
21537 ndr_print_uint32(ndr, "level", r->in.level);
21538 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21540 if (r->in.buffer) {
21541 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21544 ndr_print_uint32(ndr, "offered", r->in.offered);
21547 if (flags & NDR_OUT) {
21548 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
21550 ndr_print_ptr(ndr, "count", r->out.count);
21552 ndr_print_uint32(ndr, "count", *r->out.count);
21554 ndr_print_ptr(ndr, "info", r->out.info);
21556 ndr_print_ptr(ndr, "info", *r->out.info);
21558 if (*r->out.info) {
21559 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
21561 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
21563 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
21564 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
21565 ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
21573 ndr_print_ptr(ndr, "needed", r->out.needed);
21575 ndr_print_uint32(ndr, "needed", *r->out.needed);
21577 ndr_print_WERROR(ndr, "result", r->out.result);
21583 static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
21585 if (flags & NDR_IN) {
21586 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21587 if (r->in.server) {
21588 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, 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.server, CH_UTF16)));
21591 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21593 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
21594 if (r->in.environment) {
21595 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21596 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21597 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21598 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21600 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21601 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21602 if (r->in.buffer) {
21603 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21605 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21607 if (flags & NDR_OUT) {
21608 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21611 struct ndr_push *_ndr_info;
21612 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21613 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21614 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
21615 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21618 if (r->out.needed == NULL) {
21619 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21621 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21622 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21624 return NDR_ERR_SUCCESS;
21627 static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrintProcessorDirectory *r)
21629 uint32_t _ptr_server;
21630 uint32_t _ptr_environment;
21631 uint32_t _ptr_buffer;
21632 uint32_t _ptr_info;
21633 TALLOC_CTX *_mem_save_server_0;
21634 TALLOC_CTX *_mem_save_environment_0;
21635 TALLOC_CTX *_mem_save_buffer_0;
21636 TALLOC_CTX *_mem_save_info_0;
21637 TALLOC_CTX *_mem_save_needed_0;
21638 if (flags & NDR_IN) {
21639 ZERO_STRUCT(r->out);
21641 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21643 NDR_PULL_ALLOC(ndr, r->in.server);
21645 r->in.server = NULL;
21647 if (r->in.server) {
21648 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21649 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21650 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21651 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21652 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21653 return 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));
21655 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21656 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21657 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21659 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
21660 if (_ptr_environment) {
21661 NDR_PULL_ALLOC(ndr, r->in.environment);
21663 r->in.environment = NULL;
21665 if (r->in.environment) {
21666 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
21667 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
21668 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
21669 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
21670 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
21671 return 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));
21673 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
21674 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
21675 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
21677 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21678 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21680 NDR_PULL_ALLOC(ndr, r->in.buffer);
21682 r->in.buffer = NULL;
21684 if (r->in.buffer) {
21685 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21686 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21687 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21688 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21690 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21691 NDR_PULL_ALLOC(ndr, r->out.needed);
21692 ZERO_STRUCTP(r->out.needed);
21694 if (flags & NDR_OUT) {
21695 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21697 NDR_PULL_ALLOC(ndr, r->out.info);
21699 r->out.info = NULL;
21702 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21703 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21705 struct ndr_pull *_ndr_info;
21706 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21707 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21708 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
21709 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21711 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21713 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21714 NDR_PULL_ALLOC(ndr, r->out.needed);
21716 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21717 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21718 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21719 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21720 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21722 return NDR_ERR_SUCCESS;
21725 _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
21727 ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
21729 if (flags & NDR_SET_VALUES) {
21730 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21732 if (flags & NDR_IN) {
21733 ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
21735 ndr_print_ptr(ndr, "server", r->in.server);
21737 if (r->in.server) {
21738 ndr_print_string(ndr, "server", r->in.server);
21741 ndr_print_ptr(ndr, "environment", r->in.environment);
21743 if (r->in.environment) {
21744 ndr_print_string(ndr, "environment", r->in.environment);
21747 ndr_print_uint32(ndr, "level", r->in.level);
21748 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21750 if (r->in.buffer) {
21751 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21754 ndr_print_uint32(ndr, "offered", r->in.offered);
21757 if (flags & NDR_OUT) {
21758 ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
21760 ndr_print_ptr(ndr, "info", r->out.info);
21763 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21764 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr, "info", r->out.info);
21767 ndr_print_ptr(ndr, "needed", r->out.needed);
21769 ndr_print_uint32(ndr, "needed", *r->out.needed);
21771 ndr_print_WERROR(ndr, "result", r->out.result);
21777 static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartDocPrinter *r)
21779 if (flags & NDR_IN) {
21780 if (r->in.handle == NULL) {
21781 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21783 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21784 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21785 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
21786 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
21788 if (flags & NDR_OUT) {
21789 if (r->out.job_id == NULL) {
21790 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21792 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
21793 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21795 return NDR_ERR_SUCCESS;
21798 static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartDocPrinter *r)
21800 TALLOC_CTX *_mem_save_handle_0;
21801 TALLOC_CTX *_mem_save_job_id_0;
21802 if (flags & NDR_IN) {
21803 ZERO_STRUCT(r->out);
21805 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21806 NDR_PULL_ALLOC(ndr, r->in.handle);
21808 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21809 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21810 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21811 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21812 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21813 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
21814 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
21815 NDR_PULL_ALLOC(ndr, r->out.job_id);
21816 ZERO_STRUCTP(r->out.job_id);
21818 if (flags & NDR_OUT) {
21819 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21820 NDR_PULL_ALLOC(ndr, r->out.job_id);
21822 _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
21823 NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
21824 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
21825 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
21826 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21828 return NDR_ERR_SUCCESS;
21831 _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartDocPrinter *r)
21833 ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
21835 if (flags & NDR_SET_VALUES) {
21836 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21838 if (flags & NDR_IN) {
21839 ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
21841 ndr_print_ptr(ndr, "handle", r->in.handle);
21843 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21845 ndr_print_uint32(ndr, "level", r->in.level);
21846 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
21847 ndr_print_spoolss_DocumentInfo(ndr, "info", &r->in.info);
21850 if (flags & NDR_OUT) {
21851 ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
21853 ndr_print_ptr(ndr, "job_id", r->out.job_id);
21855 ndr_print_uint32(ndr, "job_id", *r->out.job_id);
21857 ndr_print_WERROR(ndr, "result", r->out.result);
21863 static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartPagePrinter *r)
21865 if (flags & NDR_IN) {
21866 if (r->in.handle == NULL) {
21867 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21869 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21871 if (flags & NDR_OUT) {
21872 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21874 return NDR_ERR_SUCCESS;
21877 static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartPagePrinter *r)
21879 TALLOC_CTX *_mem_save_handle_0;
21880 if (flags & NDR_IN) {
21881 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21882 NDR_PULL_ALLOC(ndr, r->in.handle);
21884 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21885 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21886 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21887 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21889 if (flags & NDR_OUT) {
21890 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21892 return NDR_ERR_SUCCESS;
21895 _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartPagePrinter *r)
21897 ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
21899 if (flags & NDR_SET_VALUES) {
21900 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21902 if (flags & NDR_IN) {
21903 ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
21905 ndr_print_ptr(ndr, "handle", r->in.handle);
21907 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21911 if (flags & NDR_OUT) {
21912 ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
21914 ndr_print_WERROR(ndr, "result", r->out.result);
21920 static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, int flags, const struct spoolss_WritePrinter *r)
21922 if (flags & NDR_IN) {
21923 if (r->in.handle == NULL) {
21924 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21926 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21927 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
21928 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
21930 if (flags & NDR_OUT) {
21931 if (r->out.num_written == 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.num_written));
21935 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21937 return NDR_ERR_SUCCESS;
21940 static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, int flags, struct spoolss_WritePrinter *r)
21942 TALLOC_CTX *_mem_save_handle_0;
21943 TALLOC_CTX *_mem_save_num_written_0;
21944 if (flags & NDR_IN) {
21945 ZERO_STRUCT(r->out);
21947 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21948 NDR_PULL_ALLOC(ndr, r->in.handle);
21950 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21951 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21952 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21953 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21954 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
21955 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
21956 NDR_PULL_ALLOC(ndr, r->out.num_written);
21957 ZERO_STRUCTP(r->out.num_written);
21959 if (flags & NDR_OUT) {
21960 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21961 NDR_PULL_ALLOC(ndr, r->out.num_written);
21963 _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
21964 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
21965 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
21966 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
21967 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21969 return NDR_ERR_SUCCESS;
21972 _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WritePrinter *r)
21974 ndr_print_struct(ndr, name, "spoolss_WritePrinter");
21976 if (flags & NDR_SET_VALUES) {
21977 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21979 if (flags & NDR_IN) {
21980 ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
21982 ndr_print_ptr(ndr, "handle", r->in.handle);
21984 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21986 ndr_print_DATA_BLOB(ndr, "data", r->in.data);
21987 ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
21990 if (flags & NDR_OUT) {
21991 ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
21993 ndr_print_ptr(ndr, "num_written", r->out.num_written);
21995 ndr_print_uint32(ndr, "num_written", *r->out.num_written);
21997 ndr_print_WERROR(ndr, "result", r->out.result);
22003 static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndPagePrinter *r)
22005 if (flags & NDR_IN) {
22006 if (r->in.handle == NULL) {
22007 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22009 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22011 if (flags & NDR_OUT) {
22012 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22014 return NDR_ERR_SUCCESS;
22017 static enum ndr_err_code ndr_pull_spoolss_EndPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndPagePrinter *r)
22019 TALLOC_CTX *_mem_save_handle_0;
22020 if (flags & NDR_IN) {
22021 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22022 NDR_PULL_ALLOC(ndr, r->in.handle);
22024 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22025 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22026 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22027 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22029 if (flags & NDR_OUT) {
22030 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22032 return NDR_ERR_SUCCESS;
22035 _PUBLIC_ void ndr_print_spoolss_EndPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndPagePrinter *r)
22037 ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
22039 if (flags & NDR_SET_VALUES) {
22040 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22042 if (flags & NDR_IN) {
22043 ndr_print_struct(ndr, "in", "spoolss_EndPagePrinter");
22045 ndr_print_ptr(ndr, "handle", r->in.handle);
22047 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22051 if (flags & NDR_OUT) {
22052 ndr_print_struct(ndr, "out", "spoolss_EndPagePrinter");
22054 ndr_print_WERROR(ndr, "result", r->out.result);
22060 static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AbortPrinter *r)
22062 if (flags & NDR_IN) {
22063 if (r->in.handle == NULL) {
22064 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22066 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22068 if (flags & NDR_OUT) {
22069 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22071 return NDR_ERR_SUCCESS;
22074 static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AbortPrinter *r)
22076 TALLOC_CTX *_mem_save_handle_0;
22077 if (flags & NDR_IN) {
22078 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22079 NDR_PULL_ALLOC(ndr, r->in.handle);
22081 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22082 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22083 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22084 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22086 if (flags & NDR_OUT) {
22087 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22089 return NDR_ERR_SUCCESS;
22092 _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AbortPrinter *r)
22094 ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
22096 if (flags & NDR_SET_VALUES) {
22097 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22099 if (flags & NDR_IN) {
22100 ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
22102 ndr_print_ptr(ndr, "handle", r->in.handle);
22104 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22108 if (flags & NDR_OUT) {
22109 ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
22111 ndr_print_WERROR(ndr, "result", r->out.result);
22117 static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReadPrinter *r)
22119 if (flags & NDR_IN) {
22120 if (r->in.handle == NULL) {
22121 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22123 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22124 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
22126 if (flags & NDR_OUT) {
22127 if (r->out.data == NULL) {
22128 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22130 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
22131 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
22132 if (r->out._data_size == NULL) {
22133 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22135 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
22136 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22138 return NDR_ERR_SUCCESS;
22141 static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReadPrinter *r)
22143 TALLOC_CTX *_mem_save_handle_0;
22144 TALLOC_CTX *_mem_save__data_size_0;
22145 if (flags & NDR_IN) {
22146 ZERO_STRUCT(r->out);
22148 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22149 NDR_PULL_ALLOC(ndr, r->in.handle);
22151 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22152 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22153 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22154 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22155 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
22156 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
22157 memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
22158 NDR_PULL_ALLOC(ndr, r->out._data_size);
22159 ZERO_STRUCTP(r->out._data_size);
22161 if (flags & NDR_OUT) {
22162 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
22163 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22164 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
22166 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
22167 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22168 NDR_PULL_ALLOC(ndr, r->out._data_size);
22170 _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
22171 NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
22172 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
22173 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
22174 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22176 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_size));
22179 return NDR_ERR_SUCCESS;
22182 _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReadPrinter *r)
22184 ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
22186 if (flags & NDR_SET_VALUES) {
22187 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22189 if (flags & NDR_IN) {
22190 ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
22192 ndr_print_ptr(ndr, "handle", r->in.handle);
22194 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22196 ndr_print_uint32(ndr, "data_size", r->in.data_size);
22199 if (flags & NDR_OUT) {
22200 ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
22202 ndr_print_ptr(ndr, "data", r->out.data);
22204 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
22206 ndr_print_ptr(ndr, "_data_size", r->out._data_size);
22208 ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
22210 ndr_print_WERROR(ndr, "result", r->out.result);
22216 static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndDocPrinter *r)
22218 if (flags & NDR_IN) {
22219 if (r->in.handle == NULL) {
22220 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22222 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22224 if (flags & NDR_OUT) {
22225 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22227 return NDR_ERR_SUCCESS;
22230 static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndDocPrinter *r)
22232 TALLOC_CTX *_mem_save_handle_0;
22233 if (flags & NDR_IN) {
22234 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22235 NDR_PULL_ALLOC(ndr, r->in.handle);
22237 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22238 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22239 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22240 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22242 if (flags & NDR_OUT) {
22243 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22245 return NDR_ERR_SUCCESS;
22248 _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndDocPrinter *r)
22250 ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
22252 if (flags & NDR_SET_VALUES) {
22253 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22255 if (flags & NDR_IN) {
22256 ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
22258 ndr_print_ptr(ndr, "handle", r->in.handle);
22260 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22264 if (flags & NDR_OUT) {
22265 ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
22267 ndr_print_WERROR(ndr, "result", r->out.result);
22273 static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, int flags, const struct spoolss_AddJob *r)
22275 if (flags & NDR_IN) {
22276 if (r->in.handle == NULL) {
22277 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22279 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22280 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22281 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22282 if (r->in.buffer) {
22283 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22284 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
22286 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22288 if (flags & NDR_OUT) {
22289 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
22290 if (r->out.buffer) {
22291 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22292 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
22294 if (r->out.needed == NULL) {
22295 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22297 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22298 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22300 return NDR_ERR_SUCCESS;
22303 static enum ndr_err_code ndr_pull_spoolss_AddJob(struct ndr_pull *ndr, int flags, struct spoolss_AddJob *r)
22305 uint32_t _ptr_buffer;
22306 TALLOC_CTX *_mem_save_handle_0;
22307 TALLOC_CTX *_mem_save_buffer_0;
22308 TALLOC_CTX *_mem_save_needed_0;
22309 if (flags & NDR_IN) {
22310 ZERO_STRUCT(r->out);
22312 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22313 NDR_PULL_ALLOC(ndr, r->in.handle);
22315 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22316 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22317 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22318 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22319 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22320 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22322 NDR_PULL_ALLOC(ndr, r->in.buffer);
22324 r->in.buffer = NULL;
22326 if (r->in.buffer) {
22327 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22328 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22329 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
22330 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
22331 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
22332 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22334 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22335 NDR_PULL_ALLOC(ndr, r->out.needed);
22336 ZERO_STRUCTP(r->out.needed);
22337 if (r->in.buffer) {
22338 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
22341 if (flags & NDR_OUT) {
22342 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22344 NDR_PULL_ALLOC(ndr, r->out.buffer);
22346 r->out.buffer = NULL;
22348 if (r->out.buffer) {
22349 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22350 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
22351 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
22352 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
22353 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
22354 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22356 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22357 NDR_PULL_ALLOC(ndr, r->out.needed);
22359 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22360 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22361 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22362 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22363 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22364 if (r->out.buffer) {
22365 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
22368 return NDR_ERR_SUCCESS;
22371 _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r)
22373 ndr_print_struct(ndr, name, "spoolss_AddJob");
22375 if (flags & NDR_SET_VALUES) {
22376 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22378 if (flags & NDR_IN) {
22379 ndr_print_struct(ndr, "in", "spoolss_AddJob");
22381 ndr_print_ptr(ndr, "handle", r->in.handle);
22383 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22385 ndr_print_uint32(ndr, "level", r->in.level);
22386 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22388 if (r->in.buffer) {
22389 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
22392 ndr_print_uint32(ndr, "offered", r->in.offered);
22395 if (flags & NDR_OUT) {
22396 ndr_print_struct(ndr, "out", "spoolss_AddJob");
22398 ndr_print_ptr(ndr, "buffer", r->out.buffer);
22400 if (r->out.buffer) {
22401 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
22404 ndr_print_ptr(ndr, "needed", r->out.needed);
22406 ndr_print_uint32(ndr, "needed", *r->out.needed);
22408 ndr_print_WERROR(ndr, "result", r->out.result);
22414 static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, int flags, const struct spoolss_ScheduleJob *r)
22416 if (flags & NDR_IN) {
22417 if (r->in.handle == NULL) {
22418 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22420 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22421 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
22423 if (flags & NDR_OUT) {
22424 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22426 return NDR_ERR_SUCCESS;
22429 static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, int flags, struct spoolss_ScheduleJob *r)
22431 TALLOC_CTX *_mem_save_handle_0;
22432 if (flags & NDR_IN) {
22433 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22434 NDR_PULL_ALLOC(ndr, r->in.handle);
22436 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22437 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22438 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22439 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22440 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.jobid));
22442 if (flags & NDR_OUT) {
22443 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22445 return NDR_ERR_SUCCESS;
22448 _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ScheduleJob *r)
22450 ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
22452 if (flags & NDR_SET_VALUES) {
22453 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22455 if (flags & NDR_IN) {
22456 ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
22458 ndr_print_ptr(ndr, "handle", r->in.handle);
22460 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22462 ndr_print_uint32(ndr, "jobid", r->in.jobid);
22465 if (flags & NDR_OUT) {
22466 ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
22468 ndr_print_WERROR(ndr, "result", r->out.result);
22474 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterData *r)
22476 if (flags & NDR_IN) {
22477 if (r->in.handle == NULL) {
22478 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22480 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22481 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22482 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22483 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22484 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));
22485 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22487 if (flags & NDR_OUT) {
22488 if (r->out.type == NULL) {
22489 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22491 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
22492 if (r->out.data == NULL) {
22493 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22495 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.data));
22496 if (r->out.needed == NULL) {
22497 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22499 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22500 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22502 return NDR_ERR_SUCCESS;
22505 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterData *r)
22507 TALLOC_CTX *_mem_save_handle_0;
22508 TALLOC_CTX *_mem_save_type_0;
22509 TALLOC_CTX *_mem_save_data_0;
22510 TALLOC_CTX *_mem_save_needed_0;
22511 if (flags & NDR_IN) {
22512 ZERO_STRUCT(r->out);
22514 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22515 NDR_PULL_ALLOC(ndr, r->in.handle);
22517 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22518 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22519 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22520 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22521 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
22522 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
22523 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
22524 return 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));
22526 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
22527 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));
22528 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22529 NDR_PULL_ALLOC(ndr, r->out.type);
22530 ZERO_STRUCTP(r->out.type);
22531 NDR_PULL_ALLOC(ndr, r->out.data);
22532 ZERO_STRUCTP(r->out.data);
22533 NDR_PULL_ALLOC(ndr, r->out.needed);
22534 ZERO_STRUCTP(r->out.needed);
22536 if (flags & NDR_OUT) {
22537 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22538 NDR_PULL_ALLOC(ndr, r->out.type);
22540 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
22541 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
22542 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
22543 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
22544 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22545 NDR_PULL_ALLOC(ndr, r->out.data);
22547 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
22548 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
22549 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
22550 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
22551 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22552 NDR_PULL_ALLOC(ndr, r->out.needed);
22554 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22555 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22556 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22557 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22558 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22560 return NDR_ERR_SUCCESS;
22563 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterData *r)
22565 if (flags & NDR_IN) {
22566 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
22568 if (flags & NDR_OUT) {
22569 if (r->out.data == NULL) {
22570 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22572 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
22573 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
22575 return NDR_ERR_SUCCESS;
22578 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterData *r)
22580 TALLOC_CTX *_mem_save_data_0;
22581 if (flags & NDR_IN) {
22582 ZERO_STRUCT(r->out);
22584 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
22585 NDR_PULL_ALLOC(ndr, r->out.data);
22586 ZERO_STRUCTP(r->out.data);
22588 if (flags & NDR_OUT) {
22589 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22590 NDR_PULL_ALLOC(ndr, r->out.data);
22592 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
22593 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
22594 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.data, r->in.type));
22595 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
22596 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
22598 return NDR_ERR_SUCCESS;
22601 _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterData *r)
22603 ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
22605 if (flags & NDR_SET_VALUES) {
22606 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22608 if (flags & NDR_IN) {
22609 ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
22611 ndr_print_ptr(ndr, "handle", r->in.handle);
22613 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22615 ndr_print_string(ndr, "value_name", r->in.value_name);
22616 ndr_print_uint32(ndr, "offered", r->in.offered);
22619 if (flags & NDR_OUT) {
22620 ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
22622 ndr_print_ptr(ndr, "type", r->out.type);
22624 ndr_print_winreg_Type(ndr, "type", *r->out.type);
22626 ndr_print_ptr(ndr, "data", r->out.data);
22628 ndr_print_set_switch_value(ndr, r->out.data, *r->out.type);
22629 ndr_print_spoolss_PrinterData(ndr, "data", r->out.data);
22631 ndr_print_ptr(ndr, "needed", r->out.needed);
22633 ndr_print_uint32(ndr, "needed", *r->out.needed);
22635 ndr_print_WERROR(ndr, "result", r->out.result);
22641 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterData *r)
22643 if (flags & NDR_IN) {
22644 if (r->in.handle == NULL) {
22645 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22647 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22648 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22649 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22650 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22651 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));
22652 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
22653 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
22654 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
22656 if (flags & NDR_OUT) {
22657 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22659 return NDR_ERR_SUCCESS;
22662 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterData *r)
22664 if (flags & NDR_IN) {
22665 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
22667 if (flags & NDR_OUT) {
22668 if (r->out.data == NULL) {
22669 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22671 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
22672 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
22674 return NDR_ERR_SUCCESS;
22677 static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterData *r)
22679 TALLOC_CTX *_mem_save_handle_0;
22680 if (flags & NDR_IN) {
22681 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22682 NDR_PULL_ALLOC(ndr, r->in.handle);
22684 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22685 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22686 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22687 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22688 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
22689 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
22690 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
22691 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.value_name), ndr_get_array_length(ndr, &r->in.value_name));
22693 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
22694 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));
22695 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
22697 struct ndr_pull *_ndr_data;
22698 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
22699 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
22700 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
22701 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
22703 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
22705 if (flags & NDR_OUT) {
22706 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22708 return NDR_ERR_SUCCESS;
22711 _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r)
22713 ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
22715 if (flags & NDR_SET_VALUES) {
22716 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22718 if (flags & NDR_IN) {
22719 ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
22721 ndr_print_ptr(ndr, "handle", r->in.handle);
22723 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22725 ndr_print_string(ndr, "value_name", r->in.value_name);
22726 ndr_print_winreg_Type(ndr, "type", r->in.type);
22727 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
22728 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
22729 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);
22732 if (flags & NDR_OUT) {
22733 ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
22735 ndr_print_WERROR(ndr, "result", r->out.result);
22741 static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, int flags, const struct spoolss_WaitForPrinterChange *r)
22743 if (flags & NDR_IN) {
22745 if (flags & NDR_OUT) {
22746 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22748 return NDR_ERR_SUCCESS;
22751 static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, int flags, struct spoolss_WaitForPrinterChange *r)
22753 if (flags & NDR_IN) {
22755 if (flags & NDR_OUT) {
22756 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22758 return NDR_ERR_SUCCESS;
22761 _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r)
22763 ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
22765 if (flags & NDR_SET_VALUES) {
22766 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22768 if (flags & NDR_IN) {
22769 ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
22773 if (flags & NDR_OUT) {
22774 ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
22776 ndr_print_WERROR(ndr, "result", r->out.result);
22782 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ClosePrinter *r)
22784 if (flags & NDR_IN) {
22785 if (r->in.handle == NULL) {
22786 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22788 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22790 if (flags & NDR_OUT) {
22791 if (r->out.handle == NULL) {
22792 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22794 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
22795 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22797 return NDR_ERR_SUCCESS;
22800 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ClosePrinter *r)
22802 TALLOC_CTX *_mem_save_handle_0;
22803 if (flags & NDR_IN) {
22804 ZERO_STRUCT(r->out);
22806 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22807 NDR_PULL_ALLOC(ndr, r->in.handle);
22809 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22810 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22811 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22812 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22813 NDR_PULL_ALLOC(ndr, r->out.handle);
22814 *r->out.handle = *r->in.handle;
22816 if (flags & NDR_OUT) {
22817 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22818 NDR_PULL_ALLOC(ndr, r->out.handle);
22820 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22821 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
22822 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
22823 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22824 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22826 return NDR_ERR_SUCCESS;
22829 _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ClosePrinter *r)
22831 ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
22833 if (flags & NDR_SET_VALUES) {
22834 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22836 if (flags & NDR_IN) {
22837 ndr_print_struct(ndr, "in", "spoolss_ClosePrinter");
22839 ndr_print_ptr(ndr, "handle", r->in.handle);
22841 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22845 if (flags & NDR_OUT) {
22846 ndr_print_struct(ndr, "out", "spoolss_ClosePrinter");
22848 ndr_print_ptr(ndr, "handle", r->out.handle);
22850 ndr_print_policy_handle(ndr, "handle", r->out.handle);
22852 ndr_print_WERROR(ndr, "result", r->out.result);
22858 static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, int flags, const struct spoolss_AddForm *r)
22860 if (flags & NDR_IN) {
22861 if (r->in.handle == NULL) {
22862 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22864 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22865 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22866 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
22867 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22869 if (flags & NDR_OUT) {
22870 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22872 return NDR_ERR_SUCCESS;
22875 static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, int flags, struct spoolss_AddForm *r)
22877 TALLOC_CTX *_mem_save_handle_0;
22878 if (flags & NDR_IN) {
22879 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22880 NDR_PULL_ALLOC(ndr, r->in.handle);
22882 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22883 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22884 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22885 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22886 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22887 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
22888 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22890 if (flags & NDR_OUT) {
22891 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22893 return NDR_ERR_SUCCESS;
22896 _PUBLIC_ void ndr_print_spoolss_AddForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddForm *r)
22898 ndr_print_struct(ndr, name, "spoolss_AddForm");
22900 if (flags & NDR_SET_VALUES) {
22901 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22903 if (flags & NDR_IN) {
22904 ndr_print_struct(ndr, "in", "spoolss_AddForm");
22906 ndr_print_ptr(ndr, "handle", r->in.handle);
22908 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22910 ndr_print_uint32(ndr, "level", r->in.level);
22911 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
22912 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
22915 if (flags & NDR_OUT) {
22916 ndr_print_struct(ndr, "out", "spoolss_AddForm");
22918 ndr_print_WERROR(ndr, "result", r->out.result);
22924 static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, int flags, const struct spoolss_DeleteForm *r)
22926 if (flags & NDR_IN) {
22927 if (r->in.handle == NULL) {
22928 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22930 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22931 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22932 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22933 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22934 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));
22936 if (flags & NDR_OUT) {
22937 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22939 return NDR_ERR_SUCCESS;
22942 static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, int flags, struct spoolss_DeleteForm *r)
22944 TALLOC_CTX *_mem_save_handle_0;
22945 if (flags & NDR_IN) {
22946 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22947 NDR_PULL_ALLOC(ndr, r->in.handle);
22949 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22950 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22951 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22952 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22953 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
22954 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
22955 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
22956 return 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));
22958 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
22959 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));
22961 if (flags & NDR_OUT) {
22962 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22964 return NDR_ERR_SUCCESS;
22967 _PUBLIC_ void ndr_print_spoolss_DeleteForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteForm *r)
22969 ndr_print_struct(ndr, name, "spoolss_DeleteForm");
22971 if (flags & NDR_SET_VALUES) {
22972 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22974 if (flags & NDR_IN) {
22975 ndr_print_struct(ndr, "in", "spoolss_DeleteForm");
22977 ndr_print_ptr(ndr, "handle", r->in.handle);
22979 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22981 ndr_print_string(ndr, "form_name", r->in.form_name);
22984 if (flags & NDR_OUT) {
22985 ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
22987 ndr_print_WERROR(ndr, "result", r->out.result);
22993 static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, int flags, const struct spoolss_GetForm *r)
22995 if (flags & NDR_IN) {
22996 if (r->in.handle == NULL) {
22997 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22999 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23000 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23001 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23002 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23003 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));
23004 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23005 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23006 if (r->in.buffer) {
23007 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23009 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23011 if (flags & NDR_OUT) {
23012 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23015 struct ndr_push *_ndr_info;
23016 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
23017 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
23018 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
23019 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
23022 if (r->out.needed == NULL) {
23023 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23025 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23026 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23028 return NDR_ERR_SUCCESS;
23031 static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, int flags, struct spoolss_GetForm *r)
23033 uint32_t _ptr_buffer;
23034 uint32_t _ptr_info;
23035 TALLOC_CTX *_mem_save_handle_0;
23036 TALLOC_CTX *_mem_save_buffer_0;
23037 TALLOC_CTX *_mem_save_info_0;
23038 TALLOC_CTX *_mem_save_needed_0;
23039 if (flags & NDR_IN) {
23040 ZERO_STRUCT(r->out);
23042 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23043 NDR_PULL_ALLOC(ndr, r->in.handle);
23045 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23046 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23047 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23048 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23049 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
23050 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
23051 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
23052 return 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));
23054 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
23055 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));
23056 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23057 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23059 NDR_PULL_ALLOC(ndr, r->in.buffer);
23061 r->in.buffer = NULL;
23063 if (r->in.buffer) {
23064 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23065 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23066 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23067 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23069 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23070 NDR_PULL_ALLOC(ndr, r->out.needed);
23071 ZERO_STRUCTP(r->out.needed);
23073 if (flags & NDR_OUT) {
23074 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23076 NDR_PULL_ALLOC(ndr, r->out.info);
23078 r->out.info = NULL;
23081 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23082 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23084 struct ndr_pull *_ndr_info;
23085 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
23086 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
23087 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
23088 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
23090 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23092 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23093 NDR_PULL_ALLOC(ndr, r->out.needed);
23095 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23096 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23097 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23098 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23099 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23101 return NDR_ERR_SUCCESS;
23104 _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetForm *r)
23106 ndr_print_struct(ndr, name, "spoolss_GetForm");
23108 if (flags & NDR_SET_VALUES) {
23109 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23111 if (flags & NDR_IN) {
23112 ndr_print_struct(ndr, "in", "spoolss_GetForm");
23114 ndr_print_ptr(ndr, "handle", r->in.handle);
23116 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23118 ndr_print_string(ndr, "form_name", r->in.form_name);
23119 ndr_print_uint32(ndr, "level", r->in.level);
23120 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23122 if (r->in.buffer) {
23123 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23126 ndr_print_uint32(ndr, "offered", r->in.offered);
23129 if (flags & NDR_OUT) {
23130 ndr_print_struct(ndr, "out", "spoolss_GetForm");
23132 ndr_print_ptr(ndr, "info", r->out.info);
23135 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
23136 ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
23139 ndr_print_ptr(ndr, "needed", r->out.needed);
23141 ndr_print_uint32(ndr, "needed", *r->out.needed);
23143 ndr_print_WERROR(ndr, "result", r->out.result);
23149 static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, int flags, const struct spoolss_SetForm *r)
23151 if (flags & NDR_IN) {
23152 if (r->in.handle == NULL) {
23153 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23155 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23156 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23157 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23158 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
23159 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));
23160 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23161 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
23162 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23164 if (flags & NDR_OUT) {
23165 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23167 return NDR_ERR_SUCCESS;
23170 static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, int flags, struct spoolss_SetForm *r)
23172 TALLOC_CTX *_mem_save_handle_0;
23173 if (flags & NDR_IN) {
23174 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23175 NDR_PULL_ALLOC(ndr, r->in.handle);
23177 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23178 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23179 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23180 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23181 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
23182 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
23183 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
23184 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.form_name), ndr_get_array_length(ndr, &r->in.form_name));
23186 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
23187 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));
23188 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23189 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
23190 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23192 if (flags & NDR_OUT) {
23193 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23195 return NDR_ERR_SUCCESS;
23198 _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetForm *r)
23200 ndr_print_struct(ndr, name, "spoolss_SetForm");
23202 if (flags & NDR_SET_VALUES) {
23203 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23205 if (flags & NDR_IN) {
23206 ndr_print_struct(ndr, "in", "spoolss_SetForm");
23208 ndr_print_ptr(ndr, "handle", r->in.handle);
23210 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23212 ndr_print_string(ndr, "form_name", r->in.form_name);
23213 ndr_print_uint32(ndr, "level", r->in.level);
23214 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
23215 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
23218 if (flags & NDR_OUT) {
23219 ndr_print_struct(ndr, "out", "spoolss_SetForm");
23221 ndr_print_WERROR(ndr, "result", r->out.result);
23227 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct _spoolss_EnumForms *r)
23229 if (flags & NDR_IN) {
23230 if (r->in.handle == NULL) {
23231 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23233 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23234 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23235 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23236 if (r->in.buffer) {
23237 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23239 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23241 if (flags & NDR_OUT) {
23242 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23244 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
23246 if (r->out.needed == NULL) {
23247 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23249 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23250 if (r->out.count == NULL) {
23251 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23253 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
23254 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23256 return NDR_ERR_SUCCESS;
23259 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct _spoolss_EnumForms *r)
23261 uint32_t _ptr_buffer;
23262 uint32_t _ptr_info;
23263 TALLOC_CTX *_mem_save_handle_0;
23264 TALLOC_CTX *_mem_save_buffer_0;
23265 TALLOC_CTX *_mem_save_info_0;
23266 TALLOC_CTX *_mem_save_needed_0;
23267 TALLOC_CTX *_mem_save_count_0;
23268 if (flags & NDR_IN) {
23269 ZERO_STRUCT(r->out);
23271 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23272 NDR_PULL_ALLOC(ndr, r->in.handle);
23274 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23275 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23276 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23277 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23278 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23279 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23281 NDR_PULL_ALLOC(ndr, r->in.buffer);
23283 r->in.buffer = NULL;
23285 if (r->in.buffer) {
23286 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23287 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23288 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23289 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23291 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23292 NDR_PULL_ALLOC(ndr, r->out.needed);
23293 ZERO_STRUCTP(r->out.needed);
23294 NDR_PULL_ALLOC(ndr, r->out.count);
23295 ZERO_STRUCTP(r->out.count);
23297 if (flags & NDR_OUT) {
23298 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23300 NDR_PULL_ALLOC(ndr, r->out.info);
23302 r->out.info = NULL;
23305 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23306 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23307 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
23308 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23310 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23311 NDR_PULL_ALLOC(ndr, r->out.needed);
23313 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23314 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23315 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23316 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23317 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23318 NDR_PULL_ALLOC(ndr, r->out.count);
23320 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
23321 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
23322 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
23323 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
23324 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23326 return NDR_ERR_SUCCESS;
23329 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct __spoolss_EnumForms *r)
23331 uint32_t cntr_info_0;
23332 if (flags & NDR_IN) {
23333 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23334 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
23336 if (flags & NDR_OUT) {
23337 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23338 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23339 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23341 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23342 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23345 return NDR_ERR_SUCCESS;
23348 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct __spoolss_EnumForms *r)
23350 uint32_t cntr_info_0;
23351 TALLOC_CTX *_mem_save_info_0;
23352 if (flags & NDR_IN) {
23353 ZERO_STRUCT(r->out);
23355 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23356 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
23358 if (flags & NDR_OUT) {
23359 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
23360 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23361 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23362 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23363 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23364 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23366 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23367 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23369 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23371 return NDR_ERR_SUCCESS;
23374 _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumForms *r)
23376 uint32_t cntr_info_2;
23377 ndr_print_struct(ndr, name, "spoolss_EnumForms");
23379 if (flags & NDR_SET_VALUES) {
23380 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23382 if (flags & NDR_IN) {
23383 ndr_print_struct(ndr, "in", "spoolss_EnumForms");
23385 ndr_print_ptr(ndr, "handle", r->in.handle);
23387 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23389 ndr_print_uint32(ndr, "level", r->in.level);
23390 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23392 if (r->in.buffer) {
23393 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23396 ndr_print_uint32(ndr, "offered", r->in.offered);
23399 if (flags & NDR_OUT) {
23400 ndr_print_struct(ndr, "out", "spoolss_EnumForms");
23402 ndr_print_ptr(ndr, "count", r->out.count);
23404 ndr_print_uint32(ndr, "count", *r->out.count);
23406 ndr_print_ptr(ndr, "info", r->out.info);
23408 ndr_print_ptr(ndr, "info", *r->out.info);
23410 if (*r->out.info) {
23411 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
23413 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
23415 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
23416 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
23417 ndr_print_spoolss_FormInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
23425 ndr_print_ptr(ndr, "needed", r->out.needed);
23427 ndr_print_uint32(ndr, "needed", *r->out.needed);
23429 ndr_print_WERROR(ndr, "result", r->out.result);
23435 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPorts *r)
23437 if (flags & NDR_IN) {
23438 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
23439 if (r->in.servername) {
23440 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23441 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23442 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23443 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23445 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23446 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23447 if (r->in.buffer) {
23448 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23450 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23452 if (flags & NDR_OUT) {
23453 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23455 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
23457 if (r->out.needed == NULL) {
23458 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23460 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23461 if (r->out.count == NULL) {
23462 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23464 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
23465 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23467 return NDR_ERR_SUCCESS;
23470 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPorts *r)
23472 uint32_t _ptr_servername;
23473 uint32_t _ptr_buffer;
23474 uint32_t _ptr_info;
23475 TALLOC_CTX *_mem_save_servername_0;
23476 TALLOC_CTX *_mem_save_buffer_0;
23477 TALLOC_CTX *_mem_save_info_0;
23478 TALLOC_CTX *_mem_save_needed_0;
23479 TALLOC_CTX *_mem_save_count_0;
23480 if (flags & NDR_IN) {
23481 ZERO_STRUCT(r->out);
23483 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
23484 if (_ptr_servername) {
23485 NDR_PULL_ALLOC(ndr, r->in.servername);
23487 r->in.servername = NULL;
23489 if (r->in.servername) {
23490 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
23491 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
23492 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
23493 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
23494 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
23495 return 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));
23497 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
23498 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
23499 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
23501 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23502 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23504 NDR_PULL_ALLOC(ndr, r->in.buffer);
23506 r->in.buffer = NULL;
23508 if (r->in.buffer) {
23509 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23510 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23511 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23512 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23514 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23515 NDR_PULL_ALLOC(ndr, r->out.needed);
23516 ZERO_STRUCTP(r->out.needed);
23517 NDR_PULL_ALLOC(ndr, r->out.count);
23518 ZERO_STRUCTP(r->out.count);
23520 if (flags & NDR_OUT) {
23521 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23523 NDR_PULL_ALLOC(ndr, r->out.info);
23525 r->out.info = NULL;
23528 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23529 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23530 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
23531 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23533 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23534 NDR_PULL_ALLOC(ndr, r->out.needed);
23536 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23537 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23538 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23539 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23540 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23541 NDR_PULL_ALLOC(ndr, r->out.count);
23543 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
23544 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
23545 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
23546 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
23547 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23549 return NDR_ERR_SUCCESS;
23552 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPorts *r)
23554 uint32_t cntr_info_0;
23555 if (flags & NDR_IN) {
23556 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23557 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
23559 if (flags & NDR_OUT) {
23560 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23561 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23562 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23564 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23565 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23568 return NDR_ERR_SUCCESS;
23571 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPorts *r)
23573 uint32_t cntr_info_0;
23574 TALLOC_CTX *_mem_save_info_0;
23575 if (flags & NDR_IN) {
23576 ZERO_STRUCT(r->out);
23578 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23579 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
23581 if (flags & NDR_OUT) {
23582 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
23583 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23584 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23585 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23586 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23587 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23589 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23590 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23592 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23594 return NDR_ERR_SUCCESS;
23597 _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPorts *r)
23599 uint32_t cntr_info_2;
23600 ndr_print_struct(ndr, name, "spoolss_EnumPorts");
23602 if (flags & NDR_SET_VALUES) {
23603 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23605 if (flags & NDR_IN) {
23606 ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
23608 ndr_print_ptr(ndr, "servername", r->in.servername);
23610 if (r->in.servername) {
23611 ndr_print_string(ndr, "servername", r->in.servername);
23614 ndr_print_uint32(ndr, "level", r->in.level);
23615 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23617 if (r->in.buffer) {
23618 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23621 ndr_print_uint32(ndr, "offered", r->in.offered);
23624 if (flags & NDR_OUT) {
23625 ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
23627 ndr_print_ptr(ndr, "count", r->out.count);
23629 ndr_print_uint32(ndr, "count", *r->out.count);
23631 ndr_print_ptr(ndr, "info", r->out.info);
23633 ndr_print_ptr(ndr, "info", *r->out.info);
23635 if (*r->out.info) {
23636 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
23638 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
23640 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
23641 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
23642 ndr_print_spoolss_PortInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
23650 ndr_print_ptr(ndr, "needed", r->out.needed);
23652 ndr_print_uint32(ndr, "needed", *r->out.needed);
23654 ndr_print_WERROR(ndr, "result", r->out.result);
23660 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumMonitors *r)
23662 if (flags & NDR_IN) {
23663 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
23664 if (r->in.servername) {
23665 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23666 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23667 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23668 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23670 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23671 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23672 if (r->in.buffer) {
23673 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23675 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23677 if (flags & NDR_OUT) {
23678 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23680 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
23682 if (r->out.needed == NULL) {
23683 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23685 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23686 if (r->out.count == NULL) {
23687 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23689 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
23690 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23692 return NDR_ERR_SUCCESS;
23695 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumMonitors *r)
23697 uint32_t _ptr_servername;
23698 uint32_t _ptr_buffer;
23699 uint32_t _ptr_info;
23700 TALLOC_CTX *_mem_save_servername_0;
23701 TALLOC_CTX *_mem_save_buffer_0;
23702 TALLOC_CTX *_mem_save_info_0;
23703 TALLOC_CTX *_mem_save_needed_0;
23704 TALLOC_CTX *_mem_save_count_0;
23705 if (flags & NDR_IN) {
23706 ZERO_STRUCT(r->out);
23708 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
23709 if (_ptr_servername) {
23710 NDR_PULL_ALLOC(ndr, r->in.servername);
23712 r->in.servername = NULL;
23714 if (r->in.servername) {
23715 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
23716 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
23717 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
23718 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
23719 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
23720 return 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));
23722 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
23723 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
23724 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
23726 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23727 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23729 NDR_PULL_ALLOC(ndr, r->in.buffer);
23731 r->in.buffer = NULL;
23733 if (r->in.buffer) {
23734 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23735 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23736 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23737 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23739 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23740 NDR_PULL_ALLOC(ndr, r->out.needed);
23741 ZERO_STRUCTP(r->out.needed);
23742 NDR_PULL_ALLOC(ndr, r->out.count);
23743 ZERO_STRUCTP(r->out.count);
23745 if (flags & NDR_OUT) {
23746 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23748 NDR_PULL_ALLOC(ndr, r->out.info);
23750 r->out.info = NULL;
23753 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23754 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23755 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
23756 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23758 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23759 NDR_PULL_ALLOC(ndr, r->out.needed);
23761 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23762 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23763 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23764 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23765 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23766 NDR_PULL_ALLOC(ndr, r->out.count);
23768 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
23769 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
23770 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
23771 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
23772 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23774 return NDR_ERR_SUCCESS;
23777 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumMonitors *r)
23779 uint32_t cntr_info_0;
23780 if (flags & NDR_IN) {
23781 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23782 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
23784 if (flags & NDR_OUT) {
23785 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23786 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23787 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23789 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23790 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23793 return NDR_ERR_SUCCESS;
23796 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumMonitors *r)
23798 uint32_t cntr_info_0;
23799 TALLOC_CTX *_mem_save_info_0;
23800 if (flags & NDR_IN) {
23801 ZERO_STRUCT(r->out);
23803 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23804 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
23806 if (flags & NDR_OUT) {
23807 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
23808 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23809 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23810 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23811 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23812 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23814 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23815 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23817 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23819 return NDR_ERR_SUCCESS;
23822 _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumMonitors *r)
23824 uint32_t cntr_info_2;
23825 ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
23827 if (flags & NDR_SET_VALUES) {
23828 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23830 if (flags & NDR_IN) {
23831 ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
23833 ndr_print_ptr(ndr, "servername", r->in.servername);
23835 if (r->in.servername) {
23836 ndr_print_string(ndr, "servername", r->in.servername);
23839 ndr_print_uint32(ndr, "level", r->in.level);
23840 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23842 if (r->in.buffer) {
23843 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23846 ndr_print_uint32(ndr, "offered", r->in.offered);
23849 if (flags & NDR_OUT) {
23850 ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
23852 ndr_print_ptr(ndr, "count", r->out.count);
23854 ndr_print_uint32(ndr, "count", *r->out.count);
23856 ndr_print_ptr(ndr, "info", r->out.info);
23858 ndr_print_ptr(ndr, "info", *r->out.info);
23860 if (*r->out.info) {
23861 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
23863 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
23865 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
23866 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
23867 ndr_print_spoolss_MonitorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
23875 ndr_print_ptr(ndr, "needed", r->out.needed);
23877 ndr_print_uint32(ndr, "needed", *r->out.needed);
23879 ndr_print_WERROR(ndr, "result", r->out.result);
23885 static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, int flags, const struct spoolss_AddPort *r)
23887 if (flags & NDR_IN) {
23888 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
23889 if (r->in.server_name) {
23890 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
23891 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23892 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
23893 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));
23895 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
23896 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
23897 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23898 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
23899 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));
23901 if (flags & NDR_OUT) {
23902 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23904 return NDR_ERR_SUCCESS;
23907 static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, int flags, struct spoolss_AddPort *r)
23909 uint32_t _ptr_server_name;
23910 TALLOC_CTX *_mem_save_server_name_0;
23911 if (flags & NDR_IN) {
23912 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
23913 if (_ptr_server_name) {
23914 NDR_PULL_ALLOC(ndr, r->in.server_name);
23916 r->in.server_name = NULL;
23918 if (r->in.server_name) {
23919 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
23920 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
23921 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
23922 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
23923 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
23924 return 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));
23926 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
23927 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));
23928 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
23930 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
23931 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
23932 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
23933 if (ndr_get_array_length(ndr, &r->in.monitor_name) > ndr_get_array_size(ndr, &r->in.monitor_name)) {
23934 return 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));
23936 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t)));
23937 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));
23939 if (flags & NDR_OUT) {
23940 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23942 return NDR_ERR_SUCCESS;
23945 _PUBLIC_ void ndr_print_spoolss_AddPort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPort *r)
23947 ndr_print_struct(ndr, name, "spoolss_AddPort");
23949 if (flags & NDR_SET_VALUES) {
23950 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23952 if (flags & NDR_IN) {
23953 ndr_print_struct(ndr, "in", "spoolss_AddPort");
23955 ndr_print_ptr(ndr, "server_name", r->in.server_name);
23957 if (r->in.server_name) {
23958 ndr_print_string(ndr, "server_name", r->in.server_name);
23961 ndr_print_uint32(ndr, "unknown", r->in.unknown);
23962 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
23965 if (flags & NDR_OUT) {
23966 ndr_print_struct(ndr, "out", "spoolss_AddPort");
23968 ndr_print_WERROR(ndr, "result", r->out.result);
23974 static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, int flags, const struct spoolss_ConfigurePort *r)
23976 if (flags & NDR_IN) {
23978 if (flags & NDR_OUT) {
23979 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23981 return NDR_ERR_SUCCESS;
23984 static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, int flags, struct spoolss_ConfigurePort *r)
23986 if (flags & NDR_IN) {
23988 if (flags & NDR_OUT) {
23989 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23991 return NDR_ERR_SUCCESS;
23994 _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ConfigurePort *r)
23996 ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
23998 if (flags & NDR_SET_VALUES) {
23999 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24001 if (flags & NDR_IN) {
24002 ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
24006 if (flags & NDR_OUT) {
24007 ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
24009 ndr_print_WERROR(ndr, "result", r->out.result);
24015 static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, int flags, const struct spoolss_DeletePort *r)
24017 if (flags & NDR_IN) {
24019 if (flags & NDR_OUT) {
24020 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24022 return NDR_ERR_SUCCESS;
24025 static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, int flags, struct spoolss_DeletePort *r)
24027 if (flags & NDR_IN) {
24029 if (flags & NDR_OUT) {
24030 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24032 return NDR_ERR_SUCCESS;
24035 _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePort *r)
24037 ndr_print_struct(ndr, name, "spoolss_DeletePort");
24039 if (flags & NDR_SET_VALUES) {
24040 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24042 if (flags & NDR_IN) {
24043 ndr_print_struct(ndr, "in", "spoolss_DeletePort");
24047 if (flags & NDR_OUT) {
24048 ndr_print_struct(ndr, "out", "spoolss_DeletePort");
24050 ndr_print_WERROR(ndr, "result", r->out.result);
24056 static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_CreatePrinterIC *r)
24058 if (flags & NDR_IN) {
24060 if (flags & NDR_OUT) {
24061 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24063 return NDR_ERR_SUCCESS;
24066 static enum ndr_err_code ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_CreatePrinterIC *r)
24068 if (flags & NDR_IN) {
24070 if (flags & NDR_OUT) {
24071 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24073 return NDR_ERR_SUCCESS;
24076 _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_CreatePrinterIC *r)
24078 ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
24080 if (flags & NDR_SET_VALUES) {
24081 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24083 if (flags & NDR_IN) {
24084 ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
24088 if (flags & NDR_OUT) {
24089 ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
24091 ndr_print_WERROR(ndr, "result", r->out.result);
24097 static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
24099 if (flags & NDR_IN) {
24101 if (flags & NDR_OUT) {
24102 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24104 return NDR_ERR_SUCCESS;
24107 static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
24109 if (flags & NDR_IN) {
24111 if (flags & NDR_OUT) {
24112 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24114 return NDR_ERR_SUCCESS;
24117 _PUBLIC_ void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
24119 ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
24121 if (flags & NDR_SET_VALUES) {
24122 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24124 if (flags & NDR_IN) {
24125 ndr_print_struct(ndr, "in", "spoolss_PlayGDIScriptOnPrinterIC");
24129 if (flags & NDR_OUT) {
24130 ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
24132 ndr_print_WERROR(ndr, "result", r->out.result);
24138 static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterIC *r)
24140 if (flags & NDR_IN) {
24142 if (flags & NDR_OUT) {
24143 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24145 return NDR_ERR_SUCCESS;
24148 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterIC *r)
24150 if (flags & NDR_IN) {
24152 if (flags & NDR_OUT) {
24153 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24155 return NDR_ERR_SUCCESS;
24158 _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterIC *r)
24160 ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
24162 if (flags & NDR_SET_VALUES) {
24163 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24165 if (flags & NDR_IN) {
24166 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
24170 if (flags & NDR_OUT) {
24171 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
24173 ndr_print_WERROR(ndr, "result", r->out.result);
24179 static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterConnection *r)
24181 if (flags & NDR_IN) {
24183 if (flags & NDR_OUT) {
24184 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24186 return NDR_ERR_SUCCESS;
24189 static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterConnection *r)
24191 if (flags & NDR_IN) {
24193 if (flags & NDR_OUT) {
24194 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24196 return NDR_ERR_SUCCESS;
24199 _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterConnection *r)
24201 ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
24203 if (flags & NDR_SET_VALUES) {
24204 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24206 if (flags & NDR_IN) {
24207 ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
24211 if (flags & NDR_OUT) {
24212 ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
24214 ndr_print_WERROR(ndr, "result", r->out.result);
24220 static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterConnection *r)
24222 if (flags & NDR_IN) {
24224 if (flags & NDR_OUT) {
24225 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24227 return NDR_ERR_SUCCESS;
24230 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterConnection *r)
24232 if (flags & NDR_IN) {
24234 if (flags & NDR_OUT) {
24235 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24237 return NDR_ERR_SUCCESS;
24240 _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterConnection *r)
24242 ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
24244 if (flags & NDR_SET_VALUES) {
24245 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24247 if (flags & NDR_IN) {
24248 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
24252 if (flags & NDR_OUT) {
24253 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
24255 ndr_print_WERROR(ndr, "result", r->out.result);
24261 static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, int flags, const struct spoolss_PrinterMessageBox *r)
24263 if (flags & NDR_IN) {
24265 if (flags & NDR_OUT) {
24266 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24268 return NDR_ERR_SUCCESS;
24271 static enum ndr_err_code ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull *ndr, int flags, struct spoolss_PrinterMessageBox *r)
24273 if (flags & NDR_IN) {
24275 if (flags & NDR_OUT) {
24276 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24278 return NDR_ERR_SUCCESS;
24281 _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PrinterMessageBox *r)
24283 ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
24285 if (flags & NDR_SET_VALUES) {
24286 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24288 if (flags & NDR_IN) {
24289 ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
24293 if (flags & NDR_OUT) {
24294 ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
24296 ndr_print_WERROR(ndr, "result", r->out.result);
24302 static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, int flags, const struct spoolss_AddMonitor *r)
24304 if (flags & NDR_IN) {
24306 if (flags & NDR_OUT) {
24307 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24309 return NDR_ERR_SUCCESS;
24312 static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, int flags, struct spoolss_AddMonitor *r)
24314 if (flags & NDR_IN) {
24316 if (flags & NDR_OUT) {
24317 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24319 return NDR_ERR_SUCCESS;
24322 _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddMonitor *r)
24324 ndr_print_struct(ndr, name, "spoolss_AddMonitor");
24326 if (flags & NDR_SET_VALUES) {
24327 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24329 if (flags & NDR_IN) {
24330 ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
24334 if (flags & NDR_OUT) {
24335 ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
24337 ndr_print_WERROR(ndr, "result", r->out.result);
24343 static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, int flags, const struct spoolss_DeleteMonitor *r)
24345 if (flags & NDR_IN) {
24347 if (flags & NDR_OUT) {
24348 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24350 return NDR_ERR_SUCCESS;
24353 static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, int flags, struct spoolss_DeleteMonitor *r)
24355 if (flags & NDR_IN) {
24357 if (flags & NDR_OUT) {
24358 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24360 return NDR_ERR_SUCCESS;
24363 _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteMonitor *r)
24365 ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
24367 if (flags & NDR_SET_VALUES) {
24368 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24370 if (flags & NDR_IN) {
24371 ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
24375 if (flags & NDR_OUT) {
24376 ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
24378 ndr_print_WERROR(ndr, "result", r->out.result);
24384 static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProcessor *r)
24386 if (flags & NDR_IN) {
24388 if (flags & NDR_OUT) {
24389 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24391 return NDR_ERR_SUCCESS;
24394 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProcessor *r)
24396 if (flags & NDR_IN) {
24398 if (flags & NDR_OUT) {
24399 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24401 return NDR_ERR_SUCCESS;
24404 _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProcessor *r)
24406 ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
24408 if (flags & NDR_SET_VALUES) {
24409 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24411 if (flags & NDR_IN) {
24412 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
24416 if (flags & NDR_OUT) {
24417 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
24419 ndr_print_WERROR(ndr, "result", r->out.result);
24425 static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProvidor *r)
24427 if (flags & NDR_IN) {
24429 if (flags & NDR_OUT) {
24430 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24432 return NDR_ERR_SUCCESS;
24435 static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProvidor *r)
24437 if (flags & NDR_IN) {
24439 if (flags & NDR_OUT) {
24440 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24442 return NDR_ERR_SUCCESS;
24445 _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProvidor *r)
24447 ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
24449 if (flags & NDR_SET_VALUES) {
24450 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24452 if (flags & NDR_IN) {
24453 ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
24457 if (flags & NDR_OUT) {
24458 ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
24460 ndr_print_WERROR(ndr, "result", r->out.result);
24466 static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProvidor *r)
24468 if (flags & NDR_IN) {
24470 if (flags & NDR_OUT) {
24471 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24473 return NDR_ERR_SUCCESS;
24476 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProvidor *r)
24478 if (flags & NDR_IN) {
24480 if (flags & NDR_OUT) {
24481 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24483 return NDR_ERR_SUCCESS;
24486 _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProvidor *r)
24488 ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
24490 if (flags & NDR_SET_VALUES) {
24491 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24493 if (flags & NDR_IN) {
24494 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
24498 if (flags & NDR_OUT) {
24499 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
24501 ndr_print_WERROR(ndr, "result", r->out.result);
24507 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcDataTypes *r)
24509 if (flags & NDR_IN) {
24510 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
24511 if (r->in.servername) {
24512 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24513 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24514 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24515 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24517 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.print_processor_name));
24518 if (r->in.print_processor_name) {
24519 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
24520 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24521 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
24522 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));
24524 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24525 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24526 if (r->in.buffer) {
24527 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24529 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24531 if (flags & NDR_OUT) {
24532 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24534 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
24536 if (r->out.needed == NULL) {
24537 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24539 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24540 if (r->out.count == NULL) {
24541 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24543 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
24544 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24546 return NDR_ERR_SUCCESS;
24549 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcDataTypes *r)
24551 uint32_t _ptr_servername;
24552 uint32_t _ptr_print_processor_name;
24553 uint32_t _ptr_buffer;
24554 uint32_t _ptr_info;
24555 TALLOC_CTX *_mem_save_servername_0;
24556 TALLOC_CTX *_mem_save_print_processor_name_0;
24557 TALLOC_CTX *_mem_save_buffer_0;
24558 TALLOC_CTX *_mem_save_info_0;
24559 TALLOC_CTX *_mem_save_needed_0;
24560 TALLOC_CTX *_mem_save_count_0;
24561 if (flags & NDR_IN) {
24562 ZERO_STRUCT(r->out);
24564 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
24565 if (_ptr_servername) {
24566 NDR_PULL_ALLOC(ndr, r->in.servername);
24568 r->in.servername = NULL;
24570 if (r->in.servername) {
24571 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
24572 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
24573 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
24574 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
24575 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
24576 return 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));
24578 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
24579 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
24580 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
24582 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
24583 if (_ptr_print_processor_name) {
24584 NDR_PULL_ALLOC(ndr, r->in.print_processor_name);
24586 r->in.print_processor_name = NULL;
24588 if (r->in.print_processor_name) {
24589 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
24590 NDR_PULL_SET_MEM_CTX(ndr, r->in.print_processor_name, 0);
24591 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
24592 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
24593 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
24594 return 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));
24596 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
24597 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));
24598 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
24600 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24601 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24603 NDR_PULL_ALLOC(ndr, r->in.buffer);
24605 r->in.buffer = NULL;
24607 if (r->in.buffer) {
24608 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24609 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24610 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24611 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24613 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24614 NDR_PULL_ALLOC(ndr, r->out.needed);
24615 ZERO_STRUCTP(r->out.needed);
24616 NDR_PULL_ALLOC(ndr, r->out.count);
24617 ZERO_STRUCTP(r->out.count);
24619 if (flags & NDR_OUT) {
24620 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24622 NDR_PULL_ALLOC(ndr, r->out.info);
24624 r->out.info = NULL;
24627 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24628 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24629 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
24630 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24632 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24633 NDR_PULL_ALLOC(ndr, r->out.needed);
24635 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24636 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24637 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24638 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24639 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24640 NDR_PULL_ALLOC(ndr, r->out.count);
24642 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
24643 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
24644 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
24645 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
24646 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24648 return NDR_ERR_SUCCESS;
24651 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcDataTypes *r)
24653 uint32_t cntr_info_0;
24654 if (flags & NDR_IN) {
24655 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24656 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
24658 if (flags & NDR_OUT) {
24659 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24660 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24661 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24663 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24664 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24667 return NDR_ERR_SUCCESS;
24670 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcDataTypes *r)
24672 uint32_t cntr_info_0;
24673 TALLOC_CTX *_mem_save_info_0;
24674 if (flags & NDR_IN) {
24675 ZERO_STRUCT(r->out);
24677 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24678 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
24680 if (flags & NDR_OUT) {
24681 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
24682 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24683 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24684 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24685 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24686 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24688 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24689 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24691 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24693 return NDR_ERR_SUCCESS;
24696 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
24698 uint32_t cntr_info_2;
24699 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcDataTypes");
24701 if (flags & NDR_SET_VALUES) {
24702 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24704 if (flags & NDR_IN) {
24705 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcDataTypes");
24707 ndr_print_ptr(ndr, "servername", r->in.servername);
24709 if (r->in.servername) {
24710 ndr_print_string(ndr, "servername", r->in.servername);
24713 ndr_print_ptr(ndr, "print_processor_name", r->in.print_processor_name);
24715 if (r->in.print_processor_name) {
24716 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
24719 ndr_print_uint32(ndr, "level", r->in.level);
24720 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24722 if (r->in.buffer) {
24723 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24726 ndr_print_uint32(ndr, "offered", r->in.offered);
24729 if (flags & NDR_OUT) {
24730 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcDataTypes");
24732 ndr_print_ptr(ndr, "count", r->out.count);
24734 ndr_print_uint32(ndr, "count", *r->out.count);
24736 ndr_print_ptr(ndr, "info", r->out.info);
24738 ndr_print_ptr(ndr, "info", *r->out.info);
24740 if (*r->out.info) {
24741 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
24743 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
24745 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
24746 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
24747 ndr_print_spoolss_PrintProcDataTypesInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
24755 ndr_print_ptr(ndr, "needed", r->out.needed);
24757 ndr_print_uint32(ndr, "needed", *r->out.needed);
24759 ndr_print_WERROR(ndr, "result", r->out.result);
24765 static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinter *r)
24767 if (flags & NDR_IN) {
24768 if (r->in.handle == NULL) {
24769 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24771 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24772 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_type));
24773 if (r->in.data_type) {
24774 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
24775 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24776 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
24777 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));
24779 if (r->in.devmode_ctr == NULL) {
24780 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24782 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
24784 if (flags & NDR_OUT) {
24785 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24787 return NDR_ERR_SUCCESS;
24790 static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinter *r)
24792 uint32_t _ptr_data_type;
24793 TALLOC_CTX *_mem_save_handle_0;
24794 TALLOC_CTX *_mem_save_data_type_0;
24795 TALLOC_CTX *_mem_save_devmode_ctr_0;
24796 if (flags & NDR_IN) {
24797 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24798 NDR_PULL_ALLOC(ndr, r->in.handle);
24800 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24801 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24802 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24803 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24804 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
24805 if (_ptr_data_type) {
24806 NDR_PULL_ALLOC(ndr, r->in.data_type);
24808 r->in.data_type = NULL;
24810 if (r->in.data_type) {
24811 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
24812 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
24813 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
24814 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
24815 if (ndr_get_array_length(ndr, &r->in.data_type) > ndr_get_array_size(ndr, &r->in.data_type)) {
24816 return 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));
24818 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t)));
24819 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));
24820 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
24822 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24823 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
24825 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
24826 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
24827 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
24828 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
24830 if (flags & NDR_OUT) {
24831 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24833 return NDR_ERR_SUCCESS;
24836 _PUBLIC_ void ndr_print_spoolss_ResetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinter *r)
24838 ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
24840 if (flags & NDR_SET_VALUES) {
24841 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24843 if (flags & NDR_IN) {
24844 ndr_print_struct(ndr, "in", "spoolss_ResetPrinter");
24846 ndr_print_ptr(ndr, "handle", r->in.handle);
24848 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24850 ndr_print_ptr(ndr, "data_type", r->in.data_type);
24852 if (r->in.data_type) {
24853 ndr_print_string(ndr, "data_type", r->in.data_type);
24856 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
24858 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
24862 if (flags & NDR_OUT) {
24863 ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
24865 ndr_print_WERROR(ndr, "result", r->out.result);
24871 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver2 *r)
24873 if (flags & NDR_IN) {
24874 if (r->in.handle == NULL) {
24875 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24877 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24878 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
24879 if (r->in.architecture) {
24880 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
24881 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24882 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
24883 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24885 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24886 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24887 if (r->in.buffer) {
24888 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24890 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24891 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
24892 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
24894 if (flags & NDR_OUT) {
24895 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24898 struct ndr_push *_ndr_info;
24899 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
24900 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
24901 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
24902 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
24905 if (r->out.needed == NULL) {
24906 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24908 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24909 if (r->out.server_major_version == NULL) {
24910 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24912 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
24913 if (r->out.server_minor_version == NULL) {
24914 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24916 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
24917 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24919 return NDR_ERR_SUCCESS;
24922 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver2 *r)
24924 uint32_t _ptr_architecture;
24925 uint32_t _ptr_buffer;
24926 uint32_t _ptr_info;
24927 TALLOC_CTX *_mem_save_handle_0;
24928 TALLOC_CTX *_mem_save_architecture_0;
24929 TALLOC_CTX *_mem_save_buffer_0;
24930 TALLOC_CTX *_mem_save_info_0;
24931 TALLOC_CTX *_mem_save_needed_0;
24932 TALLOC_CTX *_mem_save_server_major_version_0;
24933 TALLOC_CTX *_mem_save_server_minor_version_0;
24934 if (flags & NDR_IN) {
24935 ZERO_STRUCT(r->out);
24937 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24938 NDR_PULL_ALLOC(ndr, r->in.handle);
24940 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24941 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24942 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24943 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24944 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
24945 if (_ptr_architecture) {
24946 NDR_PULL_ALLOC(ndr, r->in.architecture);
24948 r->in.architecture = NULL;
24950 if (r->in.architecture) {
24951 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
24952 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
24953 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
24954 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
24955 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
24956 return 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));
24958 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
24959 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
24960 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
24962 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24963 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24965 NDR_PULL_ALLOC(ndr, r->in.buffer);
24967 r->in.buffer = NULL;
24969 if (r->in.buffer) {
24970 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24971 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24972 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24973 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24975 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24976 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
24977 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
24978 NDR_PULL_ALLOC(ndr, r->out.needed);
24979 ZERO_STRUCTP(r->out.needed);
24980 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
24981 ZERO_STRUCTP(r->out.server_major_version);
24982 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
24983 ZERO_STRUCTP(r->out.server_minor_version);
24985 if (flags & NDR_OUT) {
24986 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24988 NDR_PULL_ALLOC(ndr, r->out.info);
24990 r->out.info = NULL;
24993 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24994 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24996 struct ndr_pull *_ndr_info;
24997 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
24998 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
24999 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
25000 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
25002 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25004 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25005 NDR_PULL_ALLOC(ndr, r->out.needed);
25007 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25008 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25009 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25010 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25011 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25012 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
25014 _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
25015 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
25016 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
25017 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
25018 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25019 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
25021 _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
25022 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
25023 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
25024 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
25025 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25027 return NDR_ERR_SUCCESS;
25030 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver2 *r)
25032 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
25034 if (flags & NDR_SET_VALUES) {
25035 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25037 if (flags & NDR_IN) {
25038 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
25040 ndr_print_ptr(ndr, "handle", r->in.handle);
25042 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25044 ndr_print_ptr(ndr, "architecture", r->in.architecture);
25046 if (r->in.architecture) {
25047 ndr_print_string(ndr, "architecture", r->in.architecture);
25050 ndr_print_uint32(ndr, "level", r->in.level);
25051 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25053 if (r->in.buffer) {
25054 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
25057 ndr_print_uint32(ndr, "offered", r->in.offered);
25058 ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
25059 ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
25062 if (flags & NDR_OUT) {
25063 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
25065 ndr_print_ptr(ndr, "info", r->out.info);
25068 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
25069 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
25072 ndr_print_ptr(ndr, "needed", r->out.needed);
25074 ndr_print_uint32(ndr, "needed", *r->out.needed);
25076 ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
25078 ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
25080 ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
25082 ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
25084 ndr_print_WERROR(ndr, "result", r->out.result);
25090 static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
25092 if (flags & NDR_IN) {
25094 if (flags & NDR_OUT) {
25095 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25097 return NDR_ERR_SUCCESS;
25100 static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindFirstPrinterChangeNotification *r)
25102 if (flags & NDR_IN) {
25104 if (flags & NDR_OUT) {
25105 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25107 return NDR_ERR_SUCCESS;
25110 _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
25112 ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
25114 if (flags & NDR_SET_VALUES) {
25115 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25117 if (flags & NDR_IN) {
25118 ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
25122 if (flags & NDR_OUT) {
25123 ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
25125 ndr_print_WERROR(ndr, "result", r->out.result);
25131 static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
25133 if (flags & NDR_IN) {
25135 if (flags & NDR_OUT) {
25136 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25138 return NDR_ERR_SUCCESS;
25141 static enum ndr_err_code ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindNextPrinterChangeNotification *r)
25143 if (flags & NDR_IN) {
25145 if (flags & NDR_OUT) {
25146 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25148 return NDR_ERR_SUCCESS;
25151 _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
25153 ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
25155 if (flags & NDR_SET_VALUES) {
25156 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25158 if (flags & NDR_IN) {
25159 ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
25163 if (flags & NDR_OUT) {
25164 ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
25166 ndr_print_WERROR(ndr, "result", r->out.result);
25172 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, int flags, const struct spoolss_FindClosePrinterNotify *r)
25174 if (flags & NDR_IN) {
25175 if (r->in.handle == NULL) {
25176 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25178 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25180 if (flags & NDR_OUT) {
25181 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25183 return NDR_ERR_SUCCESS;
25186 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, int flags, struct spoolss_FindClosePrinterNotify *r)
25188 TALLOC_CTX *_mem_save_handle_0;
25189 if (flags & NDR_IN) {
25190 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25191 NDR_PULL_ALLOC(ndr, r->in.handle);
25193 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25194 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25195 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25196 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25198 if (flags & NDR_OUT) {
25199 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25201 return NDR_ERR_SUCCESS;
25204 _PUBLIC_ void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindClosePrinterNotify *r)
25206 ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
25208 if (flags & NDR_SET_VALUES) {
25209 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25211 if (flags & NDR_IN) {
25212 ndr_print_struct(ndr, "in", "spoolss_FindClosePrinterNotify");
25214 ndr_print_ptr(ndr, "handle", r->in.handle);
25216 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25220 if (flags & NDR_OUT) {
25221 ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
25223 ndr_print_WERROR(ndr, "result", r->out.result);
25229 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
25231 if (flags & NDR_IN) {
25233 if (flags & NDR_OUT) {
25234 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25236 return NDR_ERR_SUCCESS;
25239 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
25241 if (flags & NDR_IN) {
25243 if (flags & NDR_OUT) {
25244 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25246 return NDR_ERR_SUCCESS;
25249 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
25251 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
25253 if (flags & NDR_SET_VALUES) {
25254 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25256 if (flags & NDR_IN) {
25257 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
25261 if (flags & NDR_OUT) {
25262 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
25264 ndr_print_WERROR(ndr, "result", r->out.result);
25270 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyOpenPrinter *r)
25272 if (flags & NDR_IN) {
25273 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
25274 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25275 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
25276 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));
25277 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
25278 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
25279 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
25280 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25281 if (r->in.buffer) {
25282 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
25283 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
25286 if (flags & NDR_OUT) {
25287 if (r->out.handle == NULL) {
25288 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25290 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25291 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25293 return NDR_ERR_SUCCESS;
25296 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyOpenPrinter *r)
25298 uint32_t _ptr_buffer;
25299 TALLOC_CTX *_mem_save_buffer_0;
25300 TALLOC_CTX *_mem_save_handle_0;
25301 if (flags & NDR_IN) {
25302 ZERO_STRUCT(r->out);
25304 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
25305 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
25306 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
25307 return 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));
25309 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
25310 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));
25311 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
25312 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
25313 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
25314 if (r->in.bufsize > 512) {
25315 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
25317 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25319 NDR_PULL_ALLOC(ndr, r->in.buffer);
25321 r->in.buffer = NULL;
25323 if (r->in.buffer) {
25324 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25325 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25326 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
25327 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
25328 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
25329 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25331 NDR_PULL_ALLOC(ndr, r->out.handle);
25332 ZERO_STRUCTP(r->out.handle);
25333 if (r->in.buffer) {
25334 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
25337 if (flags & NDR_OUT) {
25338 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25339 NDR_PULL_ALLOC(ndr, r->out.handle);
25341 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25342 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
25343 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25344 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25345 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25347 return NDR_ERR_SUCCESS;
25350 _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyOpenPrinter *r)
25352 ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
25354 if (flags & NDR_SET_VALUES) {
25355 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25357 if (flags & NDR_IN) {
25358 ndr_print_struct(ndr, "in", "spoolss_ReplyOpenPrinter");
25360 ndr_print_string(ndr, "server_name", r->in.server_name);
25361 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
25362 ndr_print_winreg_Type(ndr, "type", r->in.type);
25363 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
25364 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25366 if (r->in.buffer) {
25367 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
25372 if (flags & NDR_OUT) {
25373 ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
25375 ndr_print_ptr(ndr, "handle", r->out.handle);
25377 ndr_print_policy_handle(ndr, "handle", r->out.handle);
25379 ndr_print_WERROR(ndr, "result", r->out.result);
25385 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinter *r)
25387 if (flags & NDR_IN) {
25388 if (r->in.handle == NULL) {
25389 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25391 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25392 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
25393 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
25394 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25395 if (r->in.buffer) {
25396 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
25397 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
25400 if (flags & NDR_OUT) {
25401 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25403 return NDR_ERR_SUCCESS;
25406 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinter *r)
25408 uint32_t _ptr_buffer;
25409 TALLOC_CTX *_mem_save_handle_0;
25410 TALLOC_CTX *_mem_save_buffer_0;
25411 if (flags & NDR_IN) {
25412 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25413 NDR_PULL_ALLOC(ndr, r->in.handle);
25415 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25416 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25417 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25418 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25419 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
25420 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
25421 if (r->in.bufsize > 512) {
25422 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
25424 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25426 NDR_PULL_ALLOC(ndr, r->in.buffer);
25428 r->in.buffer = NULL;
25430 if (r->in.buffer) {
25431 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25432 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25433 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
25434 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
25435 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
25436 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25438 if (r->in.buffer) {
25439 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
25442 if (flags & NDR_OUT) {
25443 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25445 return NDR_ERR_SUCCESS;
25448 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinter *r)
25450 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
25452 if (flags & NDR_SET_VALUES) {
25453 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25455 if (flags & NDR_IN) {
25456 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
25458 ndr_print_ptr(ndr, "handle", r->in.handle);
25460 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25462 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
25463 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
25464 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25466 if (r->in.buffer) {
25467 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
25472 if (flags & NDR_OUT) {
25473 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
25475 ndr_print_WERROR(ndr, "result", r->out.result);
25481 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyClosePrinter *r)
25483 if (flags & NDR_IN) {
25484 if (r->in.handle == NULL) {
25485 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25487 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25489 if (flags & NDR_OUT) {
25490 if (r->out.handle == NULL) {
25491 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25493 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25494 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25496 return NDR_ERR_SUCCESS;
25499 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyClosePrinter *r)
25501 TALLOC_CTX *_mem_save_handle_0;
25502 if (flags & NDR_IN) {
25503 ZERO_STRUCT(r->out);
25505 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25506 NDR_PULL_ALLOC(ndr, r->in.handle);
25508 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25509 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25510 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25511 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25512 NDR_PULL_ALLOC(ndr, r->out.handle);
25513 *r->out.handle = *r->in.handle;
25515 if (flags & NDR_OUT) {
25516 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25517 NDR_PULL_ALLOC(ndr, r->out.handle);
25519 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25520 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
25521 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25522 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25523 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25525 return NDR_ERR_SUCCESS;
25528 _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyClosePrinter *r)
25530 ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
25532 if (flags & NDR_SET_VALUES) {
25533 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25535 if (flags & NDR_IN) {
25536 ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
25538 ndr_print_ptr(ndr, "handle", r->in.handle);
25540 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25544 if (flags & NDR_OUT) {
25545 ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
25547 ndr_print_ptr(ndr, "handle", r->out.handle);
25549 ndr_print_policy_handle(ndr, "handle", r->out.handle);
25551 ndr_print_WERROR(ndr, "result", r->out.result);
25557 static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPortEx *r)
25559 if (flags & NDR_IN) {
25561 if (flags & NDR_OUT) {
25562 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25564 return NDR_ERR_SUCCESS;
25567 static enum ndr_err_code ndr_pull_spoolss_AddPortEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPortEx *r)
25569 if (flags & NDR_IN) {
25571 if (flags & NDR_OUT) {
25572 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25574 return NDR_ERR_SUCCESS;
25577 _PUBLIC_ void ndr_print_spoolss_AddPortEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPortEx *r)
25579 ndr_print_struct(ndr, name, "spoolss_AddPortEx");
25581 if (flags & NDR_SET_VALUES) {
25582 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25584 if (flags & NDR_IN) {
25585 ndr_print_struct(ndr, "in", "spoolss_AddPortEx");
25589 if (flags & NDR_OUT) {
25590 ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
25592 ndr_print_WERROR(ndr, "result", r->out.result);
25598 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
25600 if (flags & NDR_IN) {
25602 if (flags & NDR_OUT) {
25603 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25605 return NDR_ERR_SUCCESS;
25608 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
25610 if (flags & NDR_IN) {
25612 if (flags & NDR_OUT) {
25613 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25615 return NDR_ERR_SUCCESS;
25618 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
25620 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
25622 if (flags & NDR_SET_VALUES) {
25623 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25625 if (flags & NDR_IN) {
25626 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
25630 if (flags & NDR_OUT) {
25631 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
25633 ndr_print_WERROR(ndr, "result", r->out.result);
25639 static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, int flags, const struct spoolss_SpoolerInit *r)
25641 if (flags & NDR_IN) {
25643 if (flags & NDR_OUT) {
25644 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25646 return NDR_ERR_SUCCESS;
25649 static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, int flags, struct spoolss_SpoolerInit *r)
25651 if (flags & NDR_IN) {
25653 if (flags & NDR_OUT) {
25654 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25656 return NDR_ERR_SUCCESS;
25659 _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SpoolerInit *r)
25661 ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
25663 if (flags & NDR_SET_VALUES) {
25664 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25666 if (flags & NDR_IN) {
25667 ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
25671 if (flags & NDR_OUT) {
25672 ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
25674 ndr_print_WERROR(ndr, "result", r->out.result);
25680 static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinterEx *r)
25682 if (flags & NDR_IN) {
25684 if (flags & NDR_OUT) {
25685 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25687 return NDR_ERR_SUCCESS;
25690 static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinterEx *r)
25692 if (flags & NDR_IN) {
25694 if (flags & NDR_OUT) {
25695 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25697 return NDR_ERR_SUCCESS;
25700 _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinterEx *r)
25702 ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
25704 if (flags & NDR_SET_VALUES) {
25705 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25707 if (flags & NDR_IN) {
25708 ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
25712 if (flags & NDR_OUT) {
25713 ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
25715 ndr_print_WERROR(ndr, "result", r->out.result);
25721 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
25723 if (flags & NDR_IN) {
25724 if (r->in.handle == NULL) {
25725 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25727 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25728 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
25729 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
25730 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.local_machine));
25731 if (r->in.local_machine) {
25732 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
25733 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25734 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
25735 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));
25737 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
25738 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.notify_options));
25739 if (r->in.notify_options) {
25740 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
25743 if (flags & NDR_OUT) {
25744 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25746 return NDR_ERR_SUCCESS;
25749 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
25751 uint32_t _ptr_local_machine;
25752 uint32_t _ptr_notify_options;
25753 TALLOC_CTX *_mem_save_handle_0;
25754 TALLOC_CTX *_mem_save_local_machine_0;
25755 TALLOC_CTX *_mem_save_notify_options_0;
25756 if (flags & NDR_IN) {
25757 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25758 NDR_PULL_ALLOC(ndr, r->in.handle);
25760 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25761 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25762 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25763 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25764 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
25765 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
25766 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local_machine));
25767 if (_ptr_local_machine) {
25768 NDR_PULL_ALLOC(ndr, r->in.local_machine);
25770 r->in.local_machine = NULL;
25772 if (r->in.local_machine) {
25773 _mem_save_local_machine_0 = NDR_PULL_GET_MEM_CTX(ndr);
25774 NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
25775 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
25776 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
25777 if (ndr_get_array_length(ndr, &r->in.local_machine) > ndr_get_array_size(ndr, &r->in.local_machine)) {
25778 return 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));
25780 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t)));
25781 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));
25782 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
25784 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
25785 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_options));
25786 if (_ptr_notify_options) {
25787 NDR_PULL_ALLOC(ndr, r->in.notify_options);
25789 r->in.notify_options = NULL;
25791 if (r->in.notify_options) {
25792 _mem_save_notify_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
25793 NDR_PULL_SET_MEM_CTX(ndr, r->in.notify_options, 0);
25794 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
25795 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_options_0, 0);
25798 if (flags & NDR_OUT) {
25799 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25801 return NDR_ERR_SUCCESS;
25804 _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
25806 ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
25808 if (flags & NDR_SET_VALUES) {
25809 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25811 if (flags & NDR_IN) {
25812 ndr_print_struct(ndr, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
25814 ndr_print_ptr(ndr, "handle", r->in.handle);
25816 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25818 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
25819 ndr_print_uint32(ndr, "options", r->in.options);
25820 ndr_print_ptr(ndr, "local_machine", r->in.local_machine);
25822 if (r->in.local_machine) {
25823 ndr_print_string(ndr, "local_machine", r->in.local_machine);
25826 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
25827 ndr_print_ptr(ndr, "notify_options", r->in.notify_options);
25829 if (r->in.notify_options) {
25830 ndr_print_spoolss_NotifyOption(ndr, "notify_options", r->in.notify_options);
25835 if (flags & NDR_OUT) {
25836 ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
25838 ndr_print_WERROR(ndr, "result", r->out.result);
25844 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinterEx *r)
25846 if (flags & NDR_IN) {
25847 if (r->in.handle == NULL) {
25848 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25850 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25851 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.color));
25852 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
25853 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reply_type));
25854 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.reply_type));
25855 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
25857 if (flags & NDR_OUT) {
25858 if (r->out.reply_result == NULL) {
25859 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25861 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, *r->out.reply_result));
25862 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25864 return NDR_ERR_SUCCESS;
25867 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinterEx *r)
25869 TALLOC_CTX *_mem_save_handle_0;
25870 TALLOC_CTX *_mem_save_reply_result_0;
25871 if (flags & NDR_IN) {
25872 ZERO_STRUCT(r->out);
25874 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25875 NDR_PULL_ALLOC(ndr, r->in.handle);
25877 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25878 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25879 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25880 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25881 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.color));
25882 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
25883 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reply_type));
25884 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.reply_type));
25885 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
25886 NDR_PULL_ALLOC(ndr, r->out.reply_result);
25887 ZERO_STRUCTP(r->out.reply_result);
25889 if (flags & NDR_OUT) {
25890 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25891 NDR_PULL_ALLOC(ndr, r->out.reply_result);
25893 _mem_save_reply_result_0 = NDR_PULL_GET_MEM_CTX(ndr);
25894 NDR_PULL_SET_MEM_CTX(ndr, r->out.reply_result, LIBNDR_FLAG_REF_ALLOC);
25895 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, r->out.reply_result));
25896 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reply_result_0, LIBNDR_FLAG_REF_ALLOC);
25897 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25899 return NDR_ERR_SUCCESS;
25902 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinterEx *r)
25904 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinterEx");
25906 if (flags & NDR_SET_VALUES) {
25907 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25909 if (flags & NDR_IN) {
25910 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinterEx");
25912 ndr_print_ptr(ndr, "handle", r->in.handle);
25914 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25916 ndr_print_uint32(ndr, "color", r->in.color);
25917 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
25918 ndr_print_uint32(ndr, "reply_type", r->in.reply_type);
25919 ndr_print_set_switch_value(ndr, &r->in.info, r->in.reply_type);
25920 ndr_print_spoolss_ReplyPrinterInfo(ndr, "info", &r->in.info);
25923 if (flags & NDR_OUT) {
25924 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinterEx");
25926 ndr_print_ptr(ndr, "reply_result", r->out.reply_result);
25928 ndr_print_spoolss_PrinterNotifyFlags(ndr, "reply_result", *r->out.reply_result);
25930 ndr_print_WERROR(ndr, "result", r->out.result);
25936 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push *ndr, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
25938 if (flags & NDR_IN) {
25939 if (r->in.handle == NULL) {
25940 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25942 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25943 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
25944 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.options));
25945 if (r->in.options) {
25946 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
25949 if (flags & NDR_OUT) {
25950 if (r->out.info == NULL) {
25951 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25953 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
25954 if (*r->out.info) {
25955 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
25957 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25959 return NDR_ERR_SUCCESS;
25962 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull *ndr, int flags, struct spoolss_RouterRefreshPrinterChangeNotify *r)
25964 uint32_t _ptr_options;
25965 uint32_t _ptr_info;
25966 TALLOC_CTX *_mem_save_handle_0;
25967 TALLOC_CTX *_mem_save_options_0;
25968 TALLOC_CTX *_mem_save_info_0;
25969 TALLOC_CTX *_mem_save_info_1;
25970 if (flags & NDR_IN) {
25971 ZERO_STRUCT(r->out);
25973 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25974 NDR_PULL_ALLOC(ndr, r->in.handle);
25976 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25977 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25978 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25979 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25980 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
25981 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
25982 if (_ptr_options) {
25983 NDR_PULL_ALLOC(ndr, r->in.options);
25985 r->in.options = NULL;
25987 if (r->in.options) {
25988 _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
25989 NDR_PULL_SET_MEM_CTX(ndr, r->in.options, 0);
25990 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
25991 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
25993 NDR_PULL_ALLOC(ndr, r->out.info);
25994 ZERO_STRUCTP(r->out.info);
25996 if (flags & NDR_OUT) {
25997 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25998 NDR_PULL_ALLOC(ndr, r->out.info);
26000 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26001 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
26002 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
26004 NDR_PULL_ALLOC(ndr, *r->out.info);
26006 *r->out.info = NULL;
26008 if (*r->out.info) {
26009 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
26010 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
26011 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
26012 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
26014 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
26015 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26017 return NDR_ERR_SUCCESS;
26020 _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
26022 ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotify");
26024 if (flags & NDR_SET_VALUES) {
26025 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26027 if (flags & NDR_IN) {
26028 ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotify");
26030 ndr_print_ptr(ndr, "handle", r->in.handle);
26032 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26034 ndr_print_uint32(ndr, "change_low", r->in.change_low);
26035 ndr_print_ptr(ndr, "options", r->in.options);
26037 if (r->in.options) {
26038 ndr_print_spoolss_NotifyOption(ndr, "options", r->in.options);
26043 if (flags & NDR_OUT) {
26044 ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotify");
26046 ndr_print_ptr(ndr, "info", r->out.info);
26048 ndr_print_ptr(ndr, "info", *r->out.info);
26050 if (*r->out.info) {
26051 ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
26055 ndr_print_WERROR(ndr, "result", r->out.result);
26061 static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, int flags, const struct spoolss_44 *r)
26063 if (flags & NDR_IN) {
26065 if (flags & NDR_OUT) {
26066 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26068 return NDR_ERR_SUCCESS;
26071 static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, int flags, struct spoolss_44 *r)
26073 if (flags & NDR_IN) {
26075 if (flags & NDR_OUT) {
26076 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26078 return NDR_ERR_SUCCESS;
26081 _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_44 *r)
26083 ndr_print_struct(ndr, name, "spoolss_44");
26085 if (flags & NDR_SET_VALUES) {
26086 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26088 if (flags & NDR_IN) {
26089 ndr_print_struct(ndr, "in", "spoolss_44");
26093 if (flags & NDR_OUT) {
26094 ndr_print_struct(ndr, "out", "spoolss_44");
26096 ndr_print_WERROR(ndr, "result", r->out.result);
26102 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinterEx *r)
26104 if (flags & NDR_IN) {
26105 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
26106 if (r->in.printername) {
26107 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
26108 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26109 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
26110 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26112 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
26113 if (r->in.datatype) {
26114 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
26115 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26116 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
26117 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26119 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
26120 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
26121 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
26122 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.userlevel, r->in.level));
26123 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
26125 if (flags & NDR_OUT) {
26126 if (r->out.handle == NULL) {
26127 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26129 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26130 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26132 return NDR_ERR_SUCCESS;
26135 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinterEx *r)
26137 uint32_t _ptr_printername;
26138 uint32_t _ptr_datatype;
26139 TALLOC_CTX *_mem_save_printername_0;
26140 TALLOC_CTX *_mem_save_datatype_0;
26141 TALLOC_CTX *_mem_save_handle_0;
26142 if (flags & NDR_IN) {
26143 ZERO_STRUCT(r->out);
26145 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
26146 if (_ptr_printername) {
26147 NDR_PULL_ALLOC(ndr, r->in.printername);
26149 r->in.printername = NULL;
26151 if (r->in.printername) {
26152 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
26153 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
26154 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
26155 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
26156 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
26157 return 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));
26159 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
26160 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
26161 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
26163 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
26164 if (_ptr_datatype) {
26165 NDR_PULL_ALLOC(ndr, r->in.datatype);
26167 r->in.datatype = NULL;
26169 if (r->in.datatype) {
26170 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
26171 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
26172 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
26173 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
26174 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
26175 return 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));
26177 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
26178 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
26179 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
26181 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
26182 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
26183 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
26184 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.userlevel, r->in.level));
26185 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
26186 NDR_PULL_ALLOC(ndr, r->out.handle);
26187 ZERO_STRUCTP(r->out.handle);
26189 if (flags & NDR_OUT) {
26190 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26191 NDR_PULL_ALLOC(ndr, r->out.handle);
26193 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26194 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
26195 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26196 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26197 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26199 return NDR_ERR_SUCCESS;
26202 _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinterEx *r)
26204 ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
26206 if (flags & NDR_SET_VALUES) {
26207 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26209 if (flags & NDR_IN) {
26210 ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
26212 ndr_print_ptr(ndr, "printername", r->in.printername);
26214 if (r->in.printername) {
26215 ndr_print_string(ndr, "printername", r->in.printername);
26218 ndr_print_ptr(ndr, "datatype", r->in.datatype);
26220 if (r->in.datatype) {
26221 ndr_print_string(ndr, "datatype", r->in.datatype);
26224 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
26225 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
26226 ndr_print_uint32(ndr, "level", r->in.level);
26227 ndr_print_set_switch_value(ndr, &r->in.userlevel, r->in.level);
26228 ndr_print_spoolss_UserLevel(ndr, "userlevel", &r->in.userlevel);
26231 if (flags & NDR_OUT) {
26232 ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
26234 ndr_print_ptr(ndr, "handle", r->out.handle);
26236 ndr_print_policy_handle(ndr, "handle", r->out.handle);
26238 ndr_print_WERROR(ndr, "result", r->out.result);
26244 static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterEx *r)
26246 if (flags & NDR_IN) {
26247 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
26248 if (r->in.server) {
26249 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26250 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26251 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26252 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26254 if (r->in.info_ctr == NULL) {
26255 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26257 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
26258 if (r->in.devmode_ctr == NULL) {
26259 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26261 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
26262 if (r->in.secdesc_ctr == NULL) {
26263 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26265 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
26266 if (r->in.userlevel_ctr == NULL) {
26267 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26269 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
26271 if (flags & NDR_OUT) {
26272 if (r->out.handle == NULL) {
26273 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26275 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26276 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26278 return NDR_ERR_SUCCESS;
26281 static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterEx *r)
26283 uint32_t _ptr_server;
26284 TALLOC_CTX *_mem_save_server_0;
26285 TALLOC_CTX *_mem_save_info_ctr_0;
26286 TALLOC_CTX *_mem_save_devmode_ctr_0;
26287 TALLOC_CTX *_mem_save_secdesc_ctr_0;
26288 TALLOC_CTX *_mem_save_userlevel_ctr_0;
26289 TALLOC_CTX *_mem_save_handle_0;
26290 if (flags & NDR_IN) {
26291 ZERO_STRUCT(r->out);
26293 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
26295 NDR_PULL_ALLOC(ndr, r->in.server);
26297 r->in.server = NULL;
26299 if (r->in.server) {
26300 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
26301 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
26302 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
26303 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
26304 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
26305 return 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));
26307 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
26308 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
26309 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
26311 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26312 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
26314 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26315 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
26316 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
26317 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26318 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26319 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
26321 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26322 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
26323 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
26324 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26325 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26326 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
26328 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26329 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
26330 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
26331 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26332 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26333 NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
26335 _mem_save_userlevel_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26336 NDR_PULL_SET_MEM_CTX(ndr, r->in.userlevel_ctr, LIBNDR_FLAG_REF_ALLOC);
26337 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
26338 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userlevel_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26339 NDR_PULL_ALLOC(ndr, r->out.handle);
26340 ZERO_STRUCTP(r->out.handle);
26342 if (flags & NDR_OUT) {
26343 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26344 NDR_PULL_ALLOC(ndr, r->out.handle);
26346 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26347 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
26348 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26349 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26350 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26352 return NDR_ERR_SUCCESS;
26355 _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterEx *r)
26357 ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
26359 if (flags & NDR_SET_VALUES) {
26360 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26362 if (flags & NDR_IN) {
26363 ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
26365 ndr_print_ptr(ndr, "server", r->in.server);
26367 if (r->in.server) {
26368 ndr_print_string(ndr, "server", r->in.server);
26371 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
26373 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
26375 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
26377 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
26379 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
26381 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
26383 ndr_print_ptr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
26385 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
26389 if (flags & NDR_OUT) {
26390 ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
26392 ndr_print_ptr(ndr, "handle", r->out.handle);
26394 ndr_print_policy_handle(ndr, "handle", r->out.handle);
26396 ndr_print_WERROR(ndr, "result", r->out.result);
26402 static enum ndr_err_code ndr_push_spoolss_47(struct ndr_push *ndr, int flags, const struct spoolss_47 *r)
26404 if (flags & NDR_IN) {
26406 if (flags & NDR_OUT) {
26407 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26409 return NDR_ERR_SUCCESS;
26412 static enum ndr_err_code ndr_pull_spoolss_47(struct ndr_pull *ndr, int flags, struct spoolss_47 *r)
26414 if (flags & NDR_IN) {
26416 if (flags & NDR_OUT) {
26417 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26419 return NDR_ERR_SUCCESS;
26422 _PUBLIC_ void ndr_print_spoolss_47(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_47 *r)
26424 ndr_print_struct(ndr, name, "spoolss_47");
26426 if (flags & NDR_SET_VALUES) {
26427 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26429 if (flags & NDR_IN) {
26430 ndr_print_struct(ndr, "in", "spoolss_47");
26434 if (flags & NDR_OUT) {
26435 ndr_print_struct(ndr, "out", "spoolss_47");
26437 ndr_print_WERROR(ndr, "result", r->out.result);
26443 static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterData *r)
26445 if (flags & NDR_IN) {
26446 if (r->in.handle == NULL) {
26447 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26449 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26450 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
26451 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
26452 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
26454 if (flags & NDR_OUT) {
26455 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered / 2));
26456 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
26457 if (r->out.value_needed == NULL) {
26458 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26460 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
26461 if (r->out.type == NULL) {
26462 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26464 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
26466 uint32_t _flags_save_uint8 = ndr->flags;
26467 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
26468 if (r->out.data == NULL) {
26469 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26471 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
26472 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_offered));
26473 ndr->flags = _flags_save_uint8;
26475 if (r->out.data_needed == NULL) {
26476 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26478 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
26479 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26481 return NDR_ERR_SUCCESS;
26484 static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterData *r)
26486 TALLOC_CTX *_mem_save_handle_0;
26487 TALLOC_CTX *_mem_save_value_needed_0;
26488 TALLOC_CTX *_mem_save_type_0;
26489 TALLOC_CTX *_mem_save_data_needed_0;
26490 if (flags & NDR_IN) {
26491 ZERO_STRUCT(r->out);
26493 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26494 NDR_PULL_ALLOC(ndr, r->in.handle);
26496 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26497 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26498 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26499 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26500 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
26501 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
26502 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
26503 NDR_PULL_ALLOC(ndr, r->out.value_needed);
26504 ZERO_STRUCTP(r->out.value_needed);
26505 NDR_PULL_ALLOC(ndr, r->out.type);
26506 ZERO_STRUCTP(r->out.type);
26507 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_offered);
26508 memset(r->out.data, 0, (r->in.data_offered) * sizeof(*r->out.data));
26509 NDR_PULL_ALLOC(ndr, r->out.data_needed);
26510 ZERO_STRUCTP(r->out.data_needed);
26512 if (flags & NDR_OUT) {
26513 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
26514 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));
26515 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26516 NDR_PULL_ALLOC(ndr, r->out.value_needed);
26518 _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26519 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
26520 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
26521 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
26522 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26523 NDR_PULL_ALLOC(ndr, r->out.type);
26525 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
26526 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
26527 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
26528 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
26530 uint32_t _flags_save_uint8 = ndr->flags;
26531 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
26532 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
26533 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26534 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
26536 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
26537 ndr->flags = _flags_save_uint8;
26539 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26540 NDR_PULL_ALLOC(ndr, r->out.data_needed);
26542 _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26543 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
26544 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
26545 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
26546 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26547 if (r->out.value_name) {
26548 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
26551 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_offered));
26554 return NDR_ERR_SUCCESS;
26557 _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterData *r)
26559 ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
26561 if (flags & NDR_SET_VALUES) {
26562 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26564 if (flags & NDR_IN) {
26565 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
26567 ndr_print_ptr(ndr, "handle", r->in.handle);
26569 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26571 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
26572 ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
26573 ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
26576 if (flags & NDR_OUT) {
26577 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
26579 ndr_print_string(ndr, "value_name", r->out.value_name);
26580 ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
26582 ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
26584 ndr_print_ptr(ndr, "type", r->out.type);
26586 ndr_print_winreg_Type(ndr, "type", *r->out.type);
26588 ndr_print_ptr(ndr, "data", r->out.data);
26590 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_offered);
26592 ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
26594 ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
26596 ndr_print_WERROR(ndr, "result", r->out.result);
26602 static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterData *r)
26604 if (flags & NDR_IN) {
26605 if (r->in.handle == NULL) {
26606 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26608 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26609 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26610 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26611 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26612 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));
26614 if (flags & NDR_OUT) {
26615 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26617 return NDR_ERR_SUCCESS;
26620 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterData(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterData *r)
26622 TALLOC_CTX *_mem_save_handle_0;
26623 if (flags & NDR_IN) {
26624 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26625 NDR_PULL_ALLOC(ndr, r->in.handle);
26627 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26628 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26629 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26630 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26631 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
26632 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
26633 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
26634 return 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));
26636 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
26637 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));
26639 if (flags & NDR_OUT) {
26640 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26642 return NDR_ERR_SUCCESS;
26645 _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterData *r)
26647 ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
26649 if (flags & NDR_SET_VALUES) {
26650 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26652 if (flags & NDR_IN) {
26653 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
26655 ndr_print_ptr(ndr, "handle", r->in.handle);
26657 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26659 ndr_print_string(ndr, "value_name", r->in.value_name);
26662 if (flags & NDR_OUT) {
26663 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
26665 ndr_print_WERROR(ndr, "result", r->out.result);
26671 static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, int flags, const struct spoolss_4a *r)
26673 if (flags & NDR_IN) {
26675 if (flags & NDR_OUT) {
26676 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26678 return NDR_ERR_SUCCESS;
26681 static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, int flags, struct spoolss_4a *r)
26683 if (flags & NDR_IN) {
26685 if (flags & NDR_OUT) {
26686 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26688 return NDR_ERR_SUCCESS;
26691 _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4a *r)
26693 ndr_print_struct(ndr, name, "spoolss_4a");
26695 if (flags & NDR_SET_VALUES) {
26696 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26698 if (flags & NDR_IN) {
26699 ndr_print_struct(ndr, "in", "spoolss_4a");
26703 if (flags & NDR_OUT) {
26704 ndr_print_struct(ndr, "out", "spoolss_4a");
26706 ndr_print_WERROR(ndr, "result", r->out.result);
26712 static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, int flags, const struct spoolss_4b *r)
26714 if (flags & NDR_IN) {
26716 if (flags & NDR_OUT) {
26717 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26719 return NDR_ERR_SUCCESS;
26722 static enum ndr_err_code ndr_pull_spoolss_4b(struct ndr_pull *ndr, int flags, struct spoolss_4b *r)
26724 if (flags & NDR_IN) {
26726 if (flags & NDR_OUT) {
26727 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26729 return NDR_ERR_SUCCESS;
26732 _PUBLIC_ void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r)
26734 ndr_print_struct(ndr, name, "spoolss_4b");
26736 if (flags & NDR_SET_VALUES) {
26737 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26739 if (flags & NDR_IN) {
26740 ndr_print_struct(ndr, "in", "spoolss_4b");
26744 if (flags & NDR_OUT) {
26745 ndr_print_struct(ndr, "out", "spoolss_4b");
26747 ndr_print_WERROR(ndr, "result", r->out.result);
26753 static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, int flags, const struct spoolss_4c *r)
26755 if (flags & NDR_IN) {
26757 if (flags & NDR_OUT) {
26758 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26760 return NDR_ERR_SUCCESS;
26763 static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, int flags, struct spoolss_4c *r)
26765 if (flags & NDR_IN) {
26767 if (flags & NDR_OUT) {
26768 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26770 return NDR_ERR_SUCCESS;
26773 _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4c *r)
26775 ndr_print_struct(ndr, name, "spoolss_4c");
26777 if (flags & NDR_SET_VALUES) {
26778 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26780 if (flags & NDR_IN) {
26781 ndr_print_struct(ndr, "in", "spoolss_4c");
26785 if (flags & NDR_OUT) {
26786 ndr_print_struct(ndr, "out", "spoolss_4c");
26788 ndr_print_WERROR(ndr, "result", r->out.result);
26794 static enum ndr_err_code ndr_push_spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterDataEx *r)
26796 if (flags & NDR_IN) {
26797 if (r->in.handle == NULL) {
26798 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26800 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26801 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26802 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26803 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26804 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));
26805 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26806 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26807 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26808 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));
26809 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
26810 if (r->in.buffer == NULL) {
26811 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26813 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26814 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
26815 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26817 if (flags & NDR_OUT) {
26818 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26820 return NDR_ERR_SUCCESS;
26823 static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterDataEx *r)
26825 TALLOC_CTX *_mem_save_handle_0;
26826 if (flags & NDR_IN) {
26827 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26828 NDR_PULL_ALLOC(ndr, r->in.handle);
26830 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26831 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26832 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26833 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26834 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26835 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26836 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26837 return 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));
26839 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26840 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));
26841 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
26842 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
26843 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
26844 return 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));
26846 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
26847 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));
26848 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
26849 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
26850 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26851 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
26853 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
26854 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26855 if (r->in.buffer) {
26856 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
26859 if (flags & NDR_OUT) {
26860 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26862 return NDR_ERR_SUCCESS;
26865 _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterDataEx *r)
26867 ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
26869 if (flags & NDR_SET_VALUES) {
26870 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26872 if (flags & NDR_IN) {
26873 ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
26875 ndr_print_ptr(ndr, "handle", r->in.handle);
26877 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26879 ndr_print_string(ndr, "key_name", r->in.key_name);
26880 ndr_print_string(ndr, "value_name", r->in.value_name);
26881 ndr_print_winreg_Type(ndr, "type", r->in.type);
26882 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26884 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
26886 ndr_print_uint32(ndr, "offered", r->in.offered);
26889 if (flags & NDR_OUT) {
26890 ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
26892 ndr_print_WERROR(ndr, "result", r->out.result);
26898 static enum ndr_err_code ndr_push_spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDataEx *r)
26900 if (flags & NDR_IN) {
26901 if (r->in.handle == NULL) {
26902 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26904 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26905 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26906 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26907 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26908 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));
26909 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26910 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26911 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26912 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));
26913 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26915 if (flags & NDR_OUT) {
26916 if (r->out.type == NULL) {
26917 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26919 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
26920 if (r->out.buffer == NULL) {
26921 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26923 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26924 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
26925 if (r->out.needed == NULL) {
26926 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26928 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26929 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26931 return NDR_ERR_SUCCESS;
26934 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDataEx *r)
26936 TALLOC_CTX *_mem_save_handle_0;
26937 TALLOC_CTX *_mem_save_type_0;
26938 TALLOC_CTX *_mem_save_needed_0;
26939 if (flags & NDR_IN) {
26940 ZERO_STRUCT(r->out);
26942 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26943 NDR_PULL_ALLOC(ndr, r->in.handle);
26945 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26946 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26947 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26948 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26949 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26950 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26951 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26952 return 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));
26954 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26955 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));
26956 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
26957 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
26958 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
26959 return 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));
26961 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
26962 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));
26963 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26964 NDR_PULL_ALLOC(ndr, r->out.type);
26965 ZERO_STRUCTP(r->out.type);
26966 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
26967 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
26968 NDR_PULL_ALLOC(ndr, r->out.needed);
26969 ZERO_STRUCTP(r->out.needed);
26971 if (flags & NDR_OUT) {
26972 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26973 NDR_PULL_ALLOC(ndr, r->out.type);
26975 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
26976 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
26977 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
26978 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
26979 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
26980 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26981 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
26983 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
26984 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26985 NDR_PULL_ALLOC(ndr, r->out.needed);
26987 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26988 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26989 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26990 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26991 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26992 if (r->out.buffer) {
26993 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
26996 return NDR_ERR_SUCCESS;
26999 _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r)
27001 ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
27003 if (flags & NDR_SET_VALUES) {
27004 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27006 if (flags & NDR_IN) {
27007 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
27009 ndr_print_ptr(ndr, "handle", r->in.handle);
27011 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27013 ndr_print_string(ndr, "key_name", r->in.key_name);
27014 ndr_print_string(ndr, "value_name", r->in.value_name);
27015 ndr_print_uint32(ndr, "offered", r->in.offered);
27018 if (flags & NDR_OUT) {
27019 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
27021 ndr_print_ptr(ndr, "type", r->out.type);
27023 ndr_print_winreg_Type(ndr, "type", *r->out.type);
27025 ndr_print_ptr(ndr, "buffer", r->out.buffer);
27027 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
27029 ndr_print_ptr(ndr, "needed", r->out.needed);
27031 ndr_print_uint32(ndr, "needed", *r->out.needed);
27033 ndr_print_WERROR(ndr, "result", r->out.result);
27039 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDataEx *r)
27041 if (flags & NDR_IN) {
27042 if (r->in.handle == NULL) {
27043 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27045 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27046 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27047 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27048 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27049 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));
27050 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27052 if (flags & NDR_OUT) {
27053 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
27054 if (r->out.needed == NULL) {
27055 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27057 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
27058 if (r->out.count == NULL) {
27059 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27061 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
27062 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27064 return NDR_ERR_SUCCESS;
27067 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDataEx *r)
27069 TALLOC_CTX *_mem_save_handle_0;
27070 TALLOC_CTX *_mem_save_needed_0;
27071 TALLOC_CTX *_mem_save_count_0;
27072 if (flags & NDR_IN) {
27073 ZERO_STRUCT(r->out);
27075 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27076 NDR_PULL_ALLOC(ndr, r->in.handle);
27078 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27079 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27080 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27081 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27082 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27083 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27084 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27085 return 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));
27087 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27088 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));
27089 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
27090 NDR_PULL_ALLOC(ndr, r->out.needed);
27091 ZERO_STRUCTP(r->out.needed);
27092 NDR_PULL_ALLOC(ndr, r->out.count);
27093 ZERO_STRUCTP(r->out.count);
27095 if (flags & NDR_OUT) {
27096 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->out.info));
27097 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27098 NDR_PULL_ALLOC(ndr, r->out.needed);
27100 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27101 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
27102 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
27103 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
27104 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27105 NDR_PULL_ALLOC(ndr, r->out.count);
27107 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
27108 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
27109 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
27110 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
27111 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27113 return NDR_ERR_SUCCESS;
27116 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDataEx *r)
27118 uint32_t cntr_info_0;
27119 if (flags & NDR_IN) {
27120 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
27122 if (flags & NDR_OUT) {
27123 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
27124 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
27126 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
27127 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
27130 return NDR_ERR_SUCCESS;
27133 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDataEx *r)
27135 uint32_t cntr_info_0;
27136 TALLOC_CTX *_mem_save_info_0;
27137 if (flags & NDR_IN) {
27138 ZERO_STRUCT(r->out);
27140 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
27142 if (flags & NDR_OUT) {
27143 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
27144 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
27145 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
27146 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
27147 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
27149 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
27150 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
27152 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
27154 return NDR_ERR_SUCCESS;
27157 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDataEx *r)
27159 uint32_t cntr_info_2;
27160 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
27162 if (flags & NDR_SET_VALUES) {
27163 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27165 if (flags & NDR_IN) {
27166 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDataEx");
27168 ndr_print_ptr(ndr, "handle", r->in.handle);
27170 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27172 ndr_print_string(ndr, "key_name", r->in.key_name);
27173 ndr_print_uint32(ndr, "offered", r->in.offered);
27176 if (flags & NDR_OUT) {
27177 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
27179 ndr_print_ptr(ndr, "count", r->out.count);
27181 ndr_print_uint32(ndr, "count", *r->out.count);
27183 ndr_print_ptr(ndr, "info", r->out.info);
27185 ndr_print_ptr(ndr, "info", *r->out.info);
27187 if (*r->out.info) {
27188 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
27190 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
27192 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
27193 ndr_print_spoolss_PrinterEnumValues(ndr, "info", &(*r->out.info)[cntr_info_2]);
27201 ndr_print_ptr(ndr, "needed", r->out.needed);
27203 ndr_print_uint32(ndr, "needed", *r->out.needed);
27205 ndr_print_WERROR(ndr, "result", r->out.result);
27211 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterKey *r)
27213 if (flags & NDR_IN) {
27214 if (r->in.handle == NULL) {
27215 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27217 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27218 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27219 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27220 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27221 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));
27222 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27224 if (flags & NDR_OUT) {
27225 if (r->out._ndr_size == NULL) {
27226 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27228 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._ndr_size));
27229 if (r->out.key_buffer == NULL) {
27230 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27233 struct ndr_push *_ndr_key_buffer;
27234 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_key_buffer, 0, *r->out._ndr_size * 2));
27235 NDR_CHECK(ndr_push_set_switch_value(_ndr_key_buffer, r->out.key_buffer, *r->out._ndr_size));
27236 NDR_CHECK(ndr_push_spoolss_KeyNames(_ndr_key_buffer, NDR_SCALARS|NDR_BUFFERS, r->out.key_buffer));
27237 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_key_buffer, 0, *r->out._ndr_size * 2));
27239 if (r->out.needed == NULL) {
27240 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27242 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
27243 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27245 return NDR_ERR_SUCCESS;
27248 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterKey *r)
27250 TALLOC_CTX *_mem_save_handle_0;
27251 TALLOC_CTX *_mem_save__ndr_size_0;
27252 TALLOC_CTX *_mem_save_key_buffer_0;
27253 TALLOC_CTX *_mem_save_needed_0;
27254 if (flags & NDR_IN) {
27255 ZERO_STRUCT(r->out);
27257 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27258 NDR_PULL_ALLOC(ndr, r->in.handle);
27260 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27261 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27262 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27263 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27264 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27265 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27266 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27267 return 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));
27269 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27270 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));
27271 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
27272 NDR_PULL_ALLOC(ndr, r->out._ndr_size);
27273 ZERO_STRUCTP(r->out._ndr_size);
27274 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
27275 ZERO_STRUCTP(r->out.key_buffer);
27276 NDR_PULL_ALLOC(ndr, r->out.needed);
27277 ZERO_STRUCTP(r->out.needed);
27279 if (flags & NDR_OUT) {
27280 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27281 NDR_PULL_ALLOC(ndr, r->out._ndr_size);
27283 _mem_save__ndr_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
27284 NDR_PULL_SET_MEM_CTX(ndr, r->out._ndr_size, LIBNDR_FLAG_REF_ALLOC);
27285 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._ndr_size));
27286 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__ndr_size_0, LIBNDR_FLAG_REF_ALLOC);
27287 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27288 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
27290 _mem_save_key_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
27291 NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, LIBNDR_FLAG_REF_ALLOC);
27293 struct ndr_pull *_ndr_key_buffer;
27294 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_key_buffer, 0, *r->out._ndr_size * 2));
27295 NDR_CHECK(ndr_pull_set_switch_value(_ndr_key_buffer, r->out.key_buffer, *r->out._ndr_size));
27296 NDR_CHECK(ndr_pull_spoolss_KeyNames(_ndr_key_buffer, NDR_SCALARS|NDR_BUFFERS, r->out.key_buffer));
27297 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_key_buffer, 0, *r->out._ndr_size * 2));
27299 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_0, LIBNDR_FLAG_REF_ALLOC);
27300 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27301 NDR_PULL_ALLOC(ndr, r->out.needed);
27303 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27304 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
27305 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
27306 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
27307 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27309 return NDR_ERR_SUCCESS;
27312 _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterKey *r)
27314 ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
27316 if (flags & NDR_SET_VALUES) {
27317 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27319 if (flags & NDR_IN) {
27320 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterKey");
27322 ndr_print_ptr(ndr, "handle", r->in.handle);
27324 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27326 ndr_print_string(ndr, "key_name", r->in.key_name);
27327 ndr_print_uint32(ndr, "offered", r->in.offered);
27330 if (flags & NDR_OUT) {
27331 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
27333 ndr_print_ptr(ndr, "_ndr_size", r->out._ndr_size);
27335 ndr_print_uint32(ndr, "_ndr_size", *r->out._ndr_size);
27337 ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
27339 ndr_print_set_switch_value(ndr, r->out.key_buffer, *r->out._ndr_size);
27340 ndr_print_spoolss_KeyNames(ndr, "key_buffer", r->out.key_buffer);
27342 ndr_print_ptr(ndr, "needed", r->out.needed);
27344 ndr_print_uint32(ndr, "needed", *r->out.needed);
27346 ndr_print_WERROR(ndr, "result", r->out.result);
27352 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDataEx *r)
27354 if (flags & NDR_IN) {
27355 if (r->in.handle == NULL) {
27356 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27358 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27359 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27360 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27361 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27362 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));
27363 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27364 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27365 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27366 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));
27368 if (flags & NDR_OUT) {
27369 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27371 return NDR_ERR_SUCCESS;
27374 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDataEx *r)
27376 TALLOC_CTX *_mem_save_handle_0;
27377 if (flags & NDR_IN) {
27378 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27379 NDR_PULL_ALLOC(ndr, r->in.handle);
27381 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27382 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27383 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27384 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27385 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27386 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27387 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27388 return 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));
27390 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27391 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));
27392 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
27393 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27394 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
27395 return 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));
27397 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
27398 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));
27400 if (flags & NDR_OUT) {
27401 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27403 return NDR_ERR_SUCCESS;
27406 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDataEx *r)
27408 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
27410 if (flags & NDR_SET_VALUES) {
27411 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27413 if (flags & NDR_IN) {
27414 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDataEx");
27416 ndr_print_ptr(ndr, "handle", r->in.handle);
27418 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27420 ndr_print_string(ndr, "key_name", r->in.key_name);
27421 ndr_print_string(ndr, "value_name", r->in.value_name);
27424 if (flags & NDR_OUT) {
27425 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
27427 ndr_print_WERROR(ndr, "result", r->out.result);
27433 static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterKey *r)
27435 if (flags & NDR_IN) {
27436 if (r->in.handle == NULL) {
27437 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27439 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27440 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27441 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27442 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
27443 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));
27445 if (flags & NDR_OUT) {
27446 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27448 return NDR_ERR_SUCCESS;
27451 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterKey *r)
27453 TALLOC_CTX *_mem_save_handle_0;
27454 if (flags & NDR_IN) {
27455 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27456 NDR_PULL_ALLOC(ndr, r->in.handle);
27458 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27459 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27460 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27461 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27462 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
27463 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
27464 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
27465 return 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));
27467 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
27468 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));
27470 if (flags & NDR_OUT) {
27471 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27473 return NDR_ERR_SUCCESS;
27476 _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterKey *r)
27478 ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
27480 if (flags & NDR_SET_VALUES) {
27481 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27483 if (flags & NDR_IN) {
27484 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
27486 ndr_print_ptr(ndr, "handle", r->in.handle);
27488 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27490 ndr_print_string(ndr, "key_name", r->in.key_name);
27493 if (flags & NDR_OUT) {
27494 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
27496 ndr_print_WERROR(ndr, "result", r->out.result);
27502 static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, int flags, const struct spoolss_53 *r)
27504 if (flags & NDR_IN) {
27506 if (flags & NDR_OUT) {
27507 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27509 return NDR_ERR_SUCCESS;
27512 static enum ndr_err_code ndr_pull_spoolss_53(struct ndr_pull *ndr, int flags, struct spoolss_53 *r)
27514 if (flags & NDR_IN) {
27516 if (flags & NDR_OUT) {
27517 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27519 return NDR_ERR_SUCCESS;
27522 _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_53 *r)
27524 ndr_print_struct(ndr, name, "spoolss_53");
27526 if (flags & NDR_SET_VALUES) {
27527 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27529 if (flags & NDR_IN) {
27530 ndr_print_struct(ndr, "in", "spoolss_53");
27534 if (flags & NDR_OUT) {
27535 ndr_print_struct(ndr, "out", "spoolss_53");
27537 ndr_print_WERROR(ndr, "result", r->out.result);
27543 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriverEx *r)
27545 if (flags & NDR_IN) {
27546 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
27547 if (r->in.server) {
27548 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27549 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27550 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27551 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27553 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
27554 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27555 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
27556 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27557 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
27558 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27559 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
27560 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27561 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
27562 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
27564 if (flags & NDR_OUT) {
27565 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27567 return NDR_ERR_SUCCESS;
27570 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriverEx *r)
27572 uint32_t _ptr_server;
27573 TALLOC_CTX *_mem_save_server_0;
27574 if (flags & NDR_IN) {
27575 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
27577 NDR_PULL_ALLOC(ndr, r->in.server);
27579 r->in.server = NULL;
27581 if (r->in.server) {
27582 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
27583 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
27584 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
27585 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
27586 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
27587 return 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));
27589 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
27590 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
27591 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
27593 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
27594 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
27595 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
27596 return 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));
27598 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
27599 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
27600 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
27601 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
27602 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
27603 return 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));
27605 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
27606 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
27607 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
27608 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
27610 if (flags & NDR_OUT) {
27611 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27613 return NDR_ERR_SUCCESS;
27616 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriverEx *r)
27618 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
27620 if (flags & NDR_SET_VALUES) {
27621 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27623 if (flags & NDR_IN) {
27624 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
27626 ndr_print_ptr(ndr, "server", r->in.server);
27628 if (r->in.server) {
27629 ndr_print_string(ndr, "server", r->in.server);
27632 ndr_print_string(ndr, "architecture", r->in.architecture);
27633 ndr_print_string(ndr, "driver", r->in.driver);
27634 ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
27635 ndr_print_uint32(ndr, "version", r->in.version);
27638 if (flags & NDR_OUT) {
27639 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
27641 ndr_print_WERROR(ndr, "result", r->out.result);
27647 static enum ndr_err_code ndr_push_spoolss_55(struct ndr_push *ndr, int flags, const struct spoolss_55 *r)
27649 if (flags & NDR_IN) {
27651 if (flags & NDR_OUT) {
27652 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27654 return NDR_ERR_SUCCESS;
27657 static enum ndr_err_code ndr_pull_spoolss_55(struct ndr_pull *ndr, int flags, struct spoolss_55 *r)
27659 if (flags & NDR_IN) {
27661 if (flags & NDR_OUT) {
27662 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27664 return NDR_ERR_SUCCESS;
27667 _PUBLIC_ void ndr_print_spoolss_55(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_55 *r)
27669 ndr_print_struct(ndr, name, "spoolss_55");
27671 if (flags & NDR_SET_VALUES) {
27672 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27674 if (flags & NDR_IN) {
27675 ndr_print_struct(ndr, "in", "spoolss_55");
27679 if (flags & NDR_OUT) {
27680 ndr_print_struct(ndr, "out", "spoolss_55");
27682 ndr_print_WERROR(ndr, "result", r->out.result);
27688 static enum ndr_err_code ndr_push_spoolss_56(struct ndr_push *ndr, int flags, const struct spoolss_56 *r)
27690 if (flags & NDR_IN) {
27692 if (flags & NDR_OUT) {
27693 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27695 return NDR_ERR_SUCCESS;
27698 static enum ndr_err_code ndr_pull_spoolss_56(struct ndr_pull *ndr, int flags, struct spoolss_56 *r)
27700 if (flags & NDR_IN) {
27702 if (flags & NDR_OUT) {
27703 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27705 return NDR_ERR_SUCCESS;
27708 _PUBLIC_ void ndr_print_spoolss_56(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_56 *r)
27710 ndr_print_struct(ndr, name, "spoolss_56");
27712 if (flags & NDR_SET_VALUES) {
27713 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27715 if (flags & NDR_IN) {
27716 ndr_print_struct(ndr, "in", "spoolss_56");
27720 if (flags & NDR_OUT) {
27721 ndr_print_struct(ndr, "out", "spoolss_56");
27723 ndr_print_WERROR(ndr, "result", r->out.result);
27729 static enum ndr_err_code ndr_push_spoolss_57(struct ndr_push *ndr, int flags, const struct spoolss_57 *r)
27731 if (flags & NDR_IN) {
27733 if (flags & NDR_OUT) {
27734 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27736 return NDR_ERR_SUCCESS;
27739 static enum ndr_err_code ndr_pull_spoolss_57(struct ndr_pull *ndr, int flags, struct spoolss_57 *r)
27741 if (flags & NDR_IN) {
27743 if (flags & NDR_OUT) {
27744 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27746 return NDR_ERR_SUCCESS;
27749 _PUBLIC_ void ndr_print_spoolss_57(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_57 *r)
27751 ndr_print_struct(ndr, name, "spoolss_57");
27753 if (flags & NDR_SET_VALUES) {
27754 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27756 if (flags & NDR_IN) {
27757 ndr_print_struct(ndr, "in", "spoolss_57");
27761 if (flags & NDR_OUT) {
27762 ndr_print_struct(ndr, "out", "spoolss_57");
27764 ndr_print_WERROR(ndr, "result", r->out.result);
27770 static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, int flags, const struct spoolss_XcvData *r)
27772 if (flags & NDR_IN) {
27773 if (r->in.handle == NULL) {
27774 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27776 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27777 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
27778 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27779 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
27780 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));
27781 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
27782 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
27783 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
27784 if (r->in.status_code == NULL) {
27785 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27787 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
27789 if (flags & NDR_OUT) {
27790 if (r->out.out_data == NULL) {
27791 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27793 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
27794 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
27795 if (r->out.needed == NULL) {
27796 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27798 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
27799 if (r->out.status_code == NULL) {
27800 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27802 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
27803 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27805 return NDR_ERR_SUCCESS;
27808 static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flags, struct spoolss_XcvData *r)
27810 TALLOC_CTX *_mem_save_handle_0;
27811 TALLOC_CTX *_mem_save_needed_0;
27812 TALLOC_CTX *_mem_save_status_code_0;
27813 if (flags & NDR_IN) {
27814 ZERO_STRUCT(r->out);
27816 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27817 NDR_PULL_ALLOC(ndr, r->in.handle);
27819 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27820 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27821 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27822 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27823 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
27824 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
27825 if (ndr_get_array_length(ndr, &r->in.function_name) > ndr_get_array_size(ndr, &r->in.function_name)) {
27826 return 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));
27828 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t)));
27829 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));
27830 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
27831 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
27832 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
27833 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27834 NDR_PULL_ALLOC(ndr, r->in.status_code);
27836 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
27837 NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
27838 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
27839 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
27840 NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
27841 memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
27842 NDR_PULL_ALLOC(ndr, r->out.needed);
27843 ZERO_STRUCTP(r->out.needed);
27844 NDR_PULL_ALLOC(ndr, r->out.status_code);
27845 *r->out.status_code = *r->in.status_code;
27847 if (flags & NDR_OUT) {
27848 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
27849 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27850 NDR_PULL_ALLOC_N(ndr, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data));
27852 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data)));
27853 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27854 NDR_PULL_ALLOC(ndr, r->out.needed);
27856 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27857 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
27858 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
27859 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
27860 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27861 NDR_PULL_ALLOC(ndr, r->out.status_code);
27863 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
27864 NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
27865 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
27866 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
27867 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27868 if (r->out.out_data) {
27869 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
27872 return NDR_ERR_SUCCESS;
27875 _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_XcvData *r)
27877 ndr_print_struct(ndr, name, "spoolss_XcvData");
27879 if (flags & NDR_SET_VALUES) {
27880 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27882 if (flags & NDR_IN) {
27883 ndr_print_struct(ndr, "in", "spoolss_XcvData");
27885 ndr_print_ptr(ndr, "handle", r->in.handle);
27887 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27889 ndr_print_string(ndr, "function_name", r->in.function_name);
27890 ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
27891 ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
27892 ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
27893 ndr_print_ptr(ndr, "status_code", r->in.status_code);
27895 ndr_print_uint32(ndr, "status_code", *r->in.status_code);
27899 if (flags & NDR_OUT) {
27900 ndr_print_struct(ndr, "out", "spoolss_XcvData");
27902 ndr_print_ptr(ndr, "out_data", r->out.out_data);
27904 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
27906 ndr_print_ptr(ndr, "needed", r->out.needed);
27908 ndr_print_uint32(ndr, "needed", *r->out.needed);
27910 ndr_print_ptr(ndr, "status_code", r->out.status_code);
27912 ndr_print_uint32(ndr, "status_code", *r->out.status_code);
27914 ndr_print_WERROR(ndr, "result", r->out.result);
27920 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriverEx *r)
27922 if (flags & NDR_IN) {
27923 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
27924 if (r->in.servername) {
27925 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
27926 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
27927 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
27928 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27930 if (r->in.info_ctr == NULL) {
27931 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27933 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27934 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
27936 if (flags & NDR_OUT) {
27937 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27939 return NDR_ERR_SUCCESS;
27942 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriverEx *r)
27944 uint32_t _ptr_servername;
27945 TALLOC_CTX *_mem_save_servername_0;
27946 TALLOC_CTX *_mem_save_info_ctr_0;
27947 if (flags & NDR_IN) {
27948 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
27949 if (_ptr_servername) {
27950 NDR_PULL_ALLOC(ndr, r->in.servername);
27952 r->in.servername = NULL;
27954 if (r->in.servername) {
27955 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
27956 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
27957 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
27958 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
27959 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
27960 return 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));
27962 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
27963 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
27964 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
27966 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27967 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
27969 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27970 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
27971 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27972 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27973 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
27975 if (flags & NDR_OUT) {
27976 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27978 return NDR_ERR_SUCCESS;
27981 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriverEx *r)
27983 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
27985 if (flags & NDR_SET_VALUES) {
27986 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27988 if (flags & NDR_IN) {
27989 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
27991 ndr_print_ptr(ndr, "servername", r->in.servername);
27993 if (r->in.servername) {
27994 ndr_print_string(ndr, "servername", r->in.servername);
27997 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
27999 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
28001 ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
28004 if (flags & NDR_OUT) {
28005 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
28007 ndr_print_WERROR(ndr, "result", r->out.result);
28013 static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, int flags, const struct spoolss_5a *r)
28015 if (flags & NDR_IN) {
28017 if (flags & NDR_OUT) {
28018 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28020 return NDR_ERR_SUCCESS;
28023 static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, int flags, struct spoolss_5a *r)
28025 if (flags & NDR_IN) {
28027 if (flags & NDR_OUT) {
28028 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28030 return NDR_ERR_SUCCESS;
28033 _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5a *r)
28035 ndr_print_struct(ndr, name, "spoolss_5a");
28037 if (flags & NDR_SET_VALUES) {
28038 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28040 if (flags & NDR_IN) {
28041 ndr_print_struct(ndr, "in", "spoolss_5a");
28045 if (flags & NDR_OUT) {
28046 ndr_print_struct(ndr, "out", "spoolss_5a");
28048 ndr_print_WERROR(ndr, "result", r->out.result);
28054 static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, int flags, const struct spoolss_5b *r)
28056 if (flags & NDR_IN) {
28058 if (flags & NDR_OUT) {
28059 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28061 return NDR_ERR_SUCCESS;
28064 static enum ndr_err_code ndr_pull_spoolss_5b(struct ndr_pull *ndr, int flags, struct spoolss_5b *r)
28066 if (flags & NDR_IN) {
28068 if (flags & NDR_OUT) {
28069 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28071 return NDR_ERR_SUCCESS;
28074 _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5b *r)
28076 ndr_print_struct(ndr, name, "spoolss_5b");
28078 if (flags & NDR_SET_VALUES) {
28079 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28081 if (flags & NDR_IN) {
28082 ndr_print_struct(ndr, "in", "spoolss_5b");
28086 if (flags & NDR_OUT) {
28087 ndr_print_struct(ndr, "out", "spoolss_5b");
28089 ndr_print_WERROR(ndr, "result", r->out.result);
28095 static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, int flags, const struct spoolss_5c *r)
28097 if (flags & NDR_IN) {
28099 if (flags & NDR_OUT) {
28100 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28102 return NDR_ERR_SUCCESS;
28105 static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, int flags, struct spoolss_5c *r)
28107 if (flags & NDR_IN) {
28109 if (flags & NDR_OUT) {
28110 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28112 return NDR_ERR_SUCCESS;
28115 _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5c *r)
28117 ndr_print_struct(ndr, name, "spoolss_5c");
28119 if (flags & NDR_SET_VALUES) {
28120 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28122 if (flags & NDR_IN) {
28123 ndr_print_struct(ndr, "in", "spoolss_5c");
28127 if (flags & NDR_OUT) {
28128 ndr_print_struct(ndr, "out", "spoolss_5c");
28130 ndr_print_WERROR(ndr, "result", r->out.result);
28136 static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, int flags, const struct spoolss_5d *r)
28138 if (flags & NDR_IN) {
28140 if (flags & NDR_OUT) {
28141 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28143 return NDR_ERR_SUCCESS;
28146 static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, int flags, struct spoolss_5d *r)
28148 if (flags & NDR_IN) {
28150 if (flags & NDR_OUT) {
28151 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28153 return NDR_ERR_SUCCESS;
28156 _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5d *r)
28158 ndr_print_struct(ndr, name, "spoolss_5d");
28160 if (flags & NDR_SET_VALUES) {
28161 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28163 if (flags & NDR_IN) {
28164 ndr_print_struct(ndr, "in", "spoolss_5d");
28168 if (flags & NDR_OUT) {
28169 ndr_print_struct(ndr, "out", "spoolss_5d");
28171 ndr_print_WERROR(ndr, "result", r->out.result);
28177 static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, int flags, const struct spoolss_5e *r)
28179 if (flags & NDR_IN) {
28181 if (flags & NDR_OUT) {
28182 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28184 return NDR_ERR_SUCCESS;
28187 static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, int flags, struct spoolss_5e *r)
28189 if (flags & NDR_IN) {
28191 if (flags & NDR_OUT) {
28192 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28194 return NDR_ERR_SUCCESS;
28197 _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5e *r)
28199 ndr_print_struct(ndr, name, "spoolss_5e");
28201 if (flags & NDR_SET_VALUES) {
28202 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28204 if (flags & NDR_IN) {
28205 ndr_print_struct(ndr, "in", "spoolss_5e");
28209 if (flags & NDR_OUT) {
28210 ndr_print_struct(ndr, "out", "spoolss_5e");
28212 ndr_print_WERROR(ndr, "result", r->out.result);
28218 static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, int flags, const struct spoolss_5f *r)
28220 if (flags & NDR_IN) {
28222 if (flags & NDR_OUT) {
28223 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28225 return NDR_ERR_SUCCESS;
28228 static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, int flags, struct spoolss_5f *r)
28230 if (flags & NDR_IN) {
28232 if (flags & NDR_OUT) {
28233 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28235 return NDR_ERR_SUCCESS;
28238 _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5f *r)
28240 ndr_print_struct(ndr, name, "spoolss_5f");
28242 if (flags & NDR_SET_VALUES) {
28243 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28245 if (flags & NDR_IN) {
28246 ndr_print_struct(ndr, "in", "spoolss_5f");
28250 if (flags & NDR_OUT) {
28251 ndr_print_struct(ndr, "out", "spoolss_5f");
28253 ndr_print_WERROR(ndr, "result", r->out.result);
28259 static const struct ndr_interface_call spoolss_calls[] = {
28261 "spoolss_EnumPrinters",
28262 sizeof(struct spoolss_EnumPrinters),
28263 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
28264 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
28265 (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
28269 "spoolss_OpenPrinter",
28270 sizeof(struct spoolss_OpenPrinter),
28271 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
28272 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
28273 (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
28278 sizeof(struct spoolss_SetJob),
28279 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
28280 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
28281 (ndr_print_function_t) ndr_print_spoolss_SetJob,
28286 sizeof(struct spoolss_GetJob),
28287 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
28288 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
28289 (ndr_print_function_t) ndr_print_spoolss_GetJob,
28293 "spoolss_EnumJobs",
28294 sizeof(struct spoolss_EnumJobs),
28295 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
28296 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
28297 (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
28301 "spoolss_AddPrinter",
28302 sizeof(struct spoolss_AddPrinter),
28303 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
28304 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
28305 (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
28309 "spoolss_DeletePrinter",
28310 sizeof(struct spoolss_DeletePrinter),
28311 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
28312 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
28313 (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
28317 "spoolss_SetPrinter",
28318 sizeof(struct spoolss_SetPrinter),
28319 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
28320 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
28321 (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
28325 "spoolss_GetPrinter",
28326 sizeof(struct spoolss_GetPrinter),
28327 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
28328 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
28329 (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
28333 "spoolss_AddPrinterDriver",
28334 sizeof(struct spoolss_AddPrinterDriver),
28335 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
28336 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
28337 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
28341 "spoolss_EnumPrinterDrivers",
28342 sizeof(struct spoolss_EnumPrinterDrivers),
28343 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
28344 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
28345 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
28349 "spoolss_GetPrinterDriver",
28350 sizeof(struct spoolss_GetPrinterDriver),
28351 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
28352 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
28353 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
28357 "spoolss_GetPrinterDriverDirectory",
28358 sizeof(struct spoolss_GetPrinterDriverDirectory),
28359 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
28360 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
28361 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
28365 "spoolss_DeletePrinterDriver",
28366 sizeof(struct spoolss_DeletePrinterDriver),
28367 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
28368 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
28369 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
28373 "spoolss_AddPrintProcessor",
28374 sizeof(struct spoolss_AddPrintProcessor),
28375 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
28376 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
28377 (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
28381 "spoolss_EnumPrintProcessors",
28382 sizeof(struct spoolss_EnumPrintProcessors),
28383 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
28384 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
28385 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
28389 "spoolss_GetPrintProcessorDirectory",
28390 sizeof(struct spoolss_GetPrintProcessorDirectory),
28391 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
28392 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
28393 (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
28397 "spoolss_StartDocPrinter",
28398 sizeof(struct spoolss_StartDocPrinter),
28399 (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
28400 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
28401 (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
28405 "spoolss_StartPagePrinter",
28406 sizeof(struct spoolss_StartPagePrinter),
28407 (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
28408 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
28409 (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
28413 "spoolss_WritePrinter",
28414 sizeof(struct spoolss_WritePrinter),
28415 (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
28416 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
28417 (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
28421 "spoolss_EndPagePrinter",
28422 sizeof(struct spoolss_EndPagePrinter),
28423 (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
28424 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
28425 (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
28429 "spoolss_AbortPrinter",
28430 sizeof(struct spoolss_AbortPrinter),
28431 (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
28432 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
28433 (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
28437 "spoolss_ReadPrinter",
28438 sizeof(struct spoolss_ReadPrinter),
28439 (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
28440 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
28441 (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
28445 "spoolss_EndDocPrinter",
28446 sizeof(struct spoolss_EndDocPrinter),
28447 (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
28448 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
28449 (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
28454 sizeof(struct spoolss_AddJob),
28455 (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
28456 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
28457 (ndr_print_function_t) ndr_print_spoolss_AddJob,
28461 "spoolss_ScheduleJob",
28462 sizeof(struct spoolss_ScheduleJob),
28463 (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
28464 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
28465 (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
28469 "spoolss_GetPrinterData",
28470 sizeof(struct spoolss_GetPrinterData),
28471 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
28472 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
28473 (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
28477 "spoolss_SetPrinterData",
28478 sizeof(struct spoolss_SetPrinterData),
28479 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
28480 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
28481 (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
28485 "spoolss_WaitForPrinterChange",
28486 sizeof(struct spoolss_WaitForPrinterChange),
28487 (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
28488 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
28489 (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
28493 "spoolss_ClosePrinter",
28494 sizeof(struct spoolss_ClosePrinter),
28495 (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
28496 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
28497 (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
28502 sizeof(struct spoolss_AddForm),
28503 (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
28504 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
28505 (ndr_print_function_t) ndr_print_spoolss_AddForm,
28509 "spoolss_DeleteForm",
28510 sizeof(struct spoolss_DeleteForm),
28511 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
28512 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
28513 (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
28518 sizeof(struct spoolss_GetForm),
28519 (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
28520 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
28521 (ndr_print_function_t) ndr_print_spoolss_GetForm,
28526 sizeof(struct spoolss_SetForm),
28527 (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
28528 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
28529 (ndr_print_function_t) ndr_print_spoolss_SetForm,
28533 "spoolss_EnumForms",
28534 sizeof(struct spoolss_EnumForms),
28535 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
28536 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
28537 (ndr_print_function_t) ndr_print_spoolss_EnumForms,
28541 "spoolss_EnumPorts",
28542 sizeof(struct spoolss_EnumPorts),
28543 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
28544 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
28545 (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
28549 "spoolss_EnumMonitors",
28550 sizeof(struct spoolss_EnumMonitors),
28551 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
28552 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
28553 (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
28558 sizeof(struct spoolss_AddPort),
28559 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
28560 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
28561 (ndr_print_function_t) ndr_print_spoolss_AddPort,
28565 "spoolss_ConfigurePort",
28566 sizeof(struct spoolss_ConfigurePort),
28567 (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
28568 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
28569 (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
28573 "spoolss_DeletePort",
28574 sizeof(struct spoolss_DeletePort),
28575 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
28576 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
28577 (ndr_print_function_t) ndr_print_spoolss_DeletePort,
28581 "spoolss_CreatePrinterIC",
28582 sizeof(struct spoolss_CreatePrinterIC),
28583 (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
28584 (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
28585 (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
28589 "spoolss_PlayGDIScriptOnPrinterIC",
28590 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
28591 (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
28592 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
28593 (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
28597 "spoolss_DeletePrinterIC",
28598 sizeof(struct spoolss_DeletePrinterIC),
28599 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
28600 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
28601 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
28605 "spoolss_AddPrinterConnection",
28606 sizeof(struct spoolss_AddPrinterConnection),
28607 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
28608 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
28609 (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
28613 "spoolss_DeletePrinterConnection",
28614 sizeof(struct spoolss_DeletePrinterConnection),
28615 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
28616 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
28617 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
28621 "spoolss_PrinterMessageBox",
28622 sizeof(struct spoolss_PrinterMessageBox),
28623 (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
28624 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
28625 (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
28629 "spoolss_AddMonitor",
28630 sizeof(struct spoolss_AddMonitor),
28631 (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
28632 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
28633 (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
28637 "spoolss_DeleteMonitor",
28638 sizeof(struct spoolss_DeleteMonitor),
28639 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
28640 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
28641 (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
28645 "spoolss_DeletePrintProcessor",
28646 sizeof(struct spoolss_DeletePrintProcessor),
28647 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
28648 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
28649 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
28653 "spoolss_AddPrintProvidor",
28654 sizeof(struct spoolss_AddPrintProvidor),
28655 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
28656 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
28657 (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
28661 "spoolss_DeletePrintProvidor",
28662 sizeof(struct spoolss_DeletePrintProvidor),
28663 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
28664 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
28665 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
28669 "spoolss_EnumPrintProcDataTypes",
28670 sizeof(struct spoolss_EnumPrintProcDataTypes),
28671 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcDataTypes,
28672 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcDataTypes,
28673 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcDataTypes,
28677 "spoolss_ResetPrinter",
28678 sizeof(struct spoolss_ResetPrinter),
28679 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
28680 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
28681 (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
28685 "spoolss_GetPrinterDriver2",
28686 sizeof(struct spoolss_GetPrinterDriver2),
28687 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
28688 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
28689 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
28693 "spoolss_FindFirstPrinterChangeNotification",
28694 sizeof(struct spoolss_FindFirstPrinterChangeNotification),
28695 (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
28696 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
28697 (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
28701 "spoolss_FindNextPrinterChangeNotification",
28702 sizeof(struct spoolss_FindNextPrinterChangeNotification),
28703 (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
28704 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
28705 (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
28709 "spoolss_FindClosePrinterNotify",
28710 sizeof(struct spoolss_FindClosePrinterNotify),
28711 (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
28712 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
28713 (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
28717 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
28718 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
28719 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
28720 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
28721 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
28725 "spoolss_ReplyOpenPrinter",
28726 sizeof(struct spoolss_ReplyOpenPrinter),
28727 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
28728 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
28729 (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
28733 "spoolss_RouterReplyPrinter",
28734 sizeof(struct spoolss_RouterReplyPrinter),
28735 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
28736 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
28737 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
28741 "spoolss_ReplyClosePrinter",
28742 sizeof(struct spoolss_ReplyClosePrinter),
28743 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
28744 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
28745 (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
28749 "spoolss_AddPortEx",
28750 sizeof(struct spoolss_AddPortEx),
28751 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
28752 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
28753 (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
28757 "spoolss_RouterFindFirstPrinterChangeNotification",
28758 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
28759 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
28760 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
28761 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
28765 "spoolss_SpoolerInit",
28766 sizeof(struct spoolss_SpoolerInit),
28767 (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
28768 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
28769 (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
28773 "spoolss_ResetPrinterEx",
28774 sizeof(struct spoolss_ResetPrinterEx),
28775 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
28776 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
28777 (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
28781 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
28782 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
28783 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
28784 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
28785 (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
28789 "spoolss_RouterReplyPrinterEx",
28790 sizeof(struct spoolss_RouterReplyPrinterEx),
28791 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinterEx,
28792 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinterEx,
28793 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinterEx,
28797 "spoolss_RouterRefreshPrinterChangeNotify",
28798 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify),
28799 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotify,
28800 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify,
28801 (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotify,
28806 sizeof(struct spoolss_44),
28807 (ndr_push_flags_fn_t) ndr_push_spoolss_44,
28808 (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
28809 (ndr_print_function_t) ndr_print_spoolss_44,
28813 "spoolss_OpenPrinterEx",
28814 sizeof(struct spoolss_OpenPrinterEx),
28815 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
28816 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
28817 (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
28821 "spoolss_AddPrinterEx",
28822 sizeof(struct spoolss_AddPrinterEx),
28823 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
28824 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
28825 (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
28830 sizeof(struct spoolss_47),
28831 (ndr_push_flags_fn_t) ndr_push_spoolss_47,
28832 (ndr_pull_flags_fn_t) ndr_pull_spoolss_47,
28833 (ndr_print_function_t) ndr_print_spoolss_47,
28837 "spoolss_EnumPrinterData",
28838 sizeof(struct spoolss_EnumPrinterData),
28839 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
28840 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
28841 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
28845 "spoolss_DeletePrinterData",
28846 sizeof(struct spoolss_DeletePrinterData),
28847 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
28848 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
28849 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
28854 sizeof(struct spoolss_4a),
28855 (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
28856 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
28857 (ndr_print_function_t) ndr_print_spoolss_4a,
28862 sizeof(struct spoolss_4b),
28863 (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
28864 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
28865 (ndr_print_function_t) ndr_print_spoolss_4b,
28870 sizeof(struct spoolss_4c),
28871 (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
28872 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
28873 (ndr_print_function_t) ndr_print_spoolss_4c,
28877 "spoolss_SetPrinterDataEx",
28878 sizeof(struct spoolss_SetPrinterDataEx),
28879 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
28880 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
28881 (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
28885 "spoolss_GetPrinterDataEx",
28886 sizeof(struct spoolss_GetPrinterDataEx),
28887 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
28888 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
28889 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
28893 "spoolss_EnumPrinterDataEx",
28894 sizeof(struct spoolss_EnumPrinterDataEx),
28895 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
28896 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
28897 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
28901 "spoolss_EnumPrinterKey",
28902 sizeof(struct spoolss_EnumPrinterKey),
28903 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
28904 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
28905 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
28909 "spoolss_DeletePrinterDataEx",
28910 sizeof(struct spoolss_DeletePrinterDataEx),
28911 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
28912 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
28913 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
28917 "spoolss_DeletePrinterKey",
28918 sizeof(struct spoolss_DeletePrinterKey),
28919 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
28920 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
28921 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
28926 sizeof(struct spoolss_53),
28927 (ndr_push_flags_fn_t) ndr_push_spoolss_53,
28928 (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
28929 (ndr_print_function_t) ndr_print_spoolss_53,
28933 "spoolss_DeletePrinterDriverEx",
28934 sizeof(struct spoolss_DeletePrinterDriverEx),
28935 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
28936 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
28937 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
28942 sizeof(struct spoolss_55),
28943 (ndr_push_flags_fn_t) ndr_push_spoolss_55,
28944 (ndr_pull_flags_fn_t) ndr_pull_spoolss_55,
28945 (ndr_print_function_t) ndr_print_spoolss_55,
28950 sizeof(struct spoolss_56),
28951 (ndr_push_flags_fn_t) ndr_push_spoolss_56,
28952 (ndr_pull_flags_fn_t) ndr_pull_spoolss_56,
28953 (ndr_print_function_t) ndr_print_spoolss_56,
28958 sizeof(struct spoolss_57),
28959 (ndr_push_flags_fn_t) ndr_push_spoolss_57,
28960 (ndr_pull_flags_fn_t) ndr_pull_spoolss_57,
28961 (ndr_print_function_t) ndr_print_spoolss_57,
28966 sizeof(struct spoolss_XcvData),
28967 (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
28968 (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
28969 (ndr_print_function_t) ndr_print_spoolss_XcvData,
28973 "spoolss_AddPrinterDriverEx",
28974 sizeof(struct spoolss_AddPrinterDriverEx),
28975 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
28976 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
28977 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
28982 sizeof(struct spoolss_5a),
28983 (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
28984 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
28985 (ndr_print_function_t) ndr_print_spoolss_5a,
28990 sizeof(struct spoolss_5b),
28991 (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
28992 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
28993 (ndr_print_function_t) ndr_print_spoolss_5b,
28998 sizeof(struct spoolss_5c),
28999 (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
29000 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
29001 (ndr_print_function_t) ndr_print_spoolss_5c,
29006 sizeof(struct spoolss_5d),
29007 (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
29008 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
29009 (ndr_print_function_t) ndr_print_spoolss_5d,
29014 sizeof(struct spoolss_5e),
29015 (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
29016 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
29017 (ndr_print_function_t) ndr_print_spoolss_5e,
29022 sizeof(struct spoolss_5f),
29023 (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
29024 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
29025 (ndr_print_function_t) ndr_print_spoolss_5f,
29028 { NULL, 0, NULL, NULL, NULL, false }
29031 static const char * const spoolss_endpoint_strings[] = {
29032 "ncacn_np:[\\pipe\\spoolss]",
29035 static const struct ndr_interface_string_array spoolss_endpoints = {
29037 .names = spoolss_endpoint_strings
29040 static const char * const spoolss_authservice_strings[] = {
29044 static const struct ndr_interface_string_array spoolss_authservices = {
29046 .names = spoolss_authservice_strings
29050 const struct ndr_interface_table ndr_table_spoolss = {
29053 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
29054 NDR_SPOOLSS_VERSION
29056 .helpstring = NDR_SPOOLSS_HELPSTRING,
29058 .calls = spoolss_calls,
29059 .endpoints = &spoolss_endpoints,
29060 .authservices = &spoolss_authservices