s4-idl: added generated files from rap.idl
[Samba.git] / librpc / gen_ndr / ndr_spoolss.c
blobcd036cf1cb8078f69efaaf5c818c189c0e2513f4
1 /* parser auto-generated by pidl */
3 #include "includes.h"
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));
21 NDR_CHECK(ndr_push_trailer_align(ndr, 2));
23 if (ndr_flags & NDR_BUFFERS) {
25 return NDR_ERR_SUCCESS;
28 static enum ndr_err_code ndr_pull_spoolss_Time(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Time *r)
30 if (ndr_flags & NDR_SCALARS) {
31 NDR_CHECK(ndr_pull_align(ndr, 2));
32 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->year));
33 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->month));
34 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->day_of_week));
35 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->day));
36 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->hour));
37 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->minute));
38 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->second));
39 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->millisecond));
40 NDR_CHECK(ndr_pull_trailer_align(ndr, 2));
42 if (ndr_flags & NDR_BUFFERS) {
44 return NDR_ERR_SUCCESS;
47 static size_t ndr_size_spoolss_Time(const struct spoolss_Time *r, struct smb_iconv_convenience *ic, int flags)
49 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_Time, ic);
52 static enum ndr_err_code ndr_push_spoolss_TimeCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_TimeCtr *r)
54 if (ndr_flags & NDR_SCALARS) {
55 NDR_CHECK(ndr_push_align(ndr, 5));
56 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_Time(r->time, ndr->iconv_convenience, ndr->flags)));
57 NDR_CHECK(ndr_push_unique_ptr(ndr, r->time));
58 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
60 if (ndr_flags & NDR_BUFFERS) {
61 if (r->time) {
62 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, r->time));
65 return NDR_ERR_SUCCESS;
68 static enum ndr_err_code ndr_pull_spoolss_TimeCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_TimeCtr *r)
70 uint32_t _ptr_time;
71 TALLOC_CTX *_mem_save_time_0;
72 if (ndr_flags & NDR_SCALARS) {
73 NDR_CHECK(ndr_pull_align(ndr, 5));
74 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
75 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_time));
76 if (_ptr_time) {
77 NDR_PULL_ALLOC(ndr, r->time);
78 } else {
79 r->time = NULL;
81 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
83 if (ndr_flags & NDR_BUFFERS) {
84 if (r->time) {
85 _mem_save_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
86 NDR_PULL_SET_MEM_CTX(ndr, r->time, 0);
87 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, r->time));
88 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_time_0, 0);
91 return NDR_ERR_SUCCESS;
94 _PUBLIC_ void ndr_print_spoolss_TimeCtr(struct ndr_print *ndr, const char *name, const struct spoolss_TimeCtr *r)
96 ndr_print_struct(ndr, name, "spoolss_TimeCtr");
97 ndr->depth++;
98 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_Time(r->time, ndr->iconv_convenience, ndr->flags):r->size);
99 ndr_print_ptr(ndr, "time", r->time);
100 ndr->depth++;
101 if (r->time) {
102 ndr_print_spoolss_Time(ndr, "time", r->time);
104 ndr->depth--;
105 ndr->depth--;
108 static enum ndr_err_code ndr_push_spoolss_ProcessorArchitecture(struct ndr_push *ndr, int ndr_flags, enum spoolss_ProcessorArchitecture r)
110 NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
111 return NDR_ERR_SUCCESS;
114 static enum ndr_err_code ndr_pull_spoolss_ProcessorArchitecture(struct ndr_pull *ndr, int ndr_flags, enum spoolss_ProcessorArchitecture *r)
116 uint16_t v;
117 NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
118 *r = v;
119 return NDR_ERR_SUCCESS;
122 _PUBLIC_ void ndr_print_spoolss_ProcessorArchitecture(struct ndr_print *ndr, const char *name, enum spoolss_ProcessorArchitecture r)
124 const char *val = NULL;
126 switch (r) {
127 case PROCESSOR_ARCHITECTURE_INTEL: val = "PROCESSOR_ARCHITECTURE_INTEL"; break;
128 case PROCESSOR_ARCHITECTURE_IA64: val = "PROCESSOR_ARCHITECTURE_IA64"; break;
129 case PROCESSOR_ARCHITECTURE_AMD64: val = "PROCESSOR_ARCHITECTURE_AMD64"; break;
131 ndr_print_enum(ndr, name, "ENUM", val, r);
134 static enum ndr_err_code ndr_push_spoolss_ProcessorType(struct ndr_push *ndr, int ndr_flags, enum spoolss_ProcessorType r)
136 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
137 return NDR_ERR_SUCCESS;
140 static enum ndr_err_code ndr_pull_spoolss_ProcessorType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_ProcessorType *r)
142 uint32_t v;
143 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
144 *r = v;
145 return NDR_ERR_SUCCESS;
148 _PUBLIC_ void ndr_print_spoolss_ProcessorType(struct ndr_print *ndr, const char *name, enum spoolss_ProcessorType r)
150 const char *val = NULL;
152 switch (r) {
153 case PROCESSOR_INTEL_386: val = "PROCESSOR_INTEL_386"; break;
154 case PROCESSOR_INTEL_486: val = "PROCESSOR_INTEL_486"; break;
155 case PROCESSOR_INTEL_PENTIUM: val = "PROCESSOR_INTEL_PENTIUM"; break;
156 case PROCESSOR_INTEL_IA64: val = "PROCESSOR_INTEL_IA64"; break;
157 case PROCESSOR_AMD_X8664: val = "PROCESSOR_AMD_X8664"; break;
159 ndr_print_enum(ndr, name, "ENUM", val, r);
162 static enum ndr_err_code ndr_push_spoolss_MajorVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_MajorVersion r)
164 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
165 return NDR_ERR_SUCCESS;
168 static enum ndr_err_code ndr_pull_spoolss_MajorVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_MajorVersion *r)
170 uint32_t v;
171 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
172 *r = v;
173 return NDR_ERR_SUCCESS;
176 _PUBLIC_ void ndr_print_spoolss_MajorVersion(struct ndr_print *ndr, const char *name, enum spoolss_MajorVersion r)
178 const char *val = NULL;
180 switch (r) {
181 case SPOOLSS_MAJOR_VERSION_NT4_95_98_ME: val = "SPOOLSS_MAJOR_VERSION_NT4_95_98_ME"; break;
182 case SPOOLSS_MAJOR_VERSION_2000_2003_XP: val = "SPOOLSS_MAJOR_VERSION_2000_2003_XP"; break;
183 case SPOOLSS_MAJOR_VERSION_2008_VISTA: val = "SPOOLSS_MAJOR_VERSION_2008_VISTA"; break;
185 ndr_print_enum(ndr, name, "ENUM", val, r);
188 static enum ndr_err_code ndr_push_spoolss_MinorVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_MinorVersion r)
190 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
191 return NDR_ERR_SUCCESS;
194 static enum ndr_err_code ndr_pull_spoolss_MinorVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_MinorVersion *r)
196 uint32_t v;
197 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
198 *r = v;
199 return NDR_ERR_SUCCESS;
202 _PUBLIC_ void ndr_print_spoolss_MinorVersion(struct ndr_print *ndr, const char *name, enum spoolss_MinorVersion r)
204 const char *val = NULL;
206 switch (r) {
207 case SPOOLSS_MINOR_VERSION_0: val = "SPOOLSS_MINOR_VERSION_0"; break;
208 case SPOOLSS_MINOR_VERSION_XP: val = "SPOOLSS_MINOR_VERSION_XP"; break;
209 case SPOOLSS_MINOR_VERSION_2003_XP64: val = "SPOOLSS_MINOR_VERSION_2003_XP64"; break;
210 case SPOOLSS_MINOR_VERSION_98: val = "SPOOLSS_MINOR_VERSION_98"; break;
211 case SPOOLSS_MINOR_VERSION_ME: val = "SPOOLSS_MINOR_VERSION_ME"; break;
213 ndr_print_enum(ndr, name, "ENUM", val, r);
216 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterStatus(struct ndr_push *ndr, int ndr_flags, uint32_t r)
218 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
219 return NDR_ERR_SUCCESS;
222 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterStatus(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
224 uint32_t v;
225 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
226 *r = v;
227 return NDR_ERR_SUCCESS;
230 _PUBLIC_ void ndr_print_spoolss_PrinterStatus(struct ndr_print *ndr, const char *name, uint32_t r)
232 ndr_print_uint32(ndr, name, r);
233 ndr->depth++;
234 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAUSED", PRINTER_STATUS_PAUSED, r);
235 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_ERROR", PRINTER_STATUS_ERROR, r);
236 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PENDING_DELETION", PRINTER_STATUS_PENDING_DELETION, r);
237 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_JAM", PRINTER_STATUS_PAPER_JAM, r);
238 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_OUT", PRINTER_STATUS_PAPER_OUT, r);
239 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_MANUAL_FEED", PRINTER_STATUS_MANUAL_FEED, r);
240 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_PROBLEM", PRINTER_STATUS_PAPER_PROBLEM, r);
241 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OFFLINE", PRINTER_STATUS_OFFLINE, r);
242 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_IO_ACTIVE", PRINTER_STATUS_IO_ACTIVE, r);
243 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_BUSY", PRINTER_STATUS_BUSY, r);
244 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PRINTING", PRINTER_STATUS_PRINTING, r);
245 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUTPUT_BIN_FULL", PRINTER_STATUS_OUTPUT_BIN_FULL, r);
246 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NOT_AVAILABLE", PRINTER_STATUS_NOT_AVAILABLE, r);
247 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WAITING", PRINTER_STATUS_WAITING, r);
248 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PROCESSING", PRINTER_STATUS_PROCESSING, r);
249 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_INITIALIZING", PRINTER_STATUS_INITIALIZING, r);
250 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WARMING_UP", PRINTER_STATUS_WARMING_UP, r);
251 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_TONER_LOW", PRINTER_STATUS_TONER_LOW, r);
252 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NO_TONER", PRINTER_STATUS_NO_TONER, r);
253 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAGE_PUNT", PRINTER_STATUS_PAGE_PUNT, r);
254 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_USER_INTERVENTION", PRINTER_STATUS_USER_INTERVENTION, r);
255 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUT_OF_MEMORY", PRINTER_STATUS_OUT_OF_MEMORY, r);
256 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_DOOR_OPEN", PRINTER_STATUS_DOOR_OPEN, r);
257 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_SERVER_UNKNOWN", PRINTER_STATUS_SERVER_UNKNOWN, r);
258 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_POWER_SAVE", PRINTER_STATUS_POWER_SAVE, r);
259 ndr->depth--;
262 static enum ndr_err_code ndr_push_spoolss_JobStatus(struct ndr_push *ndr, int ndr_flags, uint32_t r)
264 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
265 return NDR_ERR_SUCCESS;
268 static enum ndr_err_code ndr_pull_spoolss_JobStatus(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
270 uint32_t v;
271 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
272 *r = v;
273 return NDR_ERR_SUCCESS;
276 _PUBLIC_ void ndr_print_spoolss_JobStatus(struct ndr_print *ndr, const char *name, uint32_t r)
278 ndr_print_uint32(ndr, name, r);
279 ndr->depth++;
280 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PAUSED", JOB_STATUS_PAUSED, r);
281 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_ERROR", JOB_STATUS_ERROR, r);
282 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_DELETING", JOB_STATUS_DELETING, r);
283 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_SPOOLING", JOB_STATUS_SPOOLING, r);
284 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PRINTING", JOB_STATUS_PRINTING, r);
285 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_OFFLINE", JOB_STATUS_OFFLINE, r);
286 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PAPEROUT", JOB_STATUS_PAPEROUT, r);
287 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PRINTED", JOB_STATUS_PRINTED, r);
288 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_DELETED", JOB_STATUS_DELETED, r);
289 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_BLOCKED_DEVQ", JOB_STATUS_BLOCKED_DEVQ, r);
290 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_USER_INTERVENTION", JOB_STATUS_USER_INTERVENTION, r);
291 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_RESTART", JOB_STATUS_RESTART, r);
292 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_COMPLETE", JOB_STATUS_COMPLETE, r);
293 ndr->depth--;
296 static enum ndr_err_code ndr_push_spoolss_Build(struct ndr_push *ndr, int ndr_flags, enum spoolss_Build r)
298 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
299 return NDR_ERR_SUCCESS;
302 static enum ndr_err_code ndr_pull_spoolss_Build(struct ndr_pull *ndr, int ndr_flags, enum spoolss_Build *r)
304 uint32_t v;
305 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
306 *r = v;
307 return NDR_ERR_SUCCESS;
310 _PUBLIC_ void ndr_print_spoolss_Build(struct ndr_print *ndr, const char *name, enum spoolss_Build r)
312 const char *val = NULL;
314 switch (r) {
315 case SPOOLSS_DEBUGGING_BUILD: val = "SPOOLSS_DEBUGGING_BUILD"; break;
316 case SPOOLSS_RELEASE_BUILD: val = "SPOOLSS_RELEASE_BUILD"; break;
318 ndr_print_enum(ndr, name, "ENUM", val, r);
321 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo0 *r)
323 if (ndr_flags & NDR_SCALARS) {
324 NDR_CHECK(ndr_push_align(ndr, 5));
326 uint32_t _flags_save_string = ndr->flags;
327 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
328 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
329 ndr->flags = _flags_save_string;
332 uint32_t _flags_save_string = ndr->flags;
333 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
334 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
335 ndr->flags = _flags_save_string;
337 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
338 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
339 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
340 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
341 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
342 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
343 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
344 NDR_CHECK(ndr_push_spoolss_Build(ndr, NDR_SCALARS, r->free_build));
345 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
346 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
347 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
348 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
349 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
350 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->job_error));
351 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
352 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
353 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
354 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
355 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
356 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
357 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
358 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
359 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
360 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
361 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
362 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
363 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
364 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
366 if (ndr_flags & NDR_BUFFERS) {
368 uint32_t _flags_save_string = ndr->flags;
369 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
370 if (r->printername) {
371 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printername));
372 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
373 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printername));
375 ndr->flags = _flags_save_string;
378 uint32_t _flags_save_string = ndr->flags;
379 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
380 if (r->servername) {
381 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->servername));
382 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
383 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->servername));
385 ndr->flags = _flags_save_string;
388 return NDR_ERR_SUCCESS;
391 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo0 *r)
393 uint32_t _ptr_printername;
394 TALLOC_CTX *_mem_save_printername_0;
395 uint32_t _ptr_servername;
396 TALLOC_CTX *_mem_save_servername_0;
397 if (ndr_flags & NDR_SCALARS) {
398 NDR_CHECK(ndr_pull_align(ndr, 5));
400 uint32_t _flags_save_string = ndr->flags;
401 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
402 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
403 if (_ptr_printername) {
404 NDR_PULL_ALLOC(ndr, r->printername);
405 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
406 } else {
407 r->printername = NULL;
409 ndr->flags = _flags_save_string;
412 uint32_t _flags_save_string = ndr->flags;
413 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
414 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
415 if (_ptr_servername) {
416 NDR_PULL_ALLOC(ndr, r->servername);
417 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
418 } else {
419 r->servername = NULL;
421 ndr->flags = _flags_save_string;
423 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
424 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
425 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
426 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
427 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
428 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
429 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
430 NDR_CHECK(ndr_pull_spoolss_Build(ndr, NDR_SCALARS, &r->free_build));
431 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
432 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
433 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
434 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
435 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
436 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->job_error));
437 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
438 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
439 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
440 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
441 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
442 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
443 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
444 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
445 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
446 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
447 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
448 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
449 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
450 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
452 if (ndr_flags & NDR_BUFFERS) {
454 uint32_t _flags_save_string = ndr->flags;
455 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
456 if (r->printername) {
457 uint32_t _relative_save_offset;
458 _relative_save_offset = ndr->offset;
459 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
460 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
461 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
462 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
463 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
464 if (ndr->offset > ndr->relative_highest_offset) {
465 ndr->relative_highest_offset = ndr->offset;
467 ndr->offset = _relative_save_offset;
469 ndr->flags = _flags_save_string;
472 uint32_t _flags_save_string = ndr->flags;
473 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
474 if (r->servername) {
475 uint32_t _relative_save_offset;
476 _relative_save_offset = ndr->offset;
477 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
478 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
479 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
480 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
481 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
482 if (ndr->offset > ndr->relative_highest_offset) {
483 ndr->relative_highest_offset = ndr->offset;
485 ndr->offset = _relative_save_offset;
487 ndr->flags = _flags_save_string;
490 return NDR_ERR_SUCCESS;
493 _PUBLIC_ void ndr_print_spoolss_PrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo0 *r)
495 ndr_print_struct(ndr, name, "spoolss_PrinterInfo0");
496 ndr->depth++;
497 ndr_print_ptr(ndr, "printername", r->printername);
498 ndr->depth++;
499 if (r->printername) {
500 ndr_print_string(ndr, "printername", r->printername);
502 ndr->depth--;
503 ndr_print_ptr(ndr, "servername", r->servername);
504 ndr->depth++;
505 if (r->servername) {
506 ndr_print_string(ndr, "servername", r->servername);
508 ndr->depth--;
509 ndr_print_uint32(ndr, "cjobs", r->cjobs);
510 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
511 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
512 ndr_print_spoolss_Time(ndr, "time", &r->time);
513 ndr_print_uint32(ndr, "global_counter", r->global_counter);
514 ndr_print_uint32(ndr, "total_pages", r->total_pages);
515 ndr_print_uint32(ndr, "version", r->version);
516 ndr_print_spoolss_Build(ndr, "free_build", r->free_build);
517 ndr_print_uint32(ndr, "spooling", r->spooling);
518 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
519 ndr_print_uint32(ndr, "session_counter", r->session_counter);
520 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
521 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
522 ndr_print_spoolss_JobStatus(ndr, "job_error", r->job_error);
523 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
524 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
525 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
526 ndr_print_uint32(ndr, "change_id", r->change_id);
527 ndr_print_WERROR(ndr, "last_error", r->last_error);
528 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
529 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
530 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
531 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
532 ndr_print_uint16(ndr, "processor_level", r->processor_level);
533 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
534 ndr_print_uint32(ndr, "reserved2", r->reserved2);
535 ndr_print_uint32(ndr, "reserved3", r->reserved3);
536 ndr->depth--;
539 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo0(const struct spoolss_PrinterInfo0 *r, struct smb_iconv_convenience *ic, int flags)
541 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo0, ic);
544 static enum ndr_err_code ndr_push_spoolss_DM_Signature(struct ndr_push *ndr, int ndr_flags, enum spoolss_DM_Signature r)
546 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
547 return NDR_ERR_SUCCESS;
550 static enum ndr_err_code ndr_pull_spoolss_DM_Signature(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DM_Signature *r)
552 uint32_t v;
553 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
554 *r = v;
555 return NDR_ERR_SUCCESS;
558 _PUBLIC_ void ndr_print_spoolss_DM_Signature(struct ndr_print *ndr, const char *name, enum spoolss_DM_Signature r)
560 const char *val = NULL;
562 switch (r) {
563 case SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA: val = "SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA"; break;
564 case SPOOLSS_DM_SIGNATURE_JTEXP: val = "SPOOLSS_DM_SIGNATURE_JTEXP"; break;
565 case SPOOLSS_DM_SIGNATURE_PSEXTRA: val = "SPOOLSS_DM_SIGNATURE_PSEXTRA"; break;
567 ndr_print_enum(ndr, name, "ENUM", val, r);
570 static enum ndr_err_code ndr_push_spoolss_DM_Layout(struct ndr_push *ndr, int ndr_flags, enum spoolss_DM_Layout r)
572 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
573 return NDR_ERR_SUCCESS;
576 static enum ndr_err_code ndr_pull_spoolss_DM_Layout(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DM_Layout *r)
578 uint32_t v;
579 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
580 *r = v;
581 return NDR_ERR_SUCCESS;
584 _PUBLIC_ void ndr_print_spoolss_DM_Layout(struct ndr_print *ndr, const char *name, enum spoolss_DM_Layout r)
586 const char *val = NULL;
588 switch (r) {
589 case SPOOLSS_DM_LAYOUT_NUP_DISABLED: val = "SPOOLSS_DM_LAYOUT_NUP_DISABLED"; break;
590 case SPOOLSS_DM_LAYOUT_NUP_2: val = "SPOOLSS_DM_LAYOUT_NUP_2"; break;
591 case SPOOLSS_DM_LAYOUT_NUP_4: val = "SPOOLSS_DM_LAYOUT_NUP_4"; break;
592 case SPOOLSS_DM_LAYOUT_NUP_6: val = "SPOOLSS_DM_LAYOUT_NUP_6"; break;
593 case SPOOLSS_DM_LAYOUT_NUP_9: val = "SPOOLSS_DM_LAYOUT_NUP_9"; break;
594 case SPOOLSS_DM_LAYOUT_NUP_16: val = "SPOOLSS_DM_LAYOUT_NUP_16"; break;
595 case SPOOLSS_DM_LAYOUT_BOOKLET: val = "SPOOLSS_DM_LAYOUT_BOOKLET"; break;
597 ndr_print_enum(ndr, name, "ENUM", val, r);
600 static enum ndr_err_code ndr_push_spoolss_DM_NupDirection(struct ndr_push *ndr, int ndr_flags, enum spoolss_DM_NupDirection r)
602 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
603 return NDR_ERR_SUCCESS;
606 static enum ndr_err_code ndr_pull_spoolss_DM_NupDirection(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DM_NupDirection *r)
608 uint32_t v;
609 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
610 *r = v;
611 return NDR_ERR_SUCCESS;
614 _PUBLIC_ void ndr_print_spoolss_DM_NupDirection(struct ndr_print *ndr, const char *name, enum spoolss_DM_NupDirection r)
616 const char *val = NULL;
618 switch (r) {
619 case SPOOLSS_DM_NUP_DIRECTION_L2R_T2B: val = "SPOOLSS_DM_NUP_DIRECTION_L2R_T2B"; break;
620 case SPOOLSS_DM_NUP_DIRECTION_T2B_L2R: val = "SPOOLSS_DM_NUP_DIRECTION_T2B_L2R"; break;
621 case SPOOLSS_DM_NUP_DIRECTION_R2L_T2B: val = "SPOOLSS_DM_NUP_DIRECTION_R2L_T2B"; break;
622 case SPOOLSS_DM_NUP_DIRECTION_T2B_R2L: val = "SPOOLSS_DM_NUP_DIRECTION_T2B_R2L"; break;
624 ndr_print_enum(ndr, name, "ENUM", val, r);
627 static enum ndr_err_code ndr_push_spoolss_DM_NupBorderFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_DM_NupBorderFlags r)
629 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
630 return NDR_ERR_SUCCESS;
633 static enum ndr_err_code ndr_pull_spoolss_DM_NupBorderFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DM_NupBorderFlags *r)
635 uint32_t v;
636 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
637 *r = v;
638 return NDR_ERR_SUCCESS;
641 _PUBLIC_ void ndr_print_spoolss_DM_NupBorderFlags(struct ndr_print *ndr, const char *name, enum spoolss_DM_NupBorderFlags r)
643 const char *val = NULL;
645 switch (r) {
646 case SPOOLSS_DM_NUP_BORDER_PRINT: val = "SPOOLSS_DM_NUP_BORDER_PRINT"; break;
647 case SPOOLSS_DM_NUP_BORDER_NONE: val = "SPOOLSS_DM_NUP_BORDER_NONE"; break;
649 ndr_print_enum(ndr, name, "ENUM", val, r);
652 static enum ndr_err_code ndr_push_spoolss_DM_BookletFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_DM_BookletFlags r)
654 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
655 return NDR_ERR_SUCCESS;
658 static enum ndr_err_code ndr_pull_spoolss_DM_BookletFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DM_BookletFlags *r)
660 uint32_t v;
661 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
662 *r = v;
663 return NDR_ERR_SUCCESS;
666 _PUBLIC_ void ndr_print_spoolss_DM_BookletFlags(struct ndr_print *ndr, const char *name, enum spoolss_DM_BookletFlags r)
668 const char *val = NULL;
670 switch (r) {
671 case SPOOLSS_DM_BOOKLET_LEFT_FLIP: val = "SPOOLSS_DM_BOOKLET_LEFT_FLIP"; break;
672 case SPOOLSS_DM_BOOKLET_RIGHT_FLIP: val = "SPOOLSS_DM_BOOKLET_RIGHT_FLIP"; break;
674 ndr_print_enum(ndr, name, "ENUM", val, r);
677 static enum ndr_err_code ndr_push_spoolss_DMUNI_Quality(struct ndr_push *ndr, int ndr_flags, enum spoolss_DMUNI_Quality r)
679 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
680 return NDR_ERR_SUCCESS;
683 static enum ndr_err_code ndr_pull_spoolss_DMUNI_Quality(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DMUNI_Quality *r)
685 uint32_t v;
686 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
687 *r = v;
688 return NDR_ERR_SUCCESS;
691 _PUBLIC_ void ndr_print_spoolss_DMUNI_Quality(struct ndr_print *ndr, const char *name, enum spoolss_DMUNI_Quality r)
693 const char *val = NULL;
695 switch (r) {
696 case SPOOLSS_DM_UNI_QUALITY_BEST: val = "SPOOLSS_DM_UNI_QUALITY_BEST"; break;
697 case SPOOLSS_DM_UNI_QUALITY_MEDIUM: val = "SPOOLSS_DM_UNI_QUALITY_MEDIUM"; break;
698 case SPOOLSS_DM_UNI_QUALITY_DRAFT: val = "SPOOLSS_DM_UNI_QUALITY_DRAFT"; break;
700 ndr_print_enum(ndr, name, "ENUM", val, r);
703 static enum ndr_err_code ndr_push_spoolss_DMUNI_Flags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
705 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
706 return NDR_ERR_SUCCESS;
709 static enum ndr_err_code ndr_pull_spoolss_DMUNI_Flags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
711 uint32_t v;
712 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
713 *r = v;
714 return NDR_ERR_SUCCESS;
717 _PUBLIC_ void ndr_print_spoolss_DMUNI_Flags(struct ndr_print *ndr, const char *name, uint32_t r)
719 ndr_print_uint32(ndr, name, r);
720 ndr->depth++;
721 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_DM_UNI_FLAGS_PRINT_TEXT_AS_GRAPHICS", SPOOLSS_DM_UNI_FLAGS_PRINT_TEXT_AS_GRAPHICS, r);
722 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_DM_UNI_FLAGS_AVOID_EMFSPOOL", SPOOLSS_DM_UNI_FLAGS_AVOID_EMFSPOOL, r);
723 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_DM_UNI_FLAGS_CUSTOM_HALFTONING", SPOOLSS_DM_UNI_FLAGS_CUSTOM_HALFTONING, r);
724 ndr->depth--;
727 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_UNIDRVEXTRA(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UNIDRVEXTRA *r)
729 uint32_t cntr_wReserved_0;
730 uint32_t cntr_aOptions_0;
731 if (ndr_flags & NDR_SCALARS) {
732 NDR_CHECK(ndr_push_align(ndr, 4));
733 NDR_CHECK(ndr_push_spoolss_DM_Signature(ndr, NDR_SCALARS, SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA));
734 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 0x0022));
735 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->wCoreJTExpSize));
736 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, ndr_size_spoolss_UNIDRVEXTRA(r, ndr->iconv_convenience, ndr->flags) + r->wCoreJTExpSize));
737 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->wOEMExtra));
738 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwChecksum32));
739 NDR_CHECK(ndr_push_spoolss_DMUNI_Flags(ndr, NDR_SCALARS, r->dwFlags));
740 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bReversePrint));
741 NDR_CHECK(ndr_push_spoolss_DM_Layout(ndr, NDR_SCALARS, r->iLayout));
742 NDR_CHECK(ndr_push_spoolss_DMUNI_Quality(ndr, NDR_SCALARS, r->iQuality));
743 for (cntr_wReserved_0 = 0; cntr_wReserved_0 < 6; cntr_wReserved_0++) {
744 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->wReserved[cntr_wReserved_0]));
746 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwOptions));
747 for (cntr_aOptions_0 = 0; cntr_aOptions_0 < 128; cntr_aOptions_0++) {
748 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->aOptions[cntr_aOptions_0]));
750 NDR_CHECK(ndr_push_spoolss_DM_NupDirection(ndr, NDR_SCALARS, r->dwNupDirection));
751 NDR_CHECK(ndr_push_spoolss_DM_NupBorderFlags(ndr, NDR_SCALARS, r->dwNupBorderFlags));
752 NDR_CHECK(ndr_push_spoolss_DM_BookletFlags(ndr, NDR_SCALARS, r->dwBookletFlags));
753 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
755 if (ndr_flags & NDR_BUFFERS) {
757 return NDR_ERR_SUCCESS;
760 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_UNIDRVEXTRA(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UNIDRVEXTRA *r)
762 uint32_t cntr_wReserved_0;
763 uint32_t cntr_aOptions_0;
764 if (ndr_flags & NDR_SCALARS) {
765 NDR_CHECK(ndr_pull_align(ndr, 4));
766 NDR_CHECK(ndr_pull_spoolss_DM_Signature(ndr, NDR_SCALARS, &r->dwSignature));
767 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->wVer));
768 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->wCoreJTExpSize));
769 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->wCoreFullSize));
770 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->wOEMExtra));
771 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwChecksum32));
772 NDR_CHECK(ndr_pull_spoolss_DMUNI_Flags(ndr, NDR_SCALARS, &r->dwFlags));
773 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bReversePrint));
774 NDR_CHECK(ndr_pull_spoolss_DM_Layout(ndr, NDR_SCALARS, &r->iLayout));
775 NDR_CHECK(ndr_pull_spoolss_DMUNI_Quality(ndr, NDR_SCALARS, &r->iQuality));
776 for (cntr_wReserved_0 = 0; cntr_wReserved_0 < 6; cntr_wReserved_0++) {
777 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->wReserved[cntr_wReserved_0]));
779 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwOptions));
780 for (cntr_aOptions_0 = 0; cntr_aOptions_0 < 128; cntr_aOptions_0++) {
781 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->aOptions[cntr_aOptions_0]));
783 NDR_CHECK(ndr_pull_spoolss_DM_NupDirection(ndr, NDR_SCALARS, &r->dwNupDirection));
784 NDR_CHECK(ndr_pull_spoolss_DM_NupBorderFlags(ndr, NDR_SCALARS, &r->dwNupBorderFlags));
785 NDR_CHECK(ndr_pull_spoolss_DM_BookletFlags(ndr, NDR_SCALARS, &r->dwBookletFlags));
786 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
788 if (ndr_flags & NDR_BUFFERS) {
790 return NDR_ERR_SUCCESS;
793 _PUBLIC_ void ndr_print_spoolss_UNIDRVEXTRA(struct ndr_print *ndr, const char *name, const struct spoolss_UNIDRVEXTRA *r)
795 uint32_t cntr_wReserved_0;
796 uint32_t cntr_aOptions_0;
797 ndr_print_struct(ndr, name, "spoolss_UNIDRVEXTRA");
798 ndr->depth++;
799 ndr_print_spoolss_DM_Signature(ndr, "dwSignature", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA:r->dwSignature);
800 ndr_print_uint16(ndr, "wVer", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x0022:r->wVer);
801 ndr_print_uint16(ndr, "wCoreJTExpSize", r->wCoreJTExpSize);
802 ndr_print_uint16(ndr, "wCoreFullSize", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_UNIDRVEXTRA(r, ndr->iconv_convenience, ndr->flags) + r->wCoreJTExpSize:r->wCoreFullSize);
803 ndr_print_uint16(ndr, "wOEMExtra", r->wOEMExtra);
804 ndr_print_uint32(ndr, "dwChecksum32", r->dwChecksum32);
805 ndr_print_spoolss_DMUNI_Flags(ndr, "dwFlags", r->dwFlags);
806 ndr_print_uint32(ndr, "bReversePrint", r->bReversePrint);
807 ndr_print_spoolss_DM_Layout(ndr, "iLayout", r->iLayout);
808 ndr_print_spoolss_DMUNI_Quality(ndr, "iQuality", r->iQuality);
809 ndr->print(ndr, "%s: ARRAY(%d)", "wReserved", (int)6);
810 ndr->depth++;
811 for (cntr_wReserved_0=0;cntr_wReserved_0<6;cntr_wReserved_0++) {
812 char *idx_0=NULL;
813 if (asprintf(&idx_0, "[%d]", cntr_wReserved_0) != -1) {
814 ndr_print_uint16(ndr, "wReserved", r->wReserved[cntr_wReserved_0]);
815 free(idx_0);
818 ndr->depth--;
819 ndr_print_uint32(ndr, "dwOptions", r->dwOptions);
820 ndr->print(ndr, "%s: ARRAY(%d)", "aOptions", (int)128);
821 ndr->depth++;
822 for (cntr_aOptions_0=0;cntr_aOptions_0<128;cntr_aOptions_0++) {
823 char *idx_0=NULL;
824 if (asprintf(&idx_0, "[%d]", cntr_aOptions_0) != -1) {
825 ndr_print_uint32(ndr, "aOptions", r->aOptions[cntr_aOptions_0]);
826 free(idx_0);
829 ndr->depth--;
830 ndr_print_spoolss_DM_NupDirection(ndr, "dwNupDirection", r->dwNupDirection);
831 ndr_print_spoolss_DM_NupBorderFlags(ndr, "dwNupBorderFlags", r->dwNupBorderFlags);
832 ndr_print_spoolss_DM_BookletFlags(ndr, "dwBookletFlags", r->dwBookletFlags);
833 ndr->depth--;
836 _PUBLIC_ size_t ndr_size_spoolss_UNIDRVEXTRA(const struct spoolss_UNIDRVEXTRA *r, struct smb_iconv_convenience *ic, int flags)
838 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_UNIDRVEXTRA, ic);
841 static enum ndr_err_code ndr_push_spoolss_DeviceModeFields(struct ndr_push *ndr, int ndr_flags, uint32_t r)
843 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
844 return NDR_ERR_SUCCESS;
847 static enum ndr_err_code ndr_pull_spoolss_DeviceModeFields(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
849 uint32_t v;
850 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
851 *r = v;
852 return NDR_ERR_SUCCESS;
855 _PUBLIC_ void ndr_print_spoolss_DeviceModeFields(struct ndr_print *ndr, const char *name, uint32_t r)
857 ndr_print_uint32(ndr, name, r);
858 ndr->depth++;
859 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ORIENTATION", DEVMODE_ORIENTATION, r);
860 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERSIZE", DEVMODE_PAPERSIZE, r);
861 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERLENGTH", DEVMODE_PAPERLENGTH, r);
862 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERWIDTH", DEVMODE_PAPERWIDTH, r);
863 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_SCALE", DEVMODE_SCALE, r);
864 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_POSITION", DEVMODE_POSITION, r);
865 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_NUP", DEVMODE_NUP, r);
866 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COPIES", DEVMODE_COPIES, r);
867 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DEFAULTSOURCE", DEVMODE_DEFAULTSOURCE, r);
868 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PRINTQUALITY", DEVMODE_PRINTQUALITY, r);
869 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLOR", DEVMODE_COLOR, r);
870 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DUPLEX", DEVMODE_DUPLEX, r);
871 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_YRESOLUTION", DEVMODE_YRESOLUTION, r);
872 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_TTOPTION", DEVMODE_TTOPTION, r);
873 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLLATE", DEVMODE_COLLATE, r);
874 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_FORMNAME", DEVMODE_FORMNAME, r);
875 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_LOGPIXELS", DEVMODE_LOGPIXELS, r);
876 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_BITSPERPEL", DEVMODE_BITSPERPEL, r);
877 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSWIDTH", DEVMODE_PELSWIDTH, r);
878 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSHEIGHT", DEVMODE_PELSHEIGHT, r);
879 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFLAGS", DEVMODE_DISPLAYFLAGS, r);
880 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFREQUENCY", DEVMODE_DISPLAYFREQUENCY, r);
881 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMMETHOD", DEVMODE_ICMMETHOD, r);
882 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMINTENT", DEVMODE_ICMINTENT, r);
883 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_MEDIATYPE", DEVMODE_MEDIATYPE, r);
884 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DITHERTYPE", DEVMODE_DITHERTYPE, r);
885 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGWIDTH", DEVMODE_PANNINGWIDTH, r);
886 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGHEIGHT", DEVMODE_PANNINGHEIGHT, r);
887 ndr->depth--;
890 static enum ndr_err_code ndr_push_spoolss_DeviceModeSpecVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeSpecVersion r)
892 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
893 return NDR_ERR_SUCCESS;
896 static enum ndr_err_code ndr_pull_spoolss_DeviceModeSpecVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeSpecVersion *r)
898 uint16_t v;
899 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
900 *r = v;
901 return NDR_ERR_SUCCESS;
904 _PUBLIC_ void ndr_print_spoolss_DeviceModeSpecVersion(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeSpecVersion r)
906 const char *val = NULL;
908 switch (r) {
909 case DMSPEC_NT3: val = "DMSPEC_NT3"; break;
910 case DMSPEC_WIN95_98_ME: val = "DMSPEC_WIN95_98_ME"; break;
911 case DMSPEC_NT4_AND_ABOVE: val = "DMSPEC_NT4_AND_ABOVE"; break;
913 ndr_print_enum(ndr, name, "ENUM", val, r);
916 static enum ndr_err_code ndr_push_spoolss_DeviceModeOrientation(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeOrientation r)
918 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
919 return NDR_ERR_SUCCESS;
922 static enum ndr_err_code ndr_pull_spoolss_DeviceModeOrientation(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeOrientation *r)
924 uint16_t v;
925 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
926 *r = v;
927 return NDR_ERR_SUCCESS;
930 _PUBLIC_ void ndr_print_spoolss_DeviceModeOrientation(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeOrientation r)
932 const char *val = NULL;
934 switch (r) {
935 case DMORIENT_PORTRAIT: val = "DMORIENT_PORTRAIT"; break;
936 case DMORIENT_LANDSCAPE: val = "DMORIENT_LANDSCAPE"; break;
938 ndr_print_enum(ndr, name, "ENUM", val, r);
941 static enum ndr_err_code ndr_push_spoolss_DeviceModePaperSize(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModePaperSize r)
943 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
944 return NDR_ERR_SUCCESS;
947 static enum ndr_err_code ndr_pull_spoolss_DeviceModePaperSize(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModePaperSize *r)
949 uint16_t v;
950 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
951 *r = v;
952 return NDR_ERR_SUCCESS;
955 _PUBLIC_ void ndr_print_spoolss_DeviceModePaperSize(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModePaperSize r)
957 const char *val = NULL;
959 switch (r) {
960 case DMPAPER_LETTER: val = "DMPAPER_LETTER"; break;
961 case DMPAPER_LETTERSMALL: val = "DMPAPER_LETTERSMALL"; break;
962 case DMPAPER_TABLOID: val = "DMPAPER_TABLOID"; break;
963 case DMPAPER_LEDGER: val = "DMPAPER_LEDGER"; break;
964 case DMPAPER_LEGAL: val = "DMPAPER_LEGAL"; break;
965 case DMPAPER_STATEMENT: val = "DMPAPER_STATEMENT"; break;
966 case DMPAPER_EXECUTIVE: val = "DMPAPER_EXECUTIVE"; break;
967 case DMPAPER_A3: val = "DMPAPER_A3"; break;
968 case DMPAPER_A4: val = "DMPAPER_A4"; break;
969 case DMPAPER_A4SMALL: val = "DMPAPER_A4SMALL"; break;
970 case DMPAPER_A5: val = "DMPAPER_A5"; break;
971 case DMPAPER_B4: val = "DMPAPER_B4"; break;
972 case DMPAPER_B5: val = "DMPAPER_B5"; break;
973 case DMPAPER_FOLIO: val = "DMPAPER_FOLIO"; break;
974 case DMPAPER_QUARTO: val = "DMPAPER_QUARTO"; break;
975 case DMPAPER_10X14: val = "DMPAPER_10X14"; break;
976 case DMPAPER_11X17: val = "DMPAPER_11X17"; break;
977 case DMPAPER_NOTE: val = "DMPAPER_NOTE"; break;
978 case DMPAPER_ENV_9: val = "DMPAPER_ENV_9"; break;
979 case DMPAPER_ENV_10: val = "DMPAPER_ENV_10"; break;
980 case DMPAPER_ENV_11: val = "DMPAPER_ENV_11"; break;
981 case DMPAPER_ENV_12: val = "DMPAPER_ENV_12"; break;
982 case DMPAPER_ENV_14: val = "DMPAPER_ENV_14"; break;
983 case DMPAPER_CSHEET: val = "DMPAPER_CSHEET"; break;
984 case DMPAPER_DSHEET: val = "DMPAPER_DSHEET"; break;
985 case DMPAPER_ESHEET: val = "DMPAPER_ESHEET"; break;
986 case DMPAPER_ENV_DL: val = "DMPAPER_ENV_DL"; break;
987 case DMPAPER_ENV_C5: val = "DMPAPER_ENV_C5"; break;
988 case DMPAPER_ENV_C3: val = "DMPAPER_ENV_C3"; break;
989 case DMPAPER_ENV_C4: val = "DMPAPER_ENV_C4"; break;
990 case DMPAPER_ENV_C6: val = "DMPAPER_ENV_C6"; break;
991 case DMPAPER_ENV_C65: val = "DMPAPER_ENV_C65"; break;
992 case DMPAPER_ENV_B4: val = "DMPAPER_ENV_B4"; break;
993 case DMPAPER_ENV_B5: val = "DMPAPER_ENV_B5"; break;
994 case DMPAPER_ENV_B6: val = "DMPAPER_ENV_B6"; break;
995 case DMPAPER_ENV_ITALY: val = "DMPAPER_ENV_ITALY"; break;
996 case DMPAPER_ENV_MONARCH: val = "DMPAPER_ENV_MONARCH"; break;
997 case DMPAPER_ENV_PERSONAL: val = "DMPAPER_ENV_PERSONAL"; break;
998 case DMPAPER_FANFOLD_US: val = "DMPAPER_FANFOLD_US"; break;
999 case DMPAPER_FANFOLD_STD_GERMAN: val = "DMPAPER_FANFOLD_STD_GERMAN"; break;
1000 case DMPAPER_FANFOLD_LGL_GERMAN: val = "DMPAPER_FANFOLD_LGL_GERMAN"; break;
1001 case DMPAPER_DBL_JAPANESE_POSTCARD: val = "DMPAPER_DBL_JAPANESE_POSTCARD"; break;
1002 case DMPAPER_A6: val = "DMPAPER_A6"; break;
1003 case DMPAPER_JENV_KAKU2: val = "DMPAPER_JENV_KAKU2"; break;
1004 case DMPAPER_JENV_KAKU3: val = "DMPAPER_JENV_KAKU3"; break;
1005 case DMPAPER_JENV_CHOU3: val = "DMPAPER_JENV_CHOU3"; break;
1006 case DMPAPER_JENV_CHOU4: val = "DMPAPER_JENV_CHOU4"; break;
1007 case DMPAPER_LETTER_ROTATED: val = "DMPAPER_LETTER_ROTATED"; break;
1008 case DMPAPER_A3_ROTATED: val = "DMPAPER_A3_ROTATED"; break;
1009 case DMPAPER_A4_ROTATED: val = "DMPAPER_A4_ROTATED"; break;
1010 case DMPAPER_A5_ROTATED: val = "DMPAPER_A5_ROTATED"; break;
1011 case DMPAPER_B4_JIS_ROTATED: val = "DMPAPER_B4_JIS_ROTATED"; break;
1012 case DMPAPER_B5_JIS_ROTATED: val = "DMPAPER_B5_JIS_ROTATED"; break;
1013 case DMPAPER_JAPANESE_POSTCARD_ROTATED: val = "DMPAPER_JAPANESE_POSTCARD_ROTATED"; break;
1014 case DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED: val = "DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED"; break;
1015 case DMPAPER_A6_ROTATED: val = "DMPAPER_A6_ROTATED"; break;
1016 case DMPAPER_JENV_KAKU2_ROTATED: val = "DMPAPER_JENV_KAKU2_ROTATED"; break;
1017 case DMPAPER_JENV_KAKU3_ROTATED: val = "DMPAPER_JENV_KAKU3_ROTATED"; break;
1018 case DMPAPER_JENV_CHOU3_ROTATED: val = "DMPAPER_JENV_CHOU3_ROTATED"; break;
1019 case DMPAPER_JENV_CHOU4_ROTATED: val = "DMPAPER_JENV_CHOU4_ROTATED"; break;
1020 case DMPAPER_B6_JIS: val = "DMPAPER_B6_JIS"; break;
1021 case DMPAPER_B6_JIS_ROTATED: val = "DMPAPER_B6_JIS_ROTATED"; break;
1022 case DMPAPER_12X11: val = "DMPAPER_12X11"; break;
1023 case DMPAPER_JENV_YOU4: val = "DMPAPER_JENV_YOU4"; break;
1024 case DMPAPER_JENV_YOU4_ROTATED: val = "DMPAPER_JENV_YOU4_ROTATED"; break;
1025 case DMPAPER_P16K: val = "DMPAPER_P16K"; break;
1026 case DMPAPER_P32K: val = "DMPAPER_P32K"; break;
1027 case DMPAPER_P32KBIG: val = "DMPAPER_P32KBIG"; break;
1028 case DMPAPER_PENV_1: val = "DMPAPER_PENV_1"; break;
1029 case DMPAPER_PENV_2: val = "DMPAPER_PENV_2"; break;
1030 case DMPAPER_PENV_3: val = "DMPAPER_PENV_3"; break;
1031 case DMPAPER_PENV_4: val = "DMPAPER_PENV_4"; break;
1032 case DMPAPER_PENV_5: val = "DMPAPER_PENV_5"; break;
1033 case DMPAPER_PENV_6: val = "DMPAPER_PENV_6"; break;
1034 case DMPAPER_PENV_7: val = "DMPAPER_PENV_7"; break;
1035 case DMPAPER_PENV_8: val = "DMPAPER_PENV_8"; break;
1036 case DMPAPER_PENV_9: val = "DMPAPER_PENV_9"; break;
1037 case DMPAPER_PENV_10: val = "DMPAPER_PENV_10"; break;
1038 case DMPAPER_P16K_ROTATED: val = "DMPAPER_P16K_ROTATED"; break;
1039 case DMPAPER_P32K_ROTATED: val = "DMPAPER_P32K_ROTATED"; break;
1040 case DMPAPER_P32KBIG_ROTATED: val = "DMPAPER_P32KBIG_ROTATED"; break;
1041 case DMPAPER_PENV_1_ROTATED: val = "DMPAPER_PENV_1_ROTATED"; break;
1042 case DMPAPER_PENV_2_ROTATED: val = "DMPAPER_PENV_2_ROTATED"; break;
1043 case DMPAPER_PENV_3_ROTATED: val = "DMPAPER_PENV_3_ROTATED"; break;
1044 case DMPAPER_PENV_4_ROTATED: val = "DMPAPER_PENV_4_ROTATED"; break;
1045 case DMPAPER_PENV_5_ROTATED: val = "DMPAPER_PENV_5_ROTATED"; break;
1046 case DMPAPER_PENV_6_ROTATED: val = "DMPAPER_PENV_6_ROTATED"; break;
1047 case DMPAPER_PENV_7_ROTATED: val = "DMPAPER_PENV_7_ROTATED"; break;
1048 case DMPAPER_PENV_8_ROTATED: val = "DMPAPER_PENV_8_ROTATED"; break;
1049 case DMPAPER_PENV_9_ROTATED: val = "DMPAPER_PENV_9_ROTATED"; break;
1050 case DMPAPER_PENV_10_ROTATED: val = "DMPAPER_PENV_10_ROTATED"; break;
1052 ndr_print_enum(ndr, name, "ENUM", val, r);
1055 static enum ndr_err_code ndr_push_spoolss_DeviceModeDefaultSource(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeDefaultSource r)
1057 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
1058 return NDR_ERR_SUCCESS;
1061 static enum ndr_err_code ndr_pull_spoolss_DeviceModeDefaultSource(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeDefaultSource *r)
1063 uint16_t v;
1064 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
1065 *r = v;
1066 return NDR_ERR_SUCCESS;
1069 _PUBLIC_ void ndr_print_spoolss_DeviceModeDefaultSource(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDefaultSource r)
1071 const char *val = NULL;
1073 switch (r) {
1074 case DMBIN_UPPER: val = "DMBIN_UPPER"; break;
1075 case DMBIN_LOWER: val = "DMBIN_LOWER"; break;
1076 case DMBIN_MIDDLE: val = "DMBIN_MIDDLE"; break;
1077 case DMBIN_MANUAL: val = "DMBIN_MANUAL"; break;
1078 case DMBIN_ENVELOPE: val = "DMBIN_ENVELOPE"; break;
1079 case DMBIN_ENVMANUAL: val = "DMBIN_ENVMANUAL"; break;
1080 case DMBIN_AUTO: val = "DMBIN_AUTO"; break;
1081 case DMBIN_TRACTOR: val = "DMBIN_TRACTOR"; break;
1082 case DMBIN_SMALLFMT: val = "DMBIN_SMALLFMT"; break;
1083 case DMBIN_LARGEFMT: val = "DMBIN_LARGEFMT"; break;
1084 case DMBIN_LARGECAPACITY: val = "DMBIN_LARGECAPACITY"; break;
1085 case DMBIN_CASSETTE: val = "DMBIN_CASSETTE"; break;
1086 case DMBIN_FORMSOURCE: val = "DMBIN_FORMSOURCE"; break;
1088 ndr_print_enum(ndr, name, "ENUM", val, r);
1091 static enum ndr_err_code ndr_push_spoolss_DeviceModePrintQuality(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModePrintQuality r)
1093 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
1094 return NDR_ERR_SUCCESS;
1097 static enum ndr_err_code ndr_pull_spoolss_DeviceModePrintQuality(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModePrintQuality *r)
1099 uint16_t v;
1100 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
1101 *r = v;
1102 return NDR_ERR_SUCCESS;
1105 _PUBLIC_ void ndr_print_spoolss_DeviceModePrintQuality(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModePrintQuality r)
1107 const char *val = NULL;
1109 switch (r) {
1110 case DMRES_HIGH: val = "DMRES_HIGH"; break;
1111 case DMRES_MEDIUM: val = "DMRES_MEDIUM"; break;
1112 case DMRES_LOW: val = "DMRES_LOW"; break;
1113 case DMRES_DRAFT: val = "DMRES_DRAFT"; break;
1115 ndr_print_enum(ndr, name, "ENUM", val, r);
1118 static enum ndr_err_code ndr_push_spoolss_DeviceModeColor(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeColor r)
1120 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
1121 return NDR_ERR_SUCCESS;
1124 static enum ndr_err_code ndr_pull_spoolss_DeviceModeColor(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeColor *r)
1126 uint16_t v;
1127 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
1128 *r = v;
1129 return NDR_ERR_SUCCESS;
1132 _PUBLIC_ void ndr_print_spoolss_DeviceModeColor(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeColor r)
1134 const char *val = NULL;
1136 switch (r) {
1137 case DMRES_MONOCHROME: val = "DMRES_MONOCHROME"; break;
1138 case DMRES_COLOR: val = "DMRES_COLOR"; break;
1140 ndr_print_enum(ndr, name, "ENUM", val, r);
1143 static enum ndr_err_code ndr_push_spoolss_DeviceModeDuplex(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeDuplex r)
1145 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
1146 return NDR_ERR_SUCCESS;
1149 static enum ndr_err_code ndr_pull_spoolss_DeviceModeDuplex(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeDuplex *r)
1151 uint16_t v;
1152 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
1153 *r = v;
1154 return NDR_ERR_SUCCESS;
1157 _PUBLIC_ void ndr_print_spoolss_DeviceModeDuplex(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDuplex r)
1159 const char *val = NULL;
1161 switch (r) {
1162 case DMDUP_SIMPLEX: val = "DMDUP_SIMPLEX"; break;
1163 case DMDUP_VERTICAL: val = "DMDUP_VERTICAL"; break;
1164 case DMDUP_HORIZONTAL: val = "DMDUP_HORIZONTAL"; break;
1166 ndr_print_enum(ndr, name, "ENUM", val, r);
1169 static enum ndr_err_code ndr_push_spoolss_DeviceModeTTOption(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeTTOption r)
1171 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
1172 return NDR_ERR_SUCCESS;
1175 static enum ndr_err_code ndr_pull_spoolss_DeviceModeTTOption(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeTTOption *r)
1177 uint16_t v;
1178 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
1179 *r = v;
1180 return NDR_ERR_SUCCESS;
1183 _PUBLIC_ void ndr_print_spoolss_DeviceModeTTOption(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeTTOption r)
1185 const char *val = NULL;
1187 switch (r) {
1188 case DMTT_BITMAP: val = "DMTT_BITMAP"; break;
1189 case DMTT_DOWNLOAD: val = "DMTT_DOWNLOAD"; break;
1190 case DMTT_SUBDEV: val = "DMTT_SUBDEV"; break;
1191 case DMTT_DOWNLOAD_OUTLINE: val = "DMTT_DOWNLOAD_OUTLINE"; break;
1193 ndr_print_enum(ndr, name, "ENUM", val, r);
1196 static enum ndr_err_code ndr_push_spoolss_DeviceModeCollate(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeCollate r)
1198 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
1199 return NDR_ERR_SUCCESS;
1202 static enum ndr_err_code ndr_pull_spoolss_DeviceModeCollate(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeCollate *r)
1204 uint16_t v;
1205 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
1206 *r = v;
1207 return NDR_ERR_SUCCESS;
1210 _PUBLIC_ void ndr_print_spoolss_DeviceModeCollate(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeCollate r)
1212 const char *val = NULL;
1214 switch (r) {
1215 case DMCOLLATE_FALSE: val = "DMCOLLATE_FALSE"; break;
1216 case DMCOLLATE_TRUE: val = "DMCOLLATE_TRUE"; break;
1218 ndr_print_enum(ndr, name, "ENUM", val, r);
1221 static enum ndr_err_code ndr_push_spoolss_DeviceModeNUp(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeNUp r)
1223 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
1224 return NDR_ERR_SUCCESS;
1227 static enum ndr_err_code ndr_pull_spoolss_DeviceModeNUp(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeNUp *r)
1229 uint32_t v;
1230 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1231 *r = v;
1232 return NDR_ERR_SUCCESS;
1235 _PUBLIC_ void ndr_print_spoolss_DeviceModeNUp(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeNUp r)
1237 const char *val = NULL;
1239 switch (r) {
1240 case DMNUP_SYSTEM: val = "DMNUP_SYSTEM"; break;
1241 case DMNUP_ONEUP: val = "DMNUP_ONEUP"; break;
1243 ndr_print_enum(ndr, name, "ENUM", val, r);
1246 static enum ndr_err_code ndr_push_spoolss_DeviceModeICMMethod(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeICMMethod r)
1248 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
1249 return NDR_ERR_SUCCESS;
1252 static enum ndr_err_code ndr_pull_spoolss_DeviceModeICMMethod(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeICMMethod *r)
1254 uint32_t v;
1255 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1256 *r = v;
1257 return NDR_ERR_SUCCESS;
1260 _PUBLIC_ void ndr_print_spoolss_DeviceModeICMMethod(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeICMMethod r)
1262 const char *val = NULL;
1264 switch (r) {
1265 case DMICMMETHOD_NONE: val = "DMICMMETHOD_NONE"; break;
1266 case DMICMMETHOD_SYSTEM: val = "DMICMMETHOD_SYSTEM"; break;
1267 case DMICMMETHOD_DRIVER: val = "DMICMMETHOD_DRIVER"; break;
1268 case DMICMMETHOD_DEVICE: val = "DMICMMETHOD_DEVICE"; break;
1270 ndr_print_enum(ndr, name, "ENUM", val, r);
1273 static enum ndr_err_code ndr_push_spoolss_DeviceModeICMIntent(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeICMIntent r)
1275 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
1276 return NDR_ERR_SUCCESS;
1279 static enum ndr_err_code ndr_pull_spoolss_DeviceModeICMIntent(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeICMIntent *r)
1281 uint32_t v;
1282 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1283 *r = v;
1284 return NDR_ERR_SUCCESS;
1287 _PUBLIC_ void ndr_print_spoolss_DeviceModeICMIntent(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeICMIntent r)
1289 const char *val = NULL;
1291 switch (r) {
1292 case DMICM_SATURATE: val = "DMICM_SATURATE"; break;
1293 case DMICM_CONTRAST: val = "DMICM_CONTRAST"; break;
1294 case DMICM_COLORIMETRIC: val = "DMICM_COLORIMETRIC"; break;
1295 case DMICM_ABS_COLORIMETRIC: val = "DMICM_ABS_COLORIMETRIC"; break;
1297 ndr_print_enum(ndr, name, "ENUM", val, r);
1300 static enum ndr_err_code ndr_push_spoolss_DeviceModeMediaType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeMediaType r)
1302 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
1303 return NDR_ERR_SUCCESS;
1306 static enum ndr_err_code ndr_pull_spoolss_DeviceModeMediaType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeMediaType *r)
1308 uint32_t v;
1309 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1310 *r = v;
1311 return NDR_ERR_SUCCESS;
1314 _PUBLIC_ void ndr_print_spoolss_DeviceModeMediaType(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeMediaType r)
1316 const char *val = NULL;
1318 switch (r) {
1319 case DMMEDIA_STANDARD: val = "DMMEDIA_STANDARD"; break;
1320 case DMMEDIA_TRANSPARENCY: val = "DMMEDIA_TRANSPARENCY"; break;
1321 case DMMEDIA_GLOSSY: val = "DMMEDIA_GLOSSY"; break;
1323 ndr_print_enum(ndr, name, "ENUM", val, r);
1326 static enum ndr_err_code ndr_push_spoolss_DeviceModeDitherType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeDitherType r)
1328 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
1329 return NDR_ERR_SUCCESS;
1332 static enum ndr_err_code ndr_pull_spoolss_DeviceModeDitherType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeDitherType *r)
1334 uint32_t v;
1335 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1336 *r = v;
1337 return NDR_ERR_SUCCESS;
1340 _PUBLIC_ void ndr_print_spoolss_DeviceModeDitherType(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDitherType r)
1342 const char *val = NULL;
1344 switch (r) {
1345 case DMDITHER_NONE: val = "DMDITHER_NONE"; break;
1346 case DMDITHER_COARSE: val = "DMDITHER_COARSE"; break;
1347 case DMDITHER_FINE: val = "DMDITHER_FINE"; break;
1348 case DMDITHER_LINEART: val = "DMDITHER_LINEART"; break;
1349 case DMDITHER_ERRORDIFFUSION: val = "DMDITHER_ERRORDIFFUSION"; break;
1350 case DMDITHER_RESERVED6: val = "DMDITHER_RESERVED6"; break;
1351 case DMDITHER_RESERVED7: val = "DMDITHER_RESERVED7"; break;
1352 case DMDITHER_RESERVED8: val = "DMDITHER_RESERVED8"; break;
1353 case DMDITHER_RESERVED9: val = "DMDITHER_RESERVED9"; break;
1354 case DMDITHER_GRAYSCALE: val = "DMDITHER_GRAYSCALE"; break;
1356 ndr_print_enum(ndr, name, "ENUM", val, r);
1359 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeviceMode(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceMode *r)
1361 if (ndr_flags & NDR_SCALARS) {
1362 NDR_CHECK(ndr_push_align(ndr, 4));
1363 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->devicename, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1364 NDR_CHECK(ndr_push_spoolss_DeviceModeSpecVersion(ndr, NDR_SCALARS, r->specversion));
1365 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverversion));
1366 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
1367 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverextra_data.length));
1368 NDR_CHECK(ndr_push_spoolss_DeviceModeFields(ndr, NDR_SCALARS, r->fields));
1369 NDR_CHECK(ndr_push_spoolss_DeviceModeOrientation(ndr, NDR_SCALARS, r->orientation));
1370 NDR_CHECK(ndr_push_spoolss_DeviceModePaperSize(ndr, NDR_SCALARS, r->papersize));
1371 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperlength));
1372 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperwidth));
1373 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->scale));
1374 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->copies));
1375 NDR_CHECK(ndr_push_spoolss_DeviceModeDefaultSource(ndr, NDR_SCALARS, r->defaultsource));
1376 NDR_CHECK(ndr_push_spoolss_DeviceModePrintQuality(ndr, NDR_SCALARS, r->printquality));
1377 NDR_CHECK(ndr_push_spoolss_DeviceModeColor(ndr, NDR_SCALARS, r->color));
1378 NDR_CHECK(ndr_push_spoolss_DeviceModeDuplex(ndr, NDR_SCALARS, r->duplex));
1379 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->yresolution));
1380 NDR_CHECK(ndr_push_spoolss_DeviceModeTTOption(ndr, NDR_SCALARS, r->ttoption));
1381 NDR_CHECK(ndr_push_spoolss_DeviceModeCollate(ndr, NDR_SCALARS, r->collate));
1382 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1383 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logpixels));
1384 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bitsperpel));
1385 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelswidth));
1386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelsheight));
1387 NDR_CHECK(ndr_push_spoolss_DeviceModeNUp(ndr, NDR_SCALARS, r->displayflags));
1388 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayfrequency));
1389 NDR_CHECK(ndr_push_spoolss_DeviceModeICMMethod(ndr, NDR_SCALARS, r->icmmethod));
1390 NDR_CHECK(ndr_push_spoolss_DeviceModeICMIntent(ndr, NDR_SCALARS, r->icmintent));
1391 NDR_CHECK(ndr_push_spoolss_DeviceModeMediaType(ndr, NDR_SCALARS, r->mediatype));
1392 NDR_CHECK(ndr_push_spoolss_DeviceModeDitherType(ndr, NDR_SCALARS, r->dithertype));
1393 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved1));
1394 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
1395 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningwidth));
1396 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningheight));
1398 uint32_t _flags_save_DATA_BLOB = ndr->flags;
1399 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1401 struct ndr_push *_ndr_driverextra_data;
1402 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->driverextra_data.length));
1403 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, r->driverextra_data));
1404 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_driverextra_data, 0, r->driverextra_data.length));
1406 ndr->flags = _flags_save_DATA_BLOB;
1408 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1410 if (ndr_flags & NDR_BUFFERS) {
1412 return NDR_ERR_SUCCESS;
1415 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeviceMode(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceMode *r)
1417 if (ndr_flags & NDR_SCALARS) {
1418 NDR_CHECK(ndr_pull_align(ndr, 4));
1419 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->devicename, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1420 NDR_CHECK(ndr_pull_spoolss_DeviceModeSpecVersion(ndr, NDR_SCALARS, &r->specversion));
1421 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->driverversion));
1422 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
1423 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->__driverextra_length));
1424 NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr, NDR_SCALARS, &r->fields));
1425 NDR_CHECK(ndr_pull_spoolss_DeviceModeOrientation(ndr, NDR_SCALARS, &r->orientation));
1426 NDR_CHECK(ndr_pull_spoolss_DeviceModePaperSize(ndr, NDR_SCALARS, &r->papersize));
1427 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperlength));
1428 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperwidth));
1429 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->scale));
1430 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->copies));
1431 NDR_CHECK(ndr_pull_spoolss_DeviceModeDefaultSource(ndr, NDR_SCALARS, &r->defaultsource));
1432 NDR_CHECK(ndr_pull_spoolss_DeviceModePrintQuality(ndr, NDR_SCALARS, &r->printquality));
1433 NDR_CHECK(ndr_pull_spoolss_DeviceModeColor(ndr, NDR_SCALARS, &r->color));
1434 NDR_CHECK(ndr_pull_spoolss_DeviceModeDuplex(ndr, NDR_SCALARS, &r->duplex));
1435 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->yresolution));
1436 NDR_CHECK(ndr_pull_spoolss_DeviceModeTTOption(ndr, NDR_SCALARS, &r->ttoption));
1437 NDR_CHECK(ndr_pull_spoolss_DeviceModeCollate(ndr, NDR_SCALARS, &r->collate));
1438 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1439 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logpixels));
1440 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bitsperpel));
1441 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelswidth));
1442 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelsheight));
1443 NDR_CHECK(ndr_pull_spoolss_DeviceModeNUp(ndr, NDR_SCALARS, &r->displayflags));
1444 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayfrequency));
1445 NDR_CHECK(ndr_pull_spoolss_DeviceModeICMMethod(ndr, NDR_SCALARS, &r->icmmethod));
1446 NDR_CHECK(ndr_pull_spoolss_DeviceModeICMIntent(ndr, NDR_SCALARS, &r->icmintent));
1447 NDR_CHECK(ndr_pull_spoolss_DeviceModeMediaType(ndr, NDR_SCALARS, &r->mediatype));
1448 NDR_CHECK(ndr_pull_spoolss_DeviceModeDitherType(ndr, NDR_SCALARS, &r->dithertype));
1449 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
1450 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
1451 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningwidth));
1452 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningheight));
1454 uint32_t _flags_save_DATA_BLOB = ndr->flags;
1455 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1457 struct ndr_pull *_ndr_driverextra_data;
1458 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->__driverextra_length));
1459 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, &r->driverextra_data));
1460 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_driverextra_data, 0, r->__driverextra_length));
1462 ndr->flags = _flags_save_DATA_BLOB;
1464 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1466 if (ndr_flags & NDR_BUFFERS) {
1468 return NDR_ERR_SUCCESS;
1471 _PUBLIC_ void ndr_print_spoolss_DeviceMode(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceMode *r)
1473 ndr_print_struct(ndr, name, "spoolss_DeviceMode");
1474 ndr->depth++;
1475 ndr_print_string(ndr, "devicename", r->devicename);
1476 ndr_print_spoolss_DeviceModeSpecVersion(ndr, "specversion", r->specversion);
1477 ndr_print_uint16(ndr, "driverversion", r->driverversion);
1478 ndr_print_uint16(ndr, "size", r->size);
1479 ndr_print_uint16(ndr, "__driverextra_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->driverextra_data.length:r->__driverextra_length);
1480 ndr_print_spoolss_DeviceModeFields(ndr, "fields", r->fields);
1481 ndr_print_spoolss_DeviceModeOrientation(ndr, "orientation", r->orientation);
1482 ndr_print_spoolss_DeviceModePaperSize(ndr, "papersize", r->papersize);
1483 ndr_print_uint16(ndr, "paperlength", r->paperlength);
1484 ndr_print_uint16(ndr, "paperwidth", r->paperwidth);
1485 ndr_print_uint16(ndr, "scale", r->scale);
1486 ndr_print_uint16(ndr, "copies", r->copies);
1487 ndr_print_spoolss_DeviceModeDefaultSource(ndr, "defaultsource", r->defaultsource);
1488 ndr_print_spoolss_DeviceModePrintQuality(ndr, "printquality", r->printquality);
1489 ndr_print_spoolss_DeviceModeColor(ndr, "color", r->color);
1490 ndr_print_spoolss_DeviceModeDuplex(ndr, "duplex", r->duplex);
1491 ndr_print_uint16(ndr, "yresolution", r->yresolution);
1492 ndr_print_spoolss_DeviceModeTTOption(ndr, "ttoption", r->ttoption);
1493 ndr_print_spoolss_DeviceModeCollate(ndr, "collate", r->collate);
1494 ndr_print_string(ndr, "formname", r->formname);
1495 ndr_print_uint16(ndr, "logpixels", r->logpixels);
1496 ndr_print_uint32(ndr, "bitsperpel", r->bitsperpel);
1497 ndr_print_uint32(ndr, "pelswidth", r->pelswidth);
1498 ndr_print_uint32(ndr, "pelsheight", r->pelsheight);
1499 ndr_print_spoolss_DeviceModeNUp(ndr, "displayflags", r->displayflags);
1500 ndr_print_uint32(ndr, "displayfrequency", r->displayfrequency);
1501 ndr_print_spoolss_DeviceModeICMMethod(ndr, "icmmethod", r->icmmethod);
1502 ndr_print_spoolss_DeviceModeICMIntent(ndr, "icmintent", r->icmintent);
1503 ndr_print_spoolss_DeviceModeMediaType(ndr, "mediatype", r->mediatype);
1504 ndr_print_spoolss_DeviceModeDitherType(ndr, "dithertype", r->dithertype);
1505 ndr_print_uint32(ndr, "reserved1", r->reserved1);
1506 ndr_print_uint32(ndr, "reserved2", r->reserved2);
1507 ndr_print_uint32(ndr, "panningwidth", r->panningwidth);
1508 ndr_print_uint32(ndr, "panningheight", r->panningheight);
1509 ndr_print_DATA_BLOB(ndr, "driverextra_data", r->driverextra_data);
1510 ndr->depth--;
1513 _PUBLIC_ size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode *r, struct smb_iconv_convenience *ic, int flags)
1515 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DeviceMode, ic);
1518 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1520 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1521 return NDR_ERR_SUCCESS;
1524 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1526 uint32_t v;
1527 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1528 *r = v;
1529 return NDR_ERR_SUCCESS;
1532 _PUBLIC_ void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print *ndr, const char *name, uint32_t r)
1534 ndr_print_uint32(ndr, name, r);
1535 ndr->depth++;
1536 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT, r);
1537 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL, r);
1538 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS, r);
1539 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE, r);
1540 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME, r);
1541 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE, r);
1542 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED, r);
1543 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK, r);
1544 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND, r);
1545 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER, r);
1546 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1, r);
1547 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2, r);
1548 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3, r);
1549 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4, r);
1550 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5, r);
1551 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6, r);
1552 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7, r);
1553 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8, r);
1554 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE, r);
1555 ndr->depth--;
1558 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1560 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1561 return NDR_ERR_SUCCESS;
1564 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1566 uint32_t v;
1567 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1568 *r = v;
1569 return NDR_ERR_SUCCESS;
1572 _PUBLIC_ void ndr_print_spoolss_PrinterAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
1574 ndr_print_uint32(ndr, name, r);
1575 ndr->depth++;
1576 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED, r);
1577 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT, r);
1578 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT, r);
1579 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED, r);
1580 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK, r);
1581 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN, r);
1582 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL, r);
1583 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ, r);
1584 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS, r);
1585 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST, r);
1586 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE, r);
1587 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI, r);
1588 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY, r);
1589 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED, r);
1590 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX, r);
1591 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS, r);
1592 ndr->depth--;
1595 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo1 *r)
1597 if (ndr_flags & NDR_SCALARS) {
1598 NDR_CHECK(ndr_push_align(ndr, 5));
1599 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->flags));
1601 uint32_t _flags_save_string = ndr->flags;
1602 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1603 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
1604 ndr->flags = _flags_save_string;
1607 uint32_t _flags_save_string = ndr->flags;
1608 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1609 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name));
1610 ndr->flags = _flags_save_string;
1613 uint32_t _flags_save_string = ndr->flags;
1614 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1615 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
1616 ndr->flags = _flags_save_string;
1618 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1620 if (ndr_flags & NDR_BUFFERS) {
1622 uint32_t _flags_save_string = ndr->flags;
1623 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1624 if (r->description) {
1625 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->description));
1626 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
1627 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->description));
1629 ndr->flags = _flags_save_string;
1632 uint32_t _flags_save_string = ndr->flags;
1633 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1634 if (r->name) {
1635 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->name));
1636 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name));
1637 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->name));
1639 ndr->flags = _flags_save_string;
1642 uint32_t _flags_save_string = ndr->flags;
1643 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1644 if (r->comment) {
1645 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->comment));
1646 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
1647 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->comment));
1649 ndr->flags = _flags_save_string;
1652 return NDR_ERR_SUCCESS;
1655 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo1 *r)
1657 uint32_t _ptr_description;
1658 TALLOC_CTX *_mem_save_description_0;
1659 uint32_t _ptr_name;
1660 TALLOC_CTX *_mem_save_name_0;
1661 uint32_t _ptr_comment;
1662 TALLOC_CTX *_mem_save_comment_0;
1663 if (ndr_flags & NDR_SCALARS) {
1664 NDR_CHECK(ndr_pull_align(ndr, 5));
1665 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->flags));
1667 uint32_t _flags_save_string = ndr->flags;
1668 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1669 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
1670 if (_ptr_description) {
1671 NDR_PULL_ALLOC(ndr, r->description);
1672 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
1673 } else {
1674 r->description = NULL;
1676 ndr->flags = _flags_save_string;
1679 uint32_t _flags_save_string = ndr->flags;
1680 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1681 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
1682 if (_ptr_name) {
1683 NDR_PULL_ALLOC(ndr, r->name);
1684 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name, _ptr_name));
1685 } else {
1686 r->name = NULL;
1688 ndr->flags = _flags_save_string;
1691 uint32_t _flags_save_string = ndr->flags;
1692 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1693 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1694 if (_ptr_comment) {
1695 NDR_PULL_ALLOC(ndr, r->comment);
1696 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1697 } else {
1698 r->comment = NULL;
1700 ndr->flags = _flags_save_string;
1702 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1704 if (ndr_flags & NDR_BUFFERS) {
1706 uint32_t _flags_save_string = ndr->flags;
1707 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1708 if (r->description) {
1709 uint32_t _relative_save_offset;
1710 _relative_save_offset = ndr->offset;
1711 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
1712 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
1713 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
1714 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
1715 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
1716 if (ndr->offset > ndr->relative_highest_offset) {
1717 ndr->relative_highest_offset = ndr->offset;
1719 ndr->offset = _relative_save_offset;
1721 ndr->flags = _flags_save_string;
1724 uint32_t _flags_save_string = ndr->flags;
1725 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1726 if (r->name) {
1727 uint32_t _relative_save_offset;
1728 _relative_save_offset = ndr->offset;
1729 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name));
1730 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1731 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
1732 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name));
1733 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
1734 if (ndr->offset > ndr->relative_highest_offset) {
1735 ndr->relative_highest_offset = ndr->offset;
1737 ndr->offset = _relative_save_offset;
1739 ndr->flags = _flags_save_string;
1742 uint32_t _flags_save_string = ndr->flags;
1743 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1744 if (r->comment) {
1745 uint32_t _relative_save_offset;
1746 _relative_save_offset = ndr->offset;
1747 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
1748 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
1749 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
1750 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
1751 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
1752 if (ndr->offset > ndr->relative_highest_offset) {
1753 ndr->relative_highest_offset = ndr->offset;
1755 ndr->offset = _relative_save_offset;
1757 ndr->flags = _flags_save_string;
1760 return NDR_ERR_SUCCESS;
1763 _PUBLIC_ void ndr_print_spoolss_PrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo1 *r)
1765 ndr_print_struct(ndr, name, "spoolss_PrinterInfo1");
1766 ndr->depth++;
1767 ndr_print_spoolss_PrinterAttributes(ndr, "flags", r->flags);
1768 ndr_print_ptr(ndr, "description", r->description);
1769 ndr->depth++;
1770 if (r->description) {
1771 ndr_print_string(ndr, "description", r->description);
1773 ndr->depth--;
1774 ndr_print_ptr(ndr, "name", r->name);
1775 ndr->depth++;
1776 if (r->name) {
1777 ndr_print_string(ndr, "name", r->name);
1779 ndr->depth--;
1780 ndr_print_ptr(ndr, "comment", r->comment);
1781 ndr->depth++;
1782 if (r->comment) {
1783 ndr_print_string(ndr, "comment", r->comment);
1785 ndr->depth--;
1786 ndr->depth--;
1789 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo1(const struct spoolss_PrinterInfo1 *r, struct smb_iconv_convenience *ic, int flags)
1791 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo1, ic);
1794 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo2 *r)
1796 uint32_t _ptr_servername;
1797 TALLOC_CTX *_mem_save_servername_0;
1798 uint32_t _ptr_printername;
1799 TALLOC_CTX *_mem_save_printername_0;
1800 uint32_t _ptr_sharename;
1801 TALLOC_CTX *_mem_save_sharename_0;
1802 uint32_t _ptr_portname;
1803 TALLOC_CTX *_mem_save_portname_0;
1804 uint32_t _ptr_drivername;
1805 TALLOC_CTX *_mem_save_drivername_0;
1806 uint32_t _ptr_comment;
1807 TALLOC_CTX *_mem_save_comment_0;
1808 uint32_t _ptr_location;
1809 TALLOC_CTX *_mem_save_location_0;
1810 uint32_t _ptr_devmode;
1811 TALLOC_CTX *_mem_save_devmode_0;
1812 uint32_t _ptr_sepfile;
1813 TALLOC_CTX *_mem_save_sepfile_0;
1814 uint32_t _ptr_printprocessor;
1815 TALLOC_CTX *_mem_save_printprocessor_0;
1816 uint32_t _ptr_datatype;
1817 TALLOC_CTX *_mem_save_datatype_0;
1818 uint32_t _ptr_parameters;
1819 TALLOC_CTX *_mem_save_parameters_0;
1820 uint32_t _ptr_secdesc;
1821 TALLOC_CTX *_mem_save_secdesc_0;
1822 if (ndr_flags & NDR_SCALARS) {
1823 NDR_CHECK(ndr_pull_align(ndr, 5));
1825 uint32_t _flags_save_string = ndr->flags;
1826 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1827 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1828 if (_ptr_servername) {
1829 NDR_PULL_ALLOC(ndr, r->servername);
1830 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1831 } else {
1832 r->servername = NULL;
1834 ndr->flags = _flags_save_string;
1837 uint32_t _flags_save_string = ndr->flags;
1838 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1839 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1840 if (_ptr_printername) {
1841 NDR_PULL_ALLOC(ndr, r->printername);
1842 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1843 } else {
1844 r->printername = NULL;
1846 ndr->flags = _flags_save_string;
1849 uint32_t _flags_save_string = ndr->flags;
1850 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1851 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
1852 if (_ptr_sharename) {
1853 NDR_PULL_ALLOC(ndr, r->sharename);
1854 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sharename, _ptr_sharename));
1855 } else {
1856 r->sharename = NULL;
1858 ndr->flags = _flags_save_string;
1861 uint32_t _flags_save_string = ndr->flags;
1862 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1863 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1864 if (_ptr_portname) {
1865 NDR_PULL_ALLOC(ndr, r->portname);
1866 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1867 } else {
1868 r->portname = NULL;
1870 ndr->flags = _flags_save_string;
1873 uint32_t _flags_save_string = ndr->flags;
1874 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1875 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
1876 if (_ptr_drivername) {
1877 NDR_PULL_ALLOC(ndr, r->drivername);
1878 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->drivername, _ptr_drivername));
1879 } else {
1880 r->drivername = NULL;
1882 ndr->flags = _flags_save_string;
1885 uint32_t _flags_save_string = ndr->flags;
1886 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1887 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1888 if (_ptr_comment) {
1889 NDR_PULL_ALLOC(ndr, r->comment);
1890 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1891 } else {
1892 r->comment = NULL;
1894 ndr->flags = _flags_save_string;
1897 uint32_t _flags_save_string = ndr->flags;
1898 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1899 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
1900 if (_ptr_location) {
1901 NDR_PULL_ALLOC(ndr, r->location);
1902 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->location, _ptr_location));
1903 } else {
1904 r->location = NULL;
1906 ndr->flags = _flags_save_string;
1909 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
1910 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1911 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
1912 if (_ptr_devmode) {
1913 NDR_PULL_ALLOC(ndr, r->devmode);
1914 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
1915 } else {
1916 r->devmode = NULL;
1918 ndr->flags = _flags_save_spoolss_DeviceMode;
1921 uint32_t _flags_save_string = ndr->flags;
1922 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1923 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
1924 if (_ptr_sepfile) {
1925 NDR_PULL_ALLOC(ndr, r->sepfile);
1926 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sepfile, _ptr_sepfile));
1927 } else {
1928 r->sepfile = NULL;
1930 ndr->flags = _flags_save_string;
1933 uint32_t _flags_save_string = ndr->flags;
1934 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1935 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
1936 if (_ptr_printprocessor) {
1937 NDR_PULL_ALLOC(ndr, r->printprocessor);
1938 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printprocessor, _ptr_printprocessor));
1939 } else {
1940 r->printprocessor = NULL;
1942 ndr->flags = _flags_save_string;
1945 uint32_t _flags_save_string = ndr->flags;
1946 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1947 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
1948 if (_ptr_datatype) {
1949 NDR_PULL_ALLOC(ndr, r->datatype);
1950 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->datatype, _ptr_datatype));
1951 } else {
1952 r->datatype = NULL;
1954 ndr->flags = _flags_save_string;
1957 uint32_t _flags_save_string = ndr->flags;
1958 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1959 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
1960 if (_ptr_parameters) {
1961 NDR_PULL_ALLOC(ndr, r->parameters);
1962 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
1963 } else {
1964 r->parameters = NULL;
1966 ndr->flags = _flags_save_string;
1969 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
1970 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1971 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1972 if (_ptr_secdesc) {
1973 NDR_PULL_ALLOC(ndr, r->secdesc);
1974 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1975 } else {
1976 r->secdesc = NULL;
1978 ndr->flags = _flags_save_spoolss_security_descriptor;
1980 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1981 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
1982 if (r->priority > 99) {
1983 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
1985 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
1986 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
1987 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
1988 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
1989 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
1990 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
1991 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1993 if (ndr_flags & NDR_BUFFERS) {
1995 uint32_t _flags_save_string = ndr->flags;
1996 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1997 if (r->servername) {
1998 uint32_t _relative_save_offset;
1999 _relative_save_offset = ndr->offset;
2000 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
2001 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2002 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
2003 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
2004 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
2005 if (ndr->offset > ndr->relative_highest_offset) {
2006 ndr->relative_highest_offset = ndr->offset;
2008 ndr->offset = _relative_save_offset;
2010 ndr->flags = _flags_save_string;
2013 uint32_t _flags_save_string = ndr->flags;
2014 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2015 if (r->printername) {
2016 uint32_t _relative_save_offset;
2017 _relative_save_offset = ndr->offset;
2018 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
2019 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2020 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
2021 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
2022 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
2023 if (ndr->offset > ndr->relative_highest_offset) {
2024 ndr->relative_highest_offset = ndr->offset;
2026 ndr->offset = _relative_save_offset;
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 if (r->sharename) {
2034 uint32_t _relative_save_offset;
2035 _relative_save_offset = ndr->offset;
2036 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sharename));
2037 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
2038 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
2039 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sharename));
2040 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
2041 if (ndr->offset > ndr->relative_highest_offset) {
2042 ndr->relative_highest_offset = ndr->offset;
2044 ndr->offset = _relative_save_offset;
2046 ndr->flags = _flags_save_string;
2049 uint32_t _flags_save_string = ndr->flags;
2050 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2051 if (r->portname) {
2052 uint32_t _relative_save_offset;
2053 _relative_save_offset = ndr->offset;
2054 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
2055 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2056 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
2057 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
2058 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
2059 if (ndr->offset > ndr->relative_highest_offset) {
2060 ndr->relative_highest_offset = ndr->offset;
2062 ndr->offset = _relative_save_offset;
2064 ndr->flags = _flags_save_string;
2067 uint32_t _flags_save_string = ndr->flags;
2068 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2069 if (r->drivername) {
2070 uint32_t _relative_save_offset;
2071 _relative_save_offset = ndr->offset;
2072 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->drivername));
2073 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2074 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
2075 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->drivername));
2076 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
2077 if (ndr->offset > ndr->relative_highest_offset) {
2078 ndr->relative_highest_offset = ndr->offset;
2080 ndr->offset = _relative_save_offset;
2082 ndr->flags = _flags_save_string;
2085 uint32_t _flags_save_string = ndr->flags;
2086 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2087 if (r->comment) {
2088 uint32_t _relative_save_offset;
2089 _relative_save_offset = ndr->offset;
2090 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
2091 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
2092 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
2093 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
2094 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
2095 if (ndr->offset > ndr->relative_highest_offset) {
2096 ndr->relative_highest_offset = ndr->offset;
2098 ndr->offset = _relative_save_offset;
2100 ndr->flags = _flags_save_string;
2103 uint32_t _flags_save_string = ndr->flags;
2104 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2105 if (r->location) {
2106 uint32_t _relative_save_offset;
2107 _relative_save_offset = ndr->offset;
2108 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->location));
2109 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
2110 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
2111 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->location));
2112 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
2113 if (ndr->offset > ndr->relative_highest_offset) {
2114 ndr->relative_highest_offset = ndr->offset;
2116 ndr->offset = _relative_save_offset;
2118 ndr->flags = _flags_save_string;
2121 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2122 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2123 if (r->devmode) {
2124 uint32_t _relative_save_offset;
2125 _relative_save_offset = ndr->offset;
2126 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
2127 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2128 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2130 struct ndr_pull *_ndr_devmode;
2131 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2132 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2133 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
2135 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2136 if (ndr->offset > ndr->relative_highest_offset) {
2137 ndr->relative_highest_offset = ndr->offset;
2139 ndr->offset = _relative_save_offset;
2141 ndr->flags = _flags_save_spoolss_DeviceMode;
2144 uint32_t _flags_save_string = ndr->flags;
2145 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2146 if (r->sepfile) {
2147 uint32_t _relative_save_offset;
2148 _relative_save_offset = ndr->offset;
2149 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sepfile));
2150 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
2151 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
2152 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sepfile));
2153 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
2154 if (ndr->offset > ndr->relative_highest_offset) {
2155 ndr->relative_highest_offset = ndr->offset;
2157 ndr->offset = _relative_save_offset;
2159 ndr->flags = _flags_save_string;
2162 uint32_t _flags_save_string = ndr->flags;
2163 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2164 if (r->printprocessor) {
2165 uint32_t _relative_save_offset;
2166 _relative_save_offset = ndr->offset;
2167 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printprocessor));
2168 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
2169 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
2170 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printprocessor));
2171 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
2172 if (ndr->offset > ndr->relative_highest_offset) {
2173 ndr->relative_highest_offset = ndr->offset;
2175 ndr->offset = _relative_save_offset;
2177 ndr->flags = _flags_save_string;
2180 uint32_t _flags_save_string = ndr->flags;
2181 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2182 if (r->datatype) {
2183 uint32_t _relative_save_offset;
2184 _relative_save_offset = ndr->offset;
2185 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->datatype));
2186 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
2187 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
2188 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->datatype));
2189 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
2190 if (ndr->offset > ndr->relative_highest_offset) {
2191 ndr->relative_highest_offset = ndr->offset;
2193 ndr->offset = _relative_save_offset;
2195 ndr->flags = _flags_save_string;
2198 uint32_t _flags_save_string = ndr->flags;
2199 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2200 if (r->parameters) {
2201 uint32_t _relative_save_offset;
2202 _relative_save_offset = ndr->offset;
2203 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
2204 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
2205 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
2206 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
2207 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
2208 if (ndr->offset > ndr->relative_highest_offset) {
2209 ndr->relative_highest_offset = ndr->offset;
2211 ndr->offset = _relative_save_offset;
2213 ndr->flags = _flags_save_string;
2216 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
2217 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2218 if (r->secdesc) {
2219 uint32_t _relative_save_offset;
2220 _relative_save_offset = ndr->offset;
2221 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
2222 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
2223 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
2225 struct ndr_pull *_ndr_secdesc;
2226 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
2227 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2228 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
2230 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
2231 if (ndr->offset > ndr->relative_highest_offset) {
2232 ndr->relative_highest_offset = ndr->offset;
2234 ndr->offset = _relative_save_offset;
2236 ndr->flags = _flags_save_spoolss_security_descriptor;
2239 return NDR_ERR_SUCCESS;
2242 _PUBLIC_ void ndr_print_spoolss_PrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo2 *r)
2244 ndr_print_struct(ndr, name, "spoolss_PrinterInfo2");
2245 ndr->depth++;
2246 ndr_print_ptr(ndr, "servername", r->servername);
2247 ndr->depth++;
2248 if (r->servername) {
2249 ndr_print_string(ndr, "servername", r->servername);
2251 ndr->depth--;
2252 ndr_print_ptr(ndr, "printername", r->printername);
2253 ndr->depth++;
2254 if (r->printername) {
2255 ndr_print_string(ndr, "printername", r->printername);
2257 ndr->depth--;
2258 ndr_print_ptr(ndr, "sharename", r->sharename);
2259 ndr->depth++;
2260 if (r->sharename) {
2261 ndr_print_string(ndr, "sharename", r->sharename);
2263 ndr->depth--;
2264 ndr_print_ptr(ndr, "portname", r->portname);
2265 ndr->depth++;
2266 if (r->portname) {
2267 ndr_print_string(ndr, "portname", r->portname);
2269 ndr->depth--;
2270 ndr_print_ptr(ndr, "drivername", r->drivername);
2271 ndr->depth++;
2272 if (r->drivername) {
2273 ndr_print_string(ndr, "drivername", r->drivername);
2275 ndr->depth--;
2276 ndr_print_ptr(ndr, "comment", r->comment);
2277 ndr->depth++;
2278 if (r->comment) {
2279 ndr_print_string(ndr, "comment", r->comment);
2281 ndr->depth--;
2282 ndr_print_ptr(ndr, "location", r->location);
2283 ndr->depth++;
2284 if (r->location) {
2285 ndr_print_string(ndr, "location", r->location);
2287 ndr->depth--;
2288 ndr_print_ptr(ndr, "devmode", r->devmode);
2289 ndr->depth++;
2290 if (r->devmode) {
2291 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2293 ndr->depth--;
2294 ndr_print_ptr(ndr, "sepfile", r->sepfile);
2295 ndr->depth++;
2296 if (r->sepfile) {
2297 ndr_print_string(ndr, "sepfile", r->sepfile);
2299 ndr->depth--;
2300 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
2301 ndr->depth++;
2302 if (r->printprocessor) {
2303 ndr_print_string(ndr, "printprocessor", r->printprocessor);
2305 ndr->depth--;
2306 ndr_print_ptr(ndr, "datatype", r->datatype);
2307 ndr->depth++;
2308 if (r->datatype) {
2309 ndr_print_string(ndr, "datatype", r->datatype);
2311 ndr->depth--;
2312 ndr_print_ptr(ndr, "parameters", r->parameters);
2313 ndr->depth++;
2314 if (r->parameters) {
2315 ndr_print_string(ndr, "parameters", r->parameters);
2317 ndr->depth--;
2318 ndr_print_ptr(ndr, "secdesc", r->secdesc);
2319 ndr->depth++;
2320 if (r->secdesc) {
2321 ndr_print_spoolss_security_descriptor(ndr, "secdesc", r->secdesc);
2323 ndr->depth--;
2324 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2325 ndr_print_uint32(ndr, "priority", r->priority);
2326 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
2327 ndr_print_uint32(ndr, "starttime", r->starttime);
2328 ndr_print_uint32(ndr, "untiltime", r->untiltime);
2329 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
2330 ndr_print_uint32(ndr, "cjobs", r->cjobs);
2331 ndr_print_uint32(ndr, "averageppm", r->averageppm);
2332 ndr->depth--;
2335 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo2(const struct spoolss_PrinterInfo2 *r, struct smb_iconv_convenience *ic, int flags)
2337 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo2, ic);
2340 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo3 *r)
2342 if (ndr_flags & NDR_SCALARS) {
2343 NDR_CHECK(ndr_push_align(ndr, 5));
2345 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
2346 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2347 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
2348 ndr->flags = _flags_save_spoolss_security_descriptor;
2350 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2352 if (ndr_flags & NDR_BUFFERS) {
2354 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
2355 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2356 if (r->secdesc) {
2357 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->secdesc));
2359 struct ndr_push *_ndr_secdesc;
2360 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
2361 NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2362 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
2364 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->secdesc));
2366 ndr->flags = _flags_save_spoolss_security_descriptor;
2369 return NDR_ERR_SUCCESS;
2372 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo3 *r)
2374 uint32_t _ptr_secdesc;
2375 TALLOC_CTX *_mem_save_secdesc_0;
2376 if (ndr_flags & NDR_SCALARS) {
2377 NDR_CHECK(ndr_pull_align(ndr, 5));
2379 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
2380 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2381 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
2382 if (_ptr_secdesc) {
2383 NDR_PULL_ALLOC(ndr, r->secdesc);
2384 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
2385 } else {
2386 r->secdesc = NULL;
2388 ndr->flags = _flags_save_spoolss_security_descriptor;
2390 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2392 if (ndr_flags & NDR_BUFFERS) {
2394 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
2395 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2396 if (r->secdesc) {
2397 uint32_t _relative_save_offset;
2398 _relative_save_offset = ndr->offset;
2399 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
2400 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
2401 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
2403 struct ndr_pull *_ndr_secdesc;
2404 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
2405 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2406 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
2408 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
2409 if (ndr->offset > ndr->relative_highest_offset) {
2410 ndr->relative_highest_offset = ndr->offset;
2412 ndr->offset = _relative_save_offset;
2414 ndr->flags = _flags_save_spoolss_security_descriptor;
2417 return NDR_ERR_SUCCESS;
2420 _PUBLIC_ void ndr_print_spoolss_PrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo3 *r)
2422 ndr_print_struct(ndr, name, "spoolss_PrinterInfo3");
2423 ndr->depth++;
2424 ndr_print_ptr(ndr, "secdesc", r->secdesc);
2425 ndr->depth++;
2426 if (r->secdesc) {
2427 ndr_print_spoolss_security_descriptor(ndr, "secdesc", r->secdesc);
2429 ndr->depth--;
2430 ndr->depth--;
2433 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo3(const struct spoolss_PrinterInfo3 *r, struct smb_iconv_convenience *ic, int flags)
2435 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo3, ic);
2438 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo4 *r)
2440 if (ndr_flags & NDR_SCALARS) {
2441 NDR_CHECK(ndr_push_align(ndr, 5));
2443 uint32_t _flags_save_string = ndr->flags;
2444 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2445 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
2446 ndr->flags = _flags_save_string;
2449 uint32_t _flags_save_string = ndr->flags;
2450 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2451 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
2452 ndr->flags = _flags_save_string;
2454 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
2455 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2457 if (ndr_flags & NDR_BUFFERS) {
2459 uint32_t _flags_save_string = ndr->flags;
2460 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2461 if (r->printername) {
2462 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printername));
2463 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
2464 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printername));
2466 ndr->flags = _flags_save_string;
2469 uint32_t _flags_save_string = ndr->flags;
2470 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2471 if (r->servername) {
2472 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->servername));
2473 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
2474 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->servername));
2476 ndr->flags = _flags_save_string;
2479 return NDR_ERR_SUCCESS;
2482 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo4 *r)
2484 uint32_t _ptr_printername;
2485 TALLOC_CTX *_mem_save_printername_0;
2486 uint32_t _ptr_servername;
2487 TALLOC_CTX *_mem_save_servername_0;
2488 if (ndr_flags & NDR_SCALARS) {
2489 NDR_CHECK(ndr_pull_align(ndr, 5));
2491 uint32_t _flags_save_string = ndr->flags;
2492 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2493 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
2494 if (_ptr_printername) {
2495 NDR_PULL_ALLOC(ndr, r->printername);
2496 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
2497 } else {
2498 r->printername = NULL;
2500 ndr->flags = _flags_save_string;
2503 uint32_t _flags_save_string = ndr->flags;
2504 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2505 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
2506 if (_ptr_servername) {
2507 NDR_PULL_ALLOC(ndr, r->servername);
2508 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
2509 } else {
2510 r->servername = NULL;
2512 ndr->flags = _flags_save_string;
2514 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
2515 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2517 if (ndr_flags & NDR_BUFFERS) {
2519 uint32_t _flags_save_string = ndr->flags;
2520 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2521 if (r->printername) {
2522 uint32_t _relative_save_offset;
2523 _relative_save_offset = ndr->offset;
2524 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
2525 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2526 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
2527 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
2528 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
2529 if (ndr->offset > ndr->relative_highest_offset) {
2530 ndr->relative_highest_offset = ndr->offset;
2532 ndr->offset = _relative_save_offset;
2534 ndr->flags = _flags_save_string;
2537 uint32_t _flags_save_string = ndr->flags;
2538 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2539 if (r->servername) {
2540 uint32_t _relative_save_offset;
2541 _relative_save_offset = ndr->offset;
2542 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
2543 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2544 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
2545 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
2546 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
2547 if (ndr->offset > ndr->relative_highest_offset) {
2548 ndr->relative_highest_offset = ndr->offset;
2550 ndr->offset = _relative_save_offset;
2552 ndr->flags = _flags_save_string;
2555 return NDR_ERR_SUCCESS;
2558 _PUBLIC_ void ndr_print_spoolss_PrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo4 *r)
2560 ndr_print_struct(ndr, name, "spoolss_PrinterInfo4");
2561 ndr->depth++;
2562 ndr_print_ptr(ndr, "printername", r->printername);
2563 ndr->depth++;
2564 if (r->printername) {
2565 ndr_print_string(ndr, "printername", r->printername);
2567 ndr->depth--;
2568 ndr_print_ptr(ndr, "servername", r->servername);
2569 ndr->depth++;
2570 if (r->servername) {
2571 ndr_print_string(ndr, "servername", r->servername);
2573 ndr->depth--;
2574 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2575 ndr->depth--;
2578 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo4(const struct spoolss_PrinterInfo4 *r, struct smb_iconv_convenience *ic, int flags)
2580 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo4, ic);
2583 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo5 *r)
2585 if (ndr_flags & NDR_SCALARS) {
2586 NDR_CHECK(ndr_push_align(ndr, 5));
2588 uint32_t _flags_save_string = ndr->flags;
2589 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2590 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
2591 ndr->flags = _flags_save_string;
2594 uint32_t _flags_save_string = ndr->flags;
2595 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2596 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
2597 ndr->flags = _flags_save_string;
2599 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
2600 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
2601 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
2602 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2604 if (ndr_flags & NDR_BUFFERS) {
2606 uint32_t _flags_save_string = ndr->flags;
2607 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2608 if (r->printername) {
2609 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printername));
2610 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
2611 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printername));
2613 ndr->flags = _flags_save_string;
2616 uint32_t _flags_save_string = ndr->flags;
2617 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2618 if (r->portname) {
2619 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->portname));
2620 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
2621 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->portname));
2623 ndr->flags = _flags_save_string;
2626 return NDR_ERR_SUCCESS;
2629 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo5 *r)
2631 uint32_t _ptr_printername;
2632 TALLOC_CTX *_mem_save_printername_0;
2633 uint32_t _ptr_portname;
2634 TALLOC_CTX *_mem_save_portname_0;
2635 if (ndr_flags & NDR_SCALARS) {
2636 NDR_CHECK(ndr_pull_align(ndr, 5));
2638 uint32_t _flags_save_string = ndr->flags;
2639 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2640 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
2641 if (_ptr_printername) {
2642 NDR_PULL_ALLOC(ndr, r->printername);
2643 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
2644 } else {
2645 r->printername = NULL;
2647 ndr->flags = _flags_save_string;
2650 uint32_t _flags_save_string = ndr->flags;
2651 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2652 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
2653 if (_ptr_portname) {
2654 NDR_PULL_ALLOC(ndr, r->portname);
2655 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
2656 } else {
2657 r->portname = NULL;
2659 ndr->flags = _flags_save_string;
2661 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
2662 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
2663 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
2664 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2666 if (ndr_flags & NDR_BUFFERS) {
2668 uint32_t _flags_save_string = ndr->flags;
2669 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2670 if (r->printername) {
2671 uint32_t _relative_save_offset;
2672 _relative_save_offset = ndr->offset;
2673 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
2674 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2675 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
2676 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
2677 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
2678 if (ndr->offset > ndr->relative_highest_offset) {
2679 ndr->relative_highest_offset = ndr->offset;
2681 ndr->offset = _relative_save_offset;
2683 ndr->flags = _flags_save_string;
2686 uint32_t _flags_save_string = ndr->flags;
2687 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2688 if (r->portname) {
2689 uint32_t _relative_save_offset;
2690 _relative_save_offset = ndr->offset;
2691 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
2692 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2693 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
2694 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
2695 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
2696 if (ndr->offset > ndr->relative_highest_offset) {
2697 ndr->relative_highest_offset = ndr->offset;
2699 ndr->offset = _relative_save_offset;
2701 ndr->flags = _flags_save_string;
2704 return NDR_ERR_SUCCESS;
2707 _PUBLIC_ void ndr_print_spoolss_PrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo5 *r)
2709 ndr_print_struct(ndr, name, "spoolss_PrinterInfo5");
2710 ndr->depth++;
2711 ndr_print_ptr(ndr, "printername", r->printername);
2712 ndr->depth++;
2713 if (r->printername) {
2714 ndr_print_string(ndr, "printername", r->printername);
2716 ndr->depth--;
2717 ndr_print_ptr(ndr, "portname", r->portname);
2718 ndr->depth++;
2719 if (r->portname) {
2720 ndr_print_string(ndr, "portname", r->portname);
2722 ndr->depth--;
2723 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2724 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
2725 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
2726 ndr->depth--;
2729 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo5(const struct spoolss_PrinterInfo5 *r, struct smb_iconv_convenience *ic, int flags)
2731 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo5, ic);
2734 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo6 *r)
2736 if (ndr_flags & NDR_SCALARS) {
2737 NDR_CHECK(ndr_push_align(ndr, 4));
2738 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
2739 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2741 if (ndr_flags & NDR_BUFFERS) {
2743 return NDR_ERR_SUCCESS;
2746 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo6 *r)
2748 if (ndr_flags & NDR_SCALARS) {
2749 NDR_CHECK(ndr_pull_align(ndr, 4));
2750 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
2751 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2753 if (ndr_flags & NDR_BUFFERS) {
2755 return NDR_ERR_SUCCESS;
2758 _PUBLIC_ void ndr_print_spoolss_PrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo6 *r)
2760 ndr_print_struct(ndr, name, "spoolss_PrinterInfo6");
2761 ndr->depth++;
2762 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
2763 ndr->depth--;
2766 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo6(const struct spoolss_PrinterInfo6 *r, struct smb_iconv_convenience *ic, int flags)
2768 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo6, ic);
2771 static enum ndr_err_code ndr_push_spoolss_DsPrintAction(struct ndr_push *ndr, int ndr_flags, uint32_t r)
2773 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
2774 return NDR_ERR_SUCCESS;
2777 static enum ndr_err_code ndr_pull_spoolss_DsPrintAction(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
2779 uint32_t v;
2780 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
2781 *r = v;
2782 return NDR_ERR_SUCCESS;
2785 _PUBLIC_ void ndr_print_spoolss_DsPrintAction(struct ndr_print *ndr, const char *name, uint32_t r)
2787 ndr_print_uint32(ndr, name, r);
2788 ndr->depth++;
2789 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH, r);
2790 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE, r);
2791 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH, r);
2792 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH, r);
2793 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING, r);
2794 ndr->depth--;
2797 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo7 *r)
2799 if (ndr_flags & NDR_SCALARS) {
2800 NDR_CHECK(ndr_push_align(ndr, 5));
2802 uint32_t _flags_save_string = ndr->flags;
2803 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2804 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->guid));
2805 ndr->flags = _flags_save_string;
2807 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
2808 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2810 if (ndr_flags & NDR_BUFFERS) {
2812 uint32_t _flags_save_string = ndr->flags;
2813 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2814 if (r->guid) {
2815 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->guid));
2816 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->guid));
2817 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->guid));
2819 ndr->flags = _flags_save_string;
2822 return NDR_ERR_SUCCESS;
2825 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo7 *r)
2827 uint32_t _ptr_guid;
2828 TALLOC_CTX *_mem_save_guid_0;
2829 if (ndr_flags & NDR_SCALARS) {
2830 NDR_CHECK(ndr_pull_align(ndr, 5));
2832 uint32_t _flags_save_string = ndr->flags;
2833 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2834 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
2835 if (_ptr_guid) {
2836 NDR_PULL_ALLOC(ndr, r->guid);
2837 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->guid, _ptr_guid));
2838 } else {
2839 r->guid = NULL;
2841 ndr->flags = _flags_save_string;
2843 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
2844 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2846 if (ndr_flags & NDR_BUFFERS) {
2848 uint32_t _flags_save_string = ndr->flags;
2849 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2850 if (r->guid) {
2851 uint32_t _relative_save_offset;
2852 _relative_save_offset = ndr->offset;
2853 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->guid));
2854 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
2855 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
2856 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->guid));
2857 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
2858 if (ndr->offset > ndr->relative_highest_offset) {
2859 ndr->relative_highest_offset = ndr->offset;
2861 ndr->offset = _relative_save_offset;
2863 ndr->flags = _flags_save_string;
2866 return NDR_ERR_SUCCESS;
2869 _PUBLIC_ void ndr_print_spoolss_PrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo7 *r)
2871 ndr_print_struct(ndr, name, "spoolss_PrinterInfo7");
2872 ndr->depth++;
2873 ndr_print_ptr(ndr, "guid", r->guid);
2874 ndr->depth++;
2875 if (r->guid) {
2876 ndr_print_string(ndr, "guid", r->guid);
2878 ndr->depth--;
2879 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
2880 ndr->depth--;
2883 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo7(const struct spoolss_PrinterInfo7 *r, struct smb_iconv_convenience *ic, int flags)
2885 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo7, ic);
2888 static enum ndr_err_code ndr_push_spoolss_DeviceModeInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceModeInfo *r)
2890 if (ndr_flags & NDR_SCALARS) {
2891 NDR_CHECK(ndr_push_align(ndr, 5));
2893 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2894 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2895 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
2896 ndr->flags = _flags_save_spoolss_DeviceMode;
2898 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2900 if (ndr_flags & NDR_BUFFERS) {
2902 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2903 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2904 if (r->devmode) {
2905 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->devmode));
2907 struct ndr_push *_ndr_devmode;
2908 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2909 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2910 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
2912 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->devmode));
2914 ndr->flags = _flags_save_spoolss_DeviceMode;
2917 return NDR_ERR_SUCCESS;
2920 static enum ndr_err_code ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceModeInfo *r)
2922 uint32_t _ptr_devmode;
2923 TALLOC_CTX *_mem_save_devmode_0;
2924 if (ndr_flags & NDR_SCALARS) {
2925 NDR_CHECK(ndr_pull_align(ndr, 5));
2927 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2928 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2929 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2930 if (_ptr_devmode) {
2931 NDR_PULL_ALLOC(ndr, r->devmode);
2932 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
2933 } else {
2934 r->devmode = NULL;
2936 ndr->flags = _flags_save_spoolss_DeviceMode;
2938 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2940 if (ndr_flags & NDR_BUFFERS) {
2942 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2943 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2944 if (r->devmode) {
2945 uint32_t _relative_save_offset;
2946 _relative_save_offset = ndr->offset;
2947 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
2948 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2949 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2951 struct ndr_pull *_ndr_devmode;
2952 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2953 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2954 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
2956 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2957 if (ndr->offset > ndr->relative_highest_offset) {
2958 ndr->relative_highest_offset = ndr->offset;
2960 ndr->offset = _relative_save_offset;
2962 ndr->flags = _flags_save_spoolss_DeviceMode;
2965 return NDR_ERR_SUCCESS;
2968 _PUBLIC_ void ndr_print_spoolss_DeviceModeInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceModeInfo *r)
2970 ndr_print_struct(ndr, name, "spoolss_DeviceModeInfo");
2971 ndr->depth++;
2972 ndr_print_ptr(ndr, "devmode", r->devmode);
2973 ndr->depth++;
2974 if (r->devmode) {
2975 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2977 ndr->depth--;
2978 ndr->depth--;
2981 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterInfo *r)
2983 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
2985 uint32_t _flags_save_UNION = ndr->flags;
2986 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
2987 if (ndr_flags & NDR_SCALARS) {
2988 int level = ndr_push_get_switch_value(ndr, r);
2989 NDR_CHECK(ndr_push_union_align(ndr, 5));
2990 switch (level) {
2991 case 0: {
2992 NDR_CHECK(ndr_push_align(ndr, 5));
2993 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2994 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2995 break; }
2997 case 1: {
2998 NDR_CHECK(ndr_push_align(ndr, 5));
2999 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
3000 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
3001 break; }
3003 case 2: {
3004 NDR_CHECK(ndr_push_align(ndr, 5));
3005 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
3006 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
3007 break; }
3009 case 3: {
3010 NDR_CHECK(ndr_push_align(ndr, 5));
3011 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
3012 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
3013 break; }
3015 case 4: {
3016 NDR_CHECK(ndr_push_align(ndr, 5));
3017 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
3018 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
3019 break; }
3021 case 5: {
3022 NDR_CHECK(ndr_push_align(ndr, 5));
3023 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
3024 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
3025 break; }
3027 case 6: {
3028 NDR_CHECK(ndr_push_align(ndr, 4));
3029 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
3030 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
3031 break; }
3033 case 7: {
3034 NDR_CHECK(ndr_push_align(ndr, 5));
3035 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
3036 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
3037 break; }
3039 case 8: {
3040 NDR_CHECK(ndr_push_align(ndr, 5));
3041 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
3042 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
3043 break; }
3045 case 9: {
3046 NDR_CHECK(ndr_push_align(ndr, 5));
3047 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
3048 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
3049 break; }
3051 default: {
3052 break; }
3056 if (ndr_flags & NDR_BUFFERS) {
3057 int level = ndr_push_get_switch_value(ndr, r);
3058 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
3059 switch (level) {
3060 case 0:
3061 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
3062 break;
3064 case 1:
3065 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
3066 break;
3068 case 2:
3069 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
3070 break;
3072 case 3:
3073 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
3074 break;
3076 case 4:
3077 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
3078 break;
3080 case 5:
3081 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
3082 break;
3084 case 6:
3085 break;
3087 case 7:
3088 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
3089 break;
3091 case 8:
3092 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
3093 break;
3095 case 9:
3096 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
3097 break;
3099 default:
3100 break;
3104 ndr->flags = _flags_save_UNION;
3106 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
3107 return NDR_ERR_SUCCESS;
3110 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterInfo *r)
3112 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
3113 int level;
3115 uint32_t _flags_save_UNION = ndr->flags;
3116 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
3117 level = ndr_pull_get_switch_value(ndr, r);
3118 if (ndr_flags & NDR_SCALARS) {
3119 NDR_CHECK(ndr_pull_union_align(ndr, 5));
3120 switch (level) {
3121 case 0: {
3122 NDR_CHECK(ndr_pull_align(ndr, 5));
3123 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3124 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
3125 break; }
3127 case 1: {
3128 NDR_CHECK(ndr_pull_align(ndr, 5));
3129 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3130 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
3131 break; }
3133 case 2: {
3134 NDR_CHECK(ndr_pull_align(ndr, 5));
3135 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3136 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
3137 break; }
3139 case 3: {
3140 NDR_CHECK(ndr_pull_align(ndr, 5));
3141 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3142 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
3143 break; }
3145 case 4: {
3146 NDR_CHECK(ndr_pull_align(ndr, 5));
3147 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3148 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
3149 break; }
3151 case 5: {
3152 NDR_CHECK(ndr_pull_align(ndr, 5));
3153 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3154 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
3155 break; }
3157 case 6: {
3158 NDR_CHECK(ndr_pull_align(ndr, 4));
3159 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3160 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
3161 break; }
3163 case 7: {
3164 NDR_CHECK(ndr_pull_align(ndr, 5));
3165 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3166 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
3167 break; }
3169 case 8: {
3170 NDR_CHECK(ndr_pull_align(ndr, 5));
3171 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3172 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
3173 break; }
3175 case 9: {
3176 NDR_CHECK(ndr_pull_align(ndr, 5));
3177 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3178 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
3179 break; }
3181 default: {
3182 break; }
3186 if (ndr_flags & NDR_BUFFERS) {
3187 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
3188 switch (level) {
3189 case 0:
3190 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
3191 break;
3193 case 1:
3194 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
3195 break;
3197 case 2:
3198 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
3199 break;
3201 case 3:
3202 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
3203 break;
3205 case 4:
3206 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
3207 break;
3209 case 5:
3210 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
3211 break;
3213 case 6:
3214 break;
3216 case 7:
3217 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
3218 break;
3220 case 8:
3221 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
3222 break;
3224 case 9:
3225 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
3226 break;
3228 default:
3229 break;
3233 ndr->flags = _flags_save_UNION;
3235 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
3236 return NDR_ERR_SUCCESS;
3239 _PUBLIC_ void ndr_print_spoolss_PrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrinterInfo *r)
3241 int level;
3243 uint32_t _flags_save_UNION = ndr->flags;
3244 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
3245 level = ndr_print_get_switch_value(ndr, r);
3246 ndr_print_union(ndr, name, level, "spoolss_PrinterInfo");
3247 switch (level) {
3248 case 0:
3249 ndr_print_spoolss_PrinterInfo0(ndr, "info0", &r->info0);
3250 break;
3252 case 1:
3253 ndr_print_spoolss_PrinterInfo1(ndr, "info1", &r->info1);
3254 break;
3256 case 2:
3257 ndr_print_spoolss_PrinterInfo2(ndr, "info2", &r->info2);
3258 break;
3260 case 3:
3261 ndr_print_spoolss_PrinterInfo3(ndr, "info3", &r->info3);
3262 break;
3264 case 4:
3265 ndr_print_spoolss_PrinterInfo4(ndr, "info4", &r->info4);
3266 break;
3268 case 5:
3269 ndr_print_spoolss_PrinterInfo5(ndr, "info5", &r->info5);
3270 break;
3272 case 6:
3273 ndr_print_spoolss_PrinterInfo6(ndr, "info6", &r->info6);
3274 break;
3276 case 7:
3277 ndr_print_spoolss_PrinterInfo7(ndr, "info7", &r->info7);
3278 break;
3280 case 8:
3281 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", &r->info8);
3282 break;
3284 case 9:
3285 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", &r->info9);
3286 break;
3288 default:
3289 break;
3292 ndr->flags = _flags_save_UNION;
3296 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo(const union spoolss_PrinterInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
3298 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
3299 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo, ic);
3302 static enum ndr_err_code ndr_push_spoolss_DevmodeContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DevmodeContainer *r)
3304 if (ndr_flags & NDR_SCALARS) {
3305 NDR_CHECK(ndr_push_align(ndr, 5));
3306 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
3307 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
3308 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3310 if (ndr_flags & NDR_BUFFERS) {
3311 if (r->devmode) {
3313 struct ndr_push *_ndr_devmode;
3314 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
3315 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3316 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
3320 return NDR_ERR_SUCCESS;
3323 static enum ndr_err_code ndr_pull_spoolss_DevmodeContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DevmodeContainer *r)
3325 uint32_t _ptr_devmode;
3326 TALLOC_CTX *_mem_save_devmode_0;
3327 if (ndr_flags & NDR_SCALARS) {
3328 NDR_CHECK(ndr_pull_align(ndr, 5));
3329 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
3330 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3331 if (_ptr_devmode) {
3332 NDR_PULL_ALLOC(ndr, r->devmode);
3333 } else {
3334 r->devmode = NULL;
3336 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3338 if (ndr_flags & NDR_BUFFERS) {
3339 if (r->devmode) {
3340 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
3341 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
3343 struct ndr_pull *_ndr_devmode;
3344 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 4, r->_ndr_size));
3345 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3346 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 4, r->_ndr_size));
3348 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
3351 return NDR_ERR_SUCCESS;
3354 _PUBLIC_ void ndr_print_spoolss_DevmodeContainer(struct ndr_print *ndr, const char *name, const struct spoolss_DevmodeContainer *r)
3356 ndr_print_struct(ndr, name, "spoolss_DevmodeContainer");
3357 ndr->depth++;
3358 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);
3359 ndr_print_ptr(ndr, "devmode", r->devmode);
3360 ndr->depth++;
3361 if (r->devmode) {
3362 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
3364 ndr->depth--;
3365 ndr->depth--;
3368 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo1 *r)
3370 if (ndr_flags & NDR_SCALARS) {
3371 NDR_CHECK(ndr_push_align(ndr, 5));
3372 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3374 uint32_t _flags_save_string = ndr->flags;
3375 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3376 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
3377 ndr->flags = _flags_save_string;
3380 uint32_t _flags_save_string = ndr->flags;
3381 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3382 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
3383 ndr->flags = _flags_save_string;
3386 uint32_t _flags_save_string = ndr->flags;
3387 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3388 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
3389 ndr->flags = _flags_save_string;
3392 uint32_t _flags_save_string = ndr->flags;
3393 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3394 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
3395 ndr->flags = _flags_save_string;
3398 uint32_t _flags_save_string = ndr->flags;
3399 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3400 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
3401 ndr->flags = _flags_save_string;
3404 uint32_t _flags_save_string = ndr->flags;
3405 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3406 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
3407 ndr->flags = _flags_save_string;
3409 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
3410 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3411 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
3412 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3413 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
3414 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3415 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3417 if (ndr_flags & NDR_BUFFERS) {
3419 uint32_t _flags_save_string = ndr->flags;
3420 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3421 if (r->printer_name) {
3422 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printer_name));
3423 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
3424 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printer_name));
3426 ndr->flags = _flags_save_string;
3429 uint32_t _flags_save_string = ndr->flags;
3430 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3431 if (r->server_name) {
3432 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->server_name));
3433 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3434 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->server_name));
3436 ndr->flags = _flags_save_string;
3439 uint32_t _flags_save_string = ndr->flags;
3440 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3441 if (r->user_name) {
3442 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->user_name));
3443 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3444 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->user_name));
3446 ndr->flags = _flags_save_string;
3449 uint32_t _flags_save_string = ndr->flags;
3450 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3451 if (r->document_name) {
3452 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->document_name));
3453 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3454 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->document_name));
3456 ndr->flags = _flags_save_string;
3459 uint32_t _flags_save_string = ndr->flags;
3460 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3461 if (r->data_type) {
3462 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_type));
3463 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3464 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_type));
3466 ndr->flags = _flags_save_string;
3469 uint32_t _flags_save_string = ndr->flags;
3470 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3471 if (r->text_status) {
3472 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->text_status));
3473 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3474 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->text_status));
3476 ndr->flags = _flags_save_string;
3479 return NDR_ERR_SUCCESS;
3482 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo1 *r)
3484 uint32_t _ptr_printer_name;
3485 TALLOC_CTX *_mem_save_printer_name_0;
3486 uint32_t _ptr_server_name;
3487 TALLOC_CTX *_mem_save_server_name_0;
3488 uint32_t _ptr_user_name;
3489 TALLOC_CTX *_mem_save_user_name_0;
3490 uint32_t _ptr_document_name;
3491 TALLOC_CTX *_mem_save_document_name_0;
3492 uint32_t _ptr_data_type;
3493 TALLOC_CTX *_mem_save_data_type_0;
3494 uint32_t _ptr_text_status;
3495 TALLOC_CTX *_mem_save_text_status_0;
3496 if (ndr_flags & NDR_SCALARS) {
3497 NDR_CHECK(ndr_pull_align(ndr, 5));
3498 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3500 uint32_t _flags_save_string = ndr->flags;
3501 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3502 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
3503 if (_ptr_printer_name) {
3504 NDR_PULL_ALLOC(ndr, r->printer_name);
3505 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
3506 } else {
3507 r->printer_name = NULL;
3509 ndr->flags = _flags_save_string;
3512 uint32_t _flags_save_string = ndr->flags;
3513 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3514 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
3515 if (_ptr_server_name) {
3516 NDR_PULL_ALLOC(ndr, r->server_name);
3517 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
3518 } else {
3519 r->server_name = NULL;
3521 ndr->flags = _flags_save_string;
3524 uint32_t _flags_save_string = ndr->flags;
3525 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3526 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
3527 if (_ptr_user_name) {
3528 NDR_PULL_ALLOC(ndr, r->user_name);
3529 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
3530 } else {
3531 r->user_name = NULL;
3533 ndr->flags = _flags_save_string;
3536 uint32_t _flags_save_string = ndr->flags;
3537 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3538 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
3539 if (_ptr_document_name) {
3540 NDR_PULL_ALLOC(ndr, r->document_name);
3541 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
3542 } else {
3543 r->document_name = NULL;
3545 ndr->flags = _flags_save_string;
3548 uint32_t _flags_save_string = ndr->flags;
3549 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3550 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
3551 if (_ptr_data_type) {
3552 NDR_PULL_ALLOC(ndr, r->data_type);
3553 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
3554 } else {
3555 r->data_type = NULL;
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 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
3563 if (_ptr_text_status) {
3564 NDR_PULL_ALLOC(ndr, r->text_status);
3565 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
3566 } else {
3567 r->text_status = NULL;
3569 ndr->flags = _flags_save_string;
3571 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
3572 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3573 if (r->priority > 99) {
3574 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3576 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
3577 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3578 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
3579 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3580 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3582 if (ndr_flags & NDR_BUFFERS) {
3584 uint32_t _flags_save_string = ndr->flags;
3585 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3586 if (r->printer_name) {
3587 uint32_t _relative_save_offset;
3588 _relative_save_offset = ndr->offset;
3589 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
3590 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3591 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
3592 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
3593 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
3594 if (ndr->offset > ndr->relative_highest_offset) {
3595 ndr->relative_highest_offset = ndr->offset;
3597 ndr->offset = _relative_save_offset;
3599 ndr->flags = _flags_save_string;
3602 uint32_t _flags_save_string = ndr->flags;
3603 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3604 if (r->server_name) {
3605 uint32_t _relative_save_offset;
3606 _relative_save_offset = ndr->offset;
3607 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
3608 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3609 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
3610 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
3611 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
3612 if (ndr->offset > ndr->relative_highest_offset) {
3613 ndr->relative_highest_offset = ndr->offset;
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->user_name) {
3623 uint32_t _relative_save_offset;
3624 _relative_save_offset = ndr->offset;
3625 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
3626 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3627 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
3628 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
3629 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
3630 if (ndr->offset > ndr->relative_highest_offset) {
3631 ndr->relative_highest_offset = ndr->offset;
3633 ndr->offset = _relative_save_offset;
3635 ndr->flags = _flags_save_string;
3638 uint32_t _flags_save_string = ndr->flags;
3639 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3640 if (r->document_name) {
3641 uint32_t _relative_save_offset;
3642 _relative_save_offset = ndr->offset;
3643 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
3644 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3645 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
3646 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
3647 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
3648 if (ndr->offset > ndr->relative_highest_offset) {
3649 ndr->relative_highest_offset = ndr->offset;
3651 ndr->offset = _relative_save_offset;
3653 ndr->flags = _flags_save_string;
3656 uint32_t _flags_save_string = ndr->flags;
3657 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3658 if (r->data_type) {
3659 uint32_t _relative_save_offset;
3660 _relative_save_offset = ndr->offset;
3661 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
3662 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
3663 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
3664 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
3665 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
3666 if (ndr->offset > ndr->relative_highest_offset) {
3667 ndr->relative_highest_offset = ndr->offset;
3669 ndr->offset = _relative_save_offset;
3671 ndr->flags = _flags_save_string;
3674 uint32_t _flags_save_string = ndr->flags;
3675 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3676 if (r->text_status) {
3677 uint32_t _relative_save_offset;
3678 _relative_save_offset = ndr->offset;
3679 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
3680 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
3681 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
3682 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
3683 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
3684 if (ndr->offset > ndr->relative_highest_offset) {
3685 ndr->relative_highest_offset = ndr->offset;
3687 ndr->offset = _relative_save_offset;
3689 ndr->flags = _flags_save_string;
3692 return NDR_ERR_SUCCESS;
3695 _PUBLIC_ void ndr_print_spoolss_JobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo1 *r)
3697 ndr_print_struct(ndr, name, "spoolss_JobInfo1");
3698 ndr->depth++;
3699 ndr_print_uint32(ndr, "job_id", r->job_id);
3700 ndr_print_ptr(ndr, "printer_name", r->printer_name);
3701 ndr->depth++;
3702 if (r->printer_name) {
3703 ndr_print_string(ndr, "printer_name", r->printer_name);
3705 ndr->depth--;
3706 ndr_print_ptr(ndr, "server_name", r->server_name);
3707 ndr->depth++;
3708 if (r->server_name) {
3709 ndr_print_string(ndr, "server_name", r->server_name);
3711 ndr->depth--;
3712 ndr_print_ptr(ndr, "user_name", r->user_name);
3713 ndr->depth++;
3714 if (r->user_name) {
3715 ndr_print_string(ndr, "user_name", r->user_name);
3717 ndr->depth--;
3718 ndr_print_ptr(ndr, "document_name", r->document_name);
3719 ndr->depth++;
3720 if (r->document_name) {
3721 ndr_print_string(ndr, "document_name", r->document_name);
3723 ndr->depth--;
3724 ndr_print_ptr(ndr, "data_type", r->data_type);
3725 ndr->depth++;
3726 if (r->data_type) {
3727 ndr_print_string(ndr, "data_type", r->data_type);
3729 ndr->depth--;
3730 ndr_print_ptr(ndr, "text_status", r->text_status);
3731 ndr->depth++;
3732 if (r->text_status) {
3733 ndr_print_string(ndr, "text_status", r->text_status);
3735 ndr->depth--;
3736 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
3737 ndr_print_uint32(ndr, "priority", r->priority);
3738 ndr_print_uint32(ndr, "position", r->position);
3739 ndr_print_uint32(ndr, "total_pages", r->total_pages);
3740 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
3741 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
3742 ndr->depth--;
3745 _PUBLIC_ size_t ndr_size_spoolss_JobInfo1(const struct spoolss_JobInfo1 *r, struct smb_iconv_convenience *ic, int flags)
3747 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo1, ic);
3750 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo2 *r)
3752 if (ndr_flags & NDR_SCALARS) {
3753 NDR_CHECK(ndr_push_align(ndr, 5));
3754 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3756 uint32_t _flags_save_string = ndr->flags;
3757 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3758 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
3759 ndr->flags = _flags_save_string;
3762 uint32_t _flags_save_string = ndr->flags;
3763 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3764 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
3765 ndr->flags = _flags_save_string;
3768 uint32_t _flags_save_string = ndr->flags;
3769 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3770 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
3771 ndr->flags = _flags_save_string;
3774 uint32_t _flags_save_string = ndr->flags;
3775 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3776 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
3777 ndr->flags = _flags_save_string;
3780 uint32_t _flags_save_string = ndr->flags;
3781 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3782 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
3783 ndr->flags = _flags_save_string;
3786 uint32_t _flags_save_string = ndr->flags;
3787 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3788 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
3789 ndr->flags = _flags_save_string;
3792 uint32_t _flags_save_string = ndr->flags;
3793 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3794 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
3795 ndr->flags = _flags_save_string;
3798 uint32_t _flags_save_string = ndr->flags;
3799 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3800 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
3801 ndr->flags = _flags_save_string;
3804 uint32_t _flags_save_string = ndr->flags;
3805 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3806 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
3807 ndr->flags = _flags_save_string;
3810 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
3811 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3812 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
3813 ndr->flags = _flags_save_spoolss_DeviceMode;
3816 uint32_t _flags_save_string = ndr->flags;
3817 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3818 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
3819 ndr->flags = _flags_save_string;
3822 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
3823 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3824 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
3825 ndr->flags = _flags_save_spoolss_security_descriptor;
3827 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
3828 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3829 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
3830 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
3831 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
3832 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3833 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
3834 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3835 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
3836 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
3837 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3839 if (ndr_flags & NDR_BUFFERS) {
3841 uint32_t _flags_save_string = ndr->flags;
3842 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3843 if (r->printer_name) {
3844 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printer_name));
3845 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
3846 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printer_name));
3848 ndr->flags = _flags_save_string;
3851 uint32_t _flags_save_string = ndr->flags;
3852 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3853 if (r->server_name) {
3854 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->server_name));
3855 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3856 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->server_name));
3858 ndr->flags = _flags_save_string;
3861 uint32_t _flags_save_string = ndr->flags;
3862 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3863 if (r->user_name) {
3864 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->user_name));
3865 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3866 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->user_name));
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 if (r->document_name) {
3874 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->document_name));
3875 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3876 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->document_name));
3878 ndr->flags = _flags_save_string;
3881 uint32_t _flags_save_string = ndr->flags;
3882 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3883 if (r->notify_name) {
3884 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->notify_name));
3885 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
3886 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->notify_name));
3888 ndr->flags = _flags_save_string;
3891 uint32_t _flags_save_string = ndr->flags;
3892 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3893 if (r->data_type) {
3894 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_type));
3895 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3896 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_type));
3898 ndr->flags = _flags_save_string;
3901 uint32_t _flags_save_string = ndr->flags;
3902 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3903 if (r->print_processor) {
3904 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor));
3905 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
3906 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor));
3908 ndr->flags = _flags_save_string;
3911 uint32_t _flags_save_string = ndr->flags;
3912 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3913 if (r->parameters) {
3914 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->parameters));
3915 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
3916 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->parameters));
3918 ndr->flags = _flags_save_string;
3921 uint32_t _flags_save_string = ndr->flags;
3922 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3923 if (r->driver_name) {
3924 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
3925 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
3926 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
3928 ndr->flags = _flags_save_string;
3931 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
3932 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3933 if (r->devmode) {
3934 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->devmode));
3936 struct ndr_push *_ndr_devmode;
3937 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
3938 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3939 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
3941 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->devmode));
3943 ndr->flags = _flags_save_spoolss_DeviceMode;
3946 uint32_t _flags_save_string = ndr->flags;
3947 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3948 if (r->text_status) {
3949 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->text_status));
3950 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3951 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->text_status));
3953 ndr->flags = _flags_save_string;
3956 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
3957 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3958 if (r->secdesc) {
3959 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->secdesc));
3961 struct ndr_push *_ndr_secdesc;
3962 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
3963 NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3964 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
3966 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->secdesc));
3968 ndr->flags = _flags_save_spoolss_security_descriptor;
3971 return NDR_ERR_SUCCESS;
3974 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo2 *r)
3976 uint32_t _ptr_printer_name;
3977 TALLOC_CTX *_mem_save_printer_name_0;
3978 uint32_t _ptr_server_name;
3979 TALLOC_CTX *_mem_save_server_name_0;
3980 uint32_t _ptr_user_name;
3981 TALLOC_CTX *_mem_save_user_name_0;
3982 uint32_t _ptr_document_name;
3983 TALLOC_CTX *_mem_save_document_name_0;
3984 uint32_t _ptr_notify_name;
3985 TALLOC_CTX *_mem_save_notify_name_0;
3986 uint32_t _ptr_data_type;
3987 TALLOC_CTX *_mem_save_data_type_0;
3988 uint32_t _ptr_print_processor;
3989 TALLOC_CTX *_mem_save_print_processor_0;
3990 uint32_t _ptr_parameters;
3991 TALLOC_CTX *_mem_save_parameters_0;
3992 uint32_t _ptr_driver_name;
3993 TALLOC_CTX *_mem_save_driver_name_0;
3994 uint32_t _ptr_devmode;
3995 TALLOC_CTX *_mem_save_devmode_0;
3996 uint32_t _ptr_text_status;
3997 TALLOC_CTX *_mem_save_text_status_0;
3998 uint32_t _ptr_secdesc;
3999 TALLOC_CTX *_mem_save_secdesc_0;
4000 if (ndr_flags & NDR_SCALARS) {
4001 NDR_CHECK(ndr_pull_align(ndr, 5));
4002 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4004 uint32_t _flags_save_string = ndr->flags;
4005 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4006 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
4007 if (_ptr_printer_name) {
4008 NDR_PULL_ALLOC(ndr, r->printer_name);
4009 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
4010 } else {
4011 r->printer_name = NULL;
4013 ndr->flags = _flags_save_string;
4016 uint32_t _flags_save_string = ndr->flags;
4017 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4018 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
4019 if (_ptr_server_name) {
4020 NDR_PULL_ALLOC(ndr, r->server_name);
4021 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
4022 } else {
4023 r->server_name = NULL;
4025 ndr->flags = _flags_save_string;
4028 uint32_t _flags_save_string = ndr->flags;
4029 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4030 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
4031 if (_ptr_user_name) {
4032 NDR_PULL_ALLOC(ndr, r->user_name);
4033 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
4034 } else {
4035 r->user_name = NULL;
4037 ndr->flags = _flags_save_string;
4040 uint32_t _flags_save_string = ndr->flags;
4041 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4042 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
4043 if (_ptr_document_name) {
4044 NDR_PULL_ALLOC(ndr, r->document_name);
4045 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
4046 } else {
4047 r->document_name = NULL;
4049 ndr->flags = _flags_save_string;
4052 uint32_t _flags_save_string = ndr->flags;
4053 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4054 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
4055 if (_ptr_notify_name) {
4056 NDR_PULL_ALLOC(ndr, r->notify_name);
4057 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
4058 } else {
4059 r->notify_name = NULL;
4061 ndr->flags = _flags_save_string;
4064 uint32_t _flags_save_string = ndr->flags;
4065 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4066 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
4067 if (_ptr_data_type) {
4068 NDR_PULL_ALLOC(ndr, r->data_type);
4069 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
4070 } else {
4071 r->data_type = NULL;
4073 ndr->flags = _flags_save_string;
4076 uint32_t _flags_save_string = ndr->flags;
4077 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4078 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
4079 if (_ptr_print_processor) {
4080 NDR_PULL_ALLOC(ndr, r->print_processor);
4081 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
4082 } else {
4083 r->print_processor = NULL;
4085 ndr->flags = _flags_save_string;
4088 uint32_t _flags_save_string = ndr->flags;
4089 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4090 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
4091 if (_ptr_parameters) {
4092 NDR_PULL_ALLOC(ndr, r->parameters);
4093 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
4094 } else {
4095 r->parameters = NULL;
4097 ndr->flags = _flags_save_string;
4100 uint32_t _flags_save_string = ndr->flags;
4101 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4102 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4103 if (_ptr_driver_name) {
4104 NDR_PULL_ALLOC(ndr, r->driver_name);
4105 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
4106 } else {
4107 r->driver_name = NULL;
4109 ndr->flags = _flags_save_string;
4112 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
4113 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4114 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
4115 if (_ptr_devmode) {
4116 NDR_PULL_ALLOC(ndr, r->devmode);
4117 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
4118 } else {
4119 r->devmode = NULL;
4121 ndr->flags = _flags_save_spoolss_DeviceMode;
4124 uint32_t _flags_save_string = ndr->flags;
4125 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4126 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
4127 if (_ptr_text_status) {
4128 NDR_PULL_ALLOC(ndr, r->text_status);
4129 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
4130 } else {
4131 r->text_status = NULL;
4133 ndr->flags = _flags_save_string;
4136 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
4137 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4138 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
4139 if (_ptr_secdesc) {
4140 NDR_PULL_ALLOC(ndr, r->secdesc);
4141 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
4142 } else {
4143 r->secdesc = NULL;
4145 ndr->flags = _flags_save_spoolss_security_descriptor;
4147 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
4148 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
4149 if (r->priority > 99) {
4150 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
4152 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
4153 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
4154 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
4155 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
4156 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
4157 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4158 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
4159 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
4160 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
4162 if (ndr_flags & NDR_BUFFERS) {
4164 uint32_t _flags_save_string = ndr->flags;
4165 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4166 if (r->printer_name) {
4167 uint32_t _relative_save_offset;
4168 _relative_save_offset = ndr->offset;
4169 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
4170 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4171 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4172 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
4173 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4174 if (ndr->offset > ndr->relative_highest_offset) {
4175 ndr->relative_highest_offset = ndr->offset;
4177 ndr->offset = _relative_save_offset;
4179 ndr->flags = _flags_save_string;
4182 uint32_t _flags_save_string = ndr->flags;
4183 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4184 if (r->server_name) {
4185 uint32_t _relative_save_offset;
4186 _relative_save_offset = ndr->offset;
4187 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
4188 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4189 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4190 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
4191 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4192 if (ndr->offset > ndr->relative_highest_offset) {
4193 ndr->relative_highest_offset = ndr->offset;
4195 ndr->offset = _relative_save_offset;
4197 ndr->flags = _flags_save_string;
4200 uint32_t _flags_save_string = ndr->flags;
4201 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4202 if (r->user_name) {
4203 uint32_t _relative_save_offset;
4204 _relative_save_offset = ndr->offset;
4205 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
4206 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4207 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4208 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
4209 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4210 if (ndr->offset > ndr->relative_highest_offset) {
4211 ndr->relative_highest_offset = ndr->offset;
4213 ndr->offset = _relative_save_offset;
4215 ndr->flags = _flags_save_string;
4218 uint32_t _flags_save_string = ndr->flags;
4219 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4220 if (r->document_name) {
4221 uint32_t _relative_save_offset;
4222 _relative_save_offset = ndr->offset;
4223 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
4224 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4225 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4226 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
4227 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
4228 if (ndr->offset > ndr->relative_highest_offset) {
4229 ndr->relative_highest_offset = ndr->offset;
4231 ndr->offset = _relative_save_offset;
4233 ndr->flags = _flags_save_string;
4236 uint32_t _flags_save_string = ndr->flags;
4237 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4238 if (r->notify_name) {
4239 uint32_t _relative_save_offset;
4240 _relative_save_offset = ndr->offset;
4241 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
4242 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4243 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
4244 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
4245 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
4246 if (ndr->offset > ndr->relative_highest_offset) {
4247 ndr->relative_highest_offset = ndr->offset;
4249 ndr->offset = _relative_save_offset;
4251 ndr->flags = _flags_save_string;
4254 uint32_t _flags_save_string = ndr->flags;
4255 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4256 if (r->data_type) {
4257 uint32_t _relative_save_offset;
4258 _relative_save_offset = ndr->offset;
4259 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
4260 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4261 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4262 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
4263 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4264 if (ndr->offset > ndr->relative_highest_offset) {
4265 ndr->relative_highest_offset = ndr->offset;
4267 ndr->offset = _relative_save_offset;
4269 ndr->flags = _flags_save_string;
4272 uint32_t _flags_save_string = ndr->flags;
4273 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4274 if (r->print_processor) {
4275 uint32_t _relative_save_offset;
4276 _relative_save_offset = ndr->offset;
4277 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
4278 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
4279 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
4280 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
4281 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
4282 if (ndr->offset > ndr->relative_highest_offset) {
4283 ndr->relative_highest_offset = ndr->offset;
4285 ndr->offset = _relative_save_offset;
4287 ndr->flags = _flags_save_string;
4290 uint32_t _flags_save_string = ndr->flags;
4291 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4292 if (r->parameters) {
4293 uint32_t _relative_save_offset;
4294 _relative_save_offset = ndr->offset;
4295 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
4296 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
4297 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
4298 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
4299 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
4300 if (ndr->offset > ndr->relative_highest_offset) {
4301 ndr->relative_highest_offset = ndr->offset;
4303 ndr->offset = _relative_save_offset;
4305 ndr->flags = _flags_save_string;
4308 uint32_t _flags_save_string = ndr->flags;
4309 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4310 if (r->driver_name) {
4311 uint32_t _relative_save_offset;
4312 _relative_save_offset = ndr->offset;
4313 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
4314 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4315 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4316 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
4317 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4318 if (ndr->offset > ndr->relative_highest_offset) {
4319 ndr->relative_highest_offset = ndr->offset;
4321 ndr->offset = _relative_save_offset;
4323 ndr->flags = _flags_save_string;
4326 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
4327 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4328 if (r->devmode) {
4329 uint32_t _relative_save_offset;
4330 _relative_save_offset = ndr->offset;
4331 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
4332 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
4333 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
4335 struct ndr_pull *_ndr_devmode;
4336 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
4337 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
4338 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
4340 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
4341 if (ndr->offset > ndr->relative_highest_offset) {
4342 ndr->relative_highest_offset = ndr->offset;
4344 ndr->offset = _relative_save_offset;
4346 ndr->flags = _flags_save_spoolss_DeviceMode;
4349 uint32_t _flags_save_string = ndr->flags;
4350 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4351 if (r->text_status) {
4352 uint32_t _relative_save_offset;
4353 _relative_save_offset = ndr->offset;
4354 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
4355 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4356 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4357 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
4358 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4359 if (ndr->offset > ndr->relative_highest_offset) {
4360 ndr->relative_highest_offset = ndr->offset;
4362 ndr->offset = _relative_save_offset;
4364 ndr->flags = _flags_save_string;
4367 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
4368 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4369 if (r->secdesc) {
4370 uint32_t _relative_save_offset;
4371 _relative_save_offset = ndr->offset;
4372 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
4373 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
4374 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
4376 struct ndr_pull *_ndr_secdesc;
4377 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
4378 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4379 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
4381 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
4382 if (ndr->offset > ndr->relative_highest_offset) {
4383 ndr->relative_highest_offset = ndr->offset;
4385 ndr->offset = _relative_save_offset;
4387 ndr->flags = _flags_save_spoolss_security_descriptor;
4390 return NDR_ERR_SUCCESS;
4393 _PUBLIC_ void ndr_print_spoolss_JobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo2 *r)
4395 ndr_print_struct(ndr, name, "spoolss_JobInfo2");
4396 ndr->depth++;
4397 ndr_print_uint32(ndr, "job_id", r->job_id);
4398 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4399 ndr->depth++;
4400 if (r->printer_name) {
4401 ndr_print_string(ndr, "printer_name", r->printer_name);
4403 ndr->depth--;
4404 ndr_print_ptr(ndr, "server_name", r->server_name);
4405 ndr->depth++;
4406 if (r->server_name) {
4407 ndr_print_string(ndr, "server_name", r->server_name);
4409 ndr->depth--;
4410 ndr_print_ptr(ndr, "user_name", r->user_name);
4411 ndr->depth++;
4412 if (r->user_name) {
4413 ndr_print_string(ndr, "user_name", r->user_name);
4415 ndr->depth--;
4416 ndr_print_ptr(ndr, "document_name", r->document_name);
4417 ndr->depth++;
4418 if (r->document_name) {
4419 ndr_print_string(ndr, "document_name", r->document_name);
4421 ndr->depth--;
4422 ndr_print_ptr(ndr, "notify_name", r->notify_name);
4423 ndr->depth++;
4424 if (r->notify_name) {
4425 ndr_print_string(ndr, "notify_name", r->notify_name);
4427 ndr->depth--;
4428 ndr_print_ptr(ndr, "data_type", r->data_type);
4429 ndr->depth++;
4430 if (r->data_type) {
4431 ndr_print_string(ndr, "data_type", r->data_type);
4433 ndr->depth--;
4434 ndr_print_ptr(ndr, "print_processor", r->print_processor);
4435 ndr->depth++;
4436 if (r->print_processor) {
4437 ndr_print_string(ndr, "print_processor", r->print_processor);
4439 ndr->depth--;
4440 ndr_print_ptr(ndr, "parameters", r->parameters);
4441 ndr->depth++;
4442 if (r->parameters) {
4443 ndr_print_string(ndr, "parameters", r->parameters);
4445 ndr->depth--;
4446 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4447 ndr->depth++;
4448 if (r->driver_name) {
4449 ndr_print_string(ndr, "driver_name", r->driver_name);
4451 ndr->depth--;
4452 ndr_print_ptr(ndr, "devmode", r->devmode);
4453 ndr->depth++;
4454 if (r->devmode) {
4455 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
4457 ndr->depth--;
4458 ndr_print_ptr(ndr, "text_status", r->text_status);
4459 ndr->depth++;
4460 if (r->text_status) {
4461 ndr_print_string(ndr, "text_status", r->text_status);
4463 ndr->depth--;
4464 ndr_print_ptr(ndr, "secdesc", r->secdesc);
4465 ndr->depth++;
4466 if (r->secdesc) {
4467 ndr_print_spoolss_security_descriptor(ndr, "secdesc", r->secdesc);
4469 ndr->depth--;
4470 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4471 ndr_print_uint32(ndr, "priority", r->priority);
4472 ndr_print_uint32(ndr, "position", r->position);
4473 ndr_print_uint32(ndr, "start_time", r->start_time);
4474 ndr_print_uint32(ndr, "until_time", r->until_time);
4475 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4476 ndr_print_uint32(ndr, "size", r->size);
4477 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4478 ndr_print_uint32(ndr, "time", r->time);
4479 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4480 ndr->depth--;
4483 _PUBLIC_ size_t ndr_size_spoolss_JobInfo2(const struct spoolss_JobInfo2 *r, struct smb_iconv_convenience *ic, int flags)
4485 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo2, ic);
4488 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo3 *r)
4490 if (ndr_flags & NDR_SCALARS) {
4491 NDR_CHECK(ndr_push_align(ndr, 4));
4492 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4493 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->next_job_id));
4494 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
4495 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
4497 if (ndr_flags & NDR_BUFFERS) {
4499 return NDR_ERR_SUCCESS;
4502 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo3 *r)
4504 if (ndr_flags & NDR_SCALARS) {
4505 NDR_CHECK(ndr_pull_align(ndr, 4));
4506 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4507 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->next_job_id));
4508 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
4509 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
4511 if (ndr_flags & NDR_BUFFERS) {
4513 return NDR_ERR_SUCCESS;
4516 _PUBLIC_ void ndr_print_spoolss_JobInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo3 *r)
4518 ndr_print_struct(ndr, name, "spoolss_JobInfo3");
4519 ndr->depth++;
4520 ndr_print_uint32(ndr, "job_id", r->job_id);
4521 ndr_print_uint32(ndr, "next_job_id", r->next_job_id);
4522 ndr_print_uint32(ndr, "reserved", r->reserved);
4523 ndr->depth--;
4526 _PUBLIC_ size_t ndr_size_spoolss_JobInfo3(const struct spoolss_JobInfo3 *r, struct smb_iconv_convenience *ic, int flags)
4528 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo3, ic);
4531 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo4 *r)
4533 if (ndr_flags & NDR_SCALARS) {
4534 NDR_CHECK(ndr_push_align(ndr, 5));
4535 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4537 uint32_t _flags_save_string = ndr->flags;
4538 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4539 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
4540 ndr->flags = _flags_save_string;
4543 uint32_t _flags_save_string = ndr->flags;
4544 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4545 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
4546 ndr->flags = _flags_save_string;
4549 uint32_t _flags_save_string = ndr->flags;
4550 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4551 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
4552 ndr->flags = _flags_save_string;
4555 uint32_t _flags_save_string = ndr->flags;
4556 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4557 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
4558 ndr->flags = _flags_save_string;
4561 uint32_t _flags_save_string = ndr->flags;
4562 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4563 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
4564 ndr->flags = _flags_save_string;
4567 uint32_t _flags_save_string = ndr->flags;
4568 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4569 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
4570 ndr->flags = _flags_save_string;
4573 uint32_t _flags_save_string = ndr->flags;
4574 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4575 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
4576 ndr->flags = _flags_save_string;
4579 uint32_t _flags_save_string = ndr->flags;
4580 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4581 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
4582 ndr->flags = _flags_save_string;
4585 uint32_t _flags_save_string = ndr->flags;
4586 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4587 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
4588 ndr->flags = _flags_save_string;
4591 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
4592 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4593 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
4594 ndr->flags = _flags_save_spoolss_DeviceMode;
4597 uint32_t _flags_save_string = ndr->flags;
4598 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4599 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
4600 ndr->flags = _flags_save_string;
4603 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
4604 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4605 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
4606 ndr->flags = _flags_save_spoolss_security_descriptor;
4608 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
4609 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
4610 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
4611 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
4612 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
4613 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
4614 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
4615 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4616 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
4617 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
4618 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
4619 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
4621 if (ndr_flags & NDR_BUFFERS) {
4623 uint32_t _flags_save_string = ndr->flags;
4624 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4625 if (r->printer_name) {
4626 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printer_name));
4627 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
4628 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printer_name));
4630 ndr->flags = _flags_save_string;
4633 uint32_t _flags_save_string = ndr->flags;
4634 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4635 if (r->server_name) {
4636 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->server_name));
4637 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
4638 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->server_name));
4640 ndr->flags = _flags_save_string;
4643 uint32_t _flags_save_string = ndr->flags;
4644 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4645 if (r->user_name) {
4646 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->user_name));
4647 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
4648 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->user_name));
4650 ndr->flags = _flags_save_string;
4653 uint32_t _flags_save_string = ndr->flags;
4654 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4655 if (r->document_name) {
4656 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->document_name));
4657 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
4658 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->document_name));
4660 ndr->flags = _flags_save_string;
4663 uint32_t _flags_save_string = ndr->flags;
4664 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4665 if (r->notify_name) {
4666 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->notify_name));
4667 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
4668 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->notify_name));
4670 ndr->flags = _flags_save_string;
4673 uint32_t _flags_save_string = ndr->flags;
4674 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4675 if (r->data_type) {
4676 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_type));
4677 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
4678 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_type));
4680 ndr->flags = _flags_save_string;
4683 uint32_t _flags_save_string = ndr->flags;
4684 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4685 if (r->print_processor) {
4686 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor));
4687 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
4688 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor));
4690 ndr->flags = _flags_save_string;
4693 uint32_t _flags_save_string = ndr->flags;
4694 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4695 if (r->parameters) {
4696 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->parameters));
4697 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
4698 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->parameters));
4700 ndr->flags = _flags_save_string;
4703 uint32_t _flags_save_string = ndr->flags;
4704 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4705 if (r->driver_name) {
4706 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
4707 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
4708 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
4710 ndr->flags = _flags_save_string;
4713 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
4714 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4715 if (r->devmode) {
4716 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->devmode));
4718 struct ndr_push *_ndr_devmode;
4719 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
4720 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
4721 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
4723 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->devmode));
4725 ndr->flags = _flags_save_spoolss_DeviceMode;
4728 uint32_t _flags_save_string = ndr->flags;
4729 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4730 if (r->text_status) {
4731 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->text_status));
4732 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
4733 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->text_status));
4735 ndr->flags = _flags_save_string;
4738 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
4739 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4740 if (r->secdesc) {
4741 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->secdesc));
4743 struct ndr_push *_ndr_secdesc;
4744 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
4745 NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4746 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
4748 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->secdesc));
4750 ndr->flags = _flags_save_spoolss_security_descriptor;
4753 return NDR_ERR_SUCCESS;
4756 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo4 *r)
4758 uint32_t _ptr_printer_name;
4759 TALLOC_CTX *_mem_save_printer_name_0;
4760 uint32_t _ptr_server_name;
4761 TALLOC_CTX *_mem_save_server_name_0;
4762 uint32_t _ptr_user_name;
4763 TALLOC_CTX *_mem_save_user_name_0;
4764 uint32_t _ptr_document_name;
4765 TALLOC_CTX *_mem_save_document_name_0;
4766 uint32_t _ptr_notify_name;
4767 TALLOC_CTX *_mem_save_notify_name_0;
4768 uint32_t _ptr_data_type;
4769 TALLOC_CTX *_mem_save_data_type_0;
4770 uint32_t _ptr_print_processor;
4771 TALLOC_CTX *_mem_save_print_processor_0;
4772 uint32_t _ptr_parameters;
4773 TALLOC_CTX *_mem_save_parameters_0;
4774 uint32_t _ptr_driver_name;
4775 TALLOC_CTX *_mem_save_driver_name_0;
4776 uint32_t _ptr_devmode;
4777 TALLOC_CTX *_mem_save_devmode_0;
4778 uint32_t _ptr_text_status;
4779 TALLOC_CTX *_mem_save_text_status_0;
4780 uint32_t _ptr_secdesc;
4781 TALLOC_CTX *_mem_save_secdesc_0;
4782 if (ndr_flags & NDR_SCALARS) {
4783 NDR_CHECK(ndr_pull_align(ndr, 5));
4784 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4786 uint32_t _flags_save_string = ndr->flags;
4787 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4788 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
4789 if (_ptr_printer_name) {
4790 NDR_PULL_ALLOC(ndr, r->printer_name);
4791 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
4792 } else {
4793 r->printer_name = NULL;
4795 ndr->flags = _flags_save_string;
4798 uint32_t _flags_save_string = ndr->flags;
4799 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4800 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
4801 if (_ptr_server_name) {
4802 NDR_PULL_ALLOC(ndr, r->server_name);
4803 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
4804 } else {
4805 r->server_name = NULL;
4807 ndr->flags = _flags_save_string;
4810 uint32_t _flags_save_string = ndr->flags;
4811 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4812 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
4813 if (_ptr_user_name) {
4814 NDR_PULL_ALLOC(ndr, r->user_name);
4815 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
4816 } else {
4817 r->user_name = NULL;
4819 ndr->flags = _flags_save_string;
4822 uint32_t _flags_save_string = ndr->flags;
4823 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4824 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
4825 if (_ptr_document_name) {
4826 NDR_PULL_ALLOC(ndr, r->document_name);
4827 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
4828 } else {
4829 r->document_name = NULL;
4831 ndr->flags = _flags_save_string;
4834 uint32_t _flags_save_string = ndr->flags;
4835 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4836 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
4837 if (_ptr_notify_name) {
4838 NDR_PULL_ALLOC(ndr, r->notify_name);
4839 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
4840 } else {
4841 r->notify_name = NULL;
4843 ndr->flags = _flags_save_string;
4846 uint32_t _flags_save_string = ndr->flags;
4847 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4848 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
4849 if (_ptr_data_type) {
4850 NDR_PULL_ALLOC(ndr, r->data_type);
4851 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
4852 } else {
4853 r->data_type = NULL;
4855 ndr->flags = _flags_save_string;
4858 uint32_t _flags_save_string = ndr->flags;
4859 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4860 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
4861 if (_ptr_print_processor) {
4862 NDR_PULL_ALLOC(ndr, r->print_processor);
4863 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
4864 } else {
4865 r->print_processor = NULL;
4867 ndr->flags = _flags_save_string;
4870 uint32_t _flags_save_string = ndr->flags;
4871 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4872 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
4873 if (_ptr_parameters) {
4874 NDR_PULL_ALLOC(ndr, r->parameters);
4875 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
4876 } else {
4877 r->parameters = NULL;
4879 ndr->flags = _flags_save_string;
4882 uint32_t _flags_save_string = ndr->flags;
4883 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4884 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4885 if (_ptr_driver_name) {
4886 NDR_PULL_ALLOC(ndr, r->driver_name);
4887 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
4888 } else {
4889 r->driver_name = NULL;
4891 ndr->flags = _flags_save_string;
4894 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
4895 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4896 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
4897 if (_ptr_devmode) {
4898 NDR_PULL_ALLOC(ndr, r->devmode);
4899 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
4900 } else {
4901 r->devmode = NULL;
4903 ndr->flags = _flags_save_spoolss_DeviceMode;
4906 uint32_t _flags_save_string = ndr->flags;
4907 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4908 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
4909 if (_ptr_text_status) {
4910 NDR_PULL_ALLOC(ndr, r->text_status);
4911 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
4912 } else {
4913 r->text_status = NULL;
4915 ndr->flags = _flags_save_string;
4918 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
4919 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4920 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
4921 if (_ptr_secdesc) {
4922 NDR_PULL_ALLOC(ndr, r->secdesc);
4923 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
4924 } else {
4925 r->secdesc = NULL;
4927 ndr->flags = _flags_save_spoolss_security_descriptor;
4929 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
4930 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
4931 if (r->priority > 99) {
4932 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
4934 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
4935 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
4936 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
4937 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
4938 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
4939 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4940 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
4941 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
4942 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
4943 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
4945 if (ndr_flags & NDR_BUFFERS) {
4947 uint32_t _flags_save_string = ndr->flags;
4948 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4949 if (r->printer_name) {
4950 uint32_t _relative_save_offset;
4951 _relative_save_offset = ndr->offset;
4952 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
4953 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4954 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4955 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
4956 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4957 if (ndr->offset > ndr->relative_highest_offset) {
4958 ndr->relative_highest_offset = ndr->offset;
4960 ndr->offset = _relative_save_offset;
4962 ndr->flags = _flags_save_string;
4965 uint32_t _flags_save_string = ndr->flags;
4966 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4967 if (r->server_name) {
4968 uint32_t _relative_save_offset;
4969 _relative_save_offset = ndr->offset;
4970 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
4971 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4972 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4973 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
4974 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4975 if (ndr->offset > ndr->relative_highest_offset) {
4976 ndr->relative_highest_offset = ndr->offset;
4978 ndr->offset = _relative_save_offset;
4980 ndr->flags = _flags_save_string;
4983 uint32_t _flags_save_string = ndr->flags;
4984 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4985 if (r->user_name) {
4986 uint32_t _relative_save_offset;
4987 _relative_save_offset = ndr->offset;
4988 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
4989 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4990 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4991 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
4992 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4993 if (ndr->offset > ndr->relative_highest_offset) {
4994 ndr->relative_highest_offset = ndr->offset;
4996 ndr->offset = _relative_save_offset;
4998 ndr->flags = _flags_save_string;
5001 uint32_t _flags_save_string = ndr->flags;
5002 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5003 if (r->document_name) {
5004 uint32_t _relative_save_offset;
5005 _relative_save_offset = ndr->offset;
5006 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
5007 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5008 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5009 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
5010 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5011 if (ndr->offset > ndr->relative_highest_offset) {
5012 ndr->relative_highest_offset = ndr->offset;
5014 ndr->offset = _relative_save_offset;
5016 ndr->flags = _flags_save_string;
5019 uint32_t _flags_save_string = ndr->flags;
5020 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5021 if (r->notify_name) {
5022 uint32_t _relative_save_offset;
5023 _relative_save_offset = ndr->offset;
5024 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
5025 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5026 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
5027 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
5028 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
5029 if (ndr->offset > ndr->relative_highest_offset) {
5030 ndr->relative_highest_offset = ndr->offset;
5032 ndr->offset = _relative_save_offset;
5034 ndr->flags = _flags_save_string;
5037 uint32_t _flags_save_string = ndr->flags;
5038 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5039 if (r->data_type) {
5040 uint32_t _relative_save_offset;
5041 _relative_save_offset = ndr->offset;
5042 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
5043 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5044 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5045 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
5046 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5047 if (ndr->offset > ndr->relative_highest_offset) {
5048 ndr->relative_highest_offset = ndr->offset;
5050 ndr->offset = _relative_save_offset;
5052 ndr->flags = _flags_save_string;
5055 uint32_t _flags_save_string = ndr->flags;
5056 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5057 if (r->print_processor) {
5058 uint32_t _relative_save_offset;
5059 _relative_save_offset = ndr->offset;
5060 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
5061 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
5062 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
5063 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
5064 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
5065 if (ndr->offset > ndr->relative_highest_offset) {
5066 ndr->relative_highest_offset = ndr->offset;
5068 ndr->offset = _relative_save_offset;
5070 ndr->flags = _flags_save_string;
5073 uint32_t _flags_save_string = ndr->flags;
5074 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5075 if (r->parameters) {
5076 uint32_t _relative_save_offset;
5077 _relative_save_offset = ndr->offset;
5078 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
5079 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
5080 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
5081 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
5082 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
5083 if (ndr->offset > ndr->relative_highest_offset) {
5084 ndr->relative_highest_offset = ndr->offset;
5086 ndr->offset = _relative_save_offset;
5088 ndr->flags = _flags_save_string;
5091 uint32_t _flags_save_string = ndr->flags;
5092 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5093 if (r->driver_name) {
5094 uint32_t _relative_save_offset;
5095 _relative_save_offset = ndr->offset;
5096 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
5097 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5098 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5099 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
5100 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5101 if (ndr->offset > ndr->relative_highest_offset) {
5102 ndr->relative_highest_offset = ndr->offset;
5104 ndr->offset = _relative_save_offset;
5106 ndr->flags = _flags_save_string;
5109 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
5110 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
5111 if (r->devmode) {
5112 uint32_t _relative_save_offset;
5113 _relative_save_offset = ndr->offset;
5114 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
5115 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
5116 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
5118 struct ndr_pull *_ndr_devmode;
5119 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
5120 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
5121 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
5123 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
5124 if (ndr->offset > ndr->relative_highest_offset) {
5125 ndr->relative_highest_offset = ndr->offset;
5127 ndr->offset = _relative_save_offset;
5129 ndr->flags = _flags_save_spoolss_DeviceMode;
5132 uint32_t _flags_save_string = ndr->flags;
5133 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5134 if (r->text_status) {
5135 uint32_t _relative_save_offset;
5136 _relative_save_offset = ndr->offset;
5137 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
5138 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5139 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5140 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
5141 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5142 if (ndr->offset > ndr->relative_highest_offset) {
5143 ndr->relative_highest_offset = ndr->offset;
5145 ndr->offset = _relative_save_offset;
5147 ndr->flags = _flags_save_string;
5150 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
5151 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
5152 if (r->secdesc) {
5153 uint32_t _relative_save_offset;
5154 _relative_save_offset = ndr->offset;
5155 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
5156 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
5157 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
5159 struct ndr_pull *_ndr_secdesc;
5160 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
5161 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
5162 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
5164 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
5165 if (ndr->offset > ndr->relative_highest_offset) {
5166 ndr->relative_highest_offset = ndr->offset;
5168 ndr->offset = _relative_save_offset;
5170 ndr->flags = _flags_save_spoolss_security_descriptor;
5173 return NDR_ERR_SUCCESS;
5176 _PUBLIC_ void ndr_print_spoolss_JobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo4 *r)
5178 ndr_print_struct(ndr, name, "spoolss_JobInfo4");
5179 ndr->depth++;
5180 ndr_print_uint32(ndr, "job_id", r->job_id);
5181 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5182 ndr->depth++;
5183 if (r->printer_name) {
5184 ndr_print_string(ndr, "printer_name", r->printer_name);
5186 ndr->depth--;
5187 ndr_print_ptr(ndr, "server_name", r->server_name);
5188 ndr->depth++;
5189 if (r->server_name) {
5190 ndr_print_string(ndr, "server_name", r->server_name);
5192 ndr->depth--;
5193 ndr_print_ptr(ndr, "user_name", r->user_name);
5194 ndr->depth++;
5195 if (r->user_name) {
5196 ndr_print_string(ndr, "user_name", r->user_name);
5198 ndr->depth--;
5199 ndr_print_ptr(ndr, "document_name", r->document_name);
5200 ndr->depth++;
5201 if (r->document_name) {
5202 ndr_print_string(ndr, "document_name", r->document_name);
5204 ndr->depth--;
5205 ndr_print_ptr(ndr, "notify_name", r->notify_name);
5206 ndr->depth++;
5207 if (r->notify_name) {
5208 ndr_print_string(ndr, "notify_name", r->notify_name);
5210 ndr->depth--;
5211 ndr_print_ptr(ndr, "data_type", r->data_type);
5212 ndr->depth++;
5213 if (r->data_type) {
5214 ndr_print_string(ndr, "data_type", r->data_type);
5216 ndr->depth--;
5217 ndr_print_ptr(ndr, "print_processor", r->print_processor);
5218 ndr->depth++;
5219 if (r->print_processor) {
5220 ndr_print_string(ndr, "print_processor", r->print_processor);
5222 ndr->depth--;
5223 ndr_print_ptr(ndr, "parameters", r->parameters);
5224 ndr->depth++;
5225 if (r->parameters) {
5226 ndr_print_string(ndr, "parameters", r->parameters);
5228 ndr->depth--;
5229 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5230 ndr->depth++;
5231 if (r->driver_name) {
5232 ndr_print_string(ndr, "driver_name", r->driver_name);
5234 ndr->depth--;
5235 ndr_print_ptr(ndr, "devmode", r->devmode);
5236 ndr->depth++;
5237 if (r->devmode) {
5238 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
5240 ndr->depth--;
5241 ndr_print_ptr(ndr, "text_status", r->text_status);
5242 ndr->depth++;
5243 if (r->text_status) {
5244 ndr_print_string(ndr, "text_status", r->text_status);
5246 ndr->depth--;
5247 ndr_print_ptr(ndr, "secdesc", r->secdesc);
5248 ndr->depth++;
5249 if (r->secdesc) {
5250 ndr_print_spoolss_security_descriptor(ndr, "secdesc", r->secdesc);
5252 ndr->depth--;
5253 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5254 ndr_print_uint32(ndr, "priority", r->priority);
5255 ndr_print_uint32(ndr, "position", r->position);
5256 ndr_print_uint32(ndr, "start_time", r->start_time);
5257 ndr_print_uint32(ndr, "until_time", r->until_time);
5258 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5259 ndr_print_uint32(ndr, "size", r->size);
5260 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5261 ndr_print_uint32(ndr, "time", r->time);
5262 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5263 ndr_print_uint32(ndr, "size_high", r->size_high);
5264 ndr->depth--;
5267 _PUBLIC_ size_t ndr_size_spoolss_JobInfo4(const struct spoolss_JobInfo4 *r, struct smb_iconv_convenience *ic, int flags)
5269 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo4, ic);
5272 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_JobInfo *r)
5274 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
5276 uint32_t _flags_save_UNION = ndr->flags;
5277 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
5278 if (ndr_flags & NDR_SCALARS) {
5279 int level = ndr_push_get_switch_value(ndr, r);
5280 NDR_CHECK(ndr_push_union_align(ndr, 5));
5281 switch (level) {
5282 case 1: {
5283 NDR_CHECK(ndr_push_align(ndr, 5));
5284 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
5285 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
5286 break; }
5288 case 2: {
5289 NDR_CHECK(ndr_push_align(ndr, 5));
5290 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
5291 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
5292 break; }
5294 case 3: {
5295 NDR_CHECK(ndr_push_align(ndr, 4));
5296 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
5297 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
5298 break; }
5300 case 4: {
5301 NDR_CHECK(ndr_push_align(ndr, 5));
5302 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
5303 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
5304 break; }
5306 default: {
5307 break; }
5311 if (ndr_flags & NDR_BUFFERS) {
5312 int level = ndr_push_get_switch_value(ndr, r);
5313 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
5314 switch (level) {
5315 case 1:
5316 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
5317 break;
5319 case 2:
5320 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
5321 break;
5323 case 3:
5324 break;
5326 case 4:
5327 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
5328 break;
5330 default:
5331 break;
5335 ndr->flags = _flags_save_UNION;
5337 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
5338 return NDR_ERR_SUCCESS;
5341 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_JobInfo *r)
5343 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
5344 int level;
5346 uint32_t _flags_save_UNION = ndr->flags;
5347 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
5348 level = ndr_pull_get_switch_value(ndr, r);
5349 if (ndr_flags & NDR_SCALARS) {
5350 NDR_CHECK(ndr_pull_union_align(ndr, 5));
5351 switch (level) {
5352 case 1: {
5353 NDR_CHECK(ndr_pull_align(ndr, 5));
5354 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5355 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
5356 break; }
5358 case 2: {
5359 NDR_CHECK(ndr_pull_align(ndr, 5));
5360 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5361 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
5362 break; }
5364 case 3: {
5365 NDR_CHECK(ndr_pull_align(ndr, 4));
5366 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5367 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
5368 break; }
5370 case 4: {
5371 NDR_CHECK(ndr_pull_align(ndr, 5));
5372 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5373 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
5374 break; }
5376 default: {
5377 break; }
5381 if (ndr_flags & NDR_BUFFERS) {
5382 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
5383 switch (level) {
5384 case 1:
5385 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
5386 break;
5388 case 2:
5389 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
5390 break;
5392 case 3:
5393 break;
5395 case 4:
5396 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
5397 break;
5399 default:
5400 break;
5404 ndr->flags = _flags_save_UNION;
5406 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
5407 return NDR_ERR_SUCCESS;
5410 _PUBLIC_ void ndr_print_spoolss_JobInfo(struct ndr_print *ndr, const char *name, const union spoolss_JobInfo *r)
5412 int level;
5414 uint32_t _flags_save_UNION = ndr->flags;
5415 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
5416 level = ndr_print_get_switch_value(ndr, r);
5417 ndr_print_union(ndr, name, level, "spoolss_JobInfo");
5418 switch (level) {
5419 case 1:
5420 ndr_print_spoolss_JobInfo1(ndr, "info1", &r->info1);
5421 break;
5423 case 2:
5424 ndr_print_spoolss_JobInfo2(ndr, "info2", &r->info2);
5425 break;
5427 case 3:
5428 ndr_print_spoolss_JobInfo3(ndr, "info3", &r->info3);
5429 break;
5431 case 4:
5432 ndr_print_spoolss_JobInfo4(ndr, "info4", &r->info4);
5433 break;
5435 default:
5436 break;
5439 ndr->flags = _flags_save_UNION;
5443 _PUBLIC_ size_t ndr_size_spoolss_JobInfo(const union spoolss_JobInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
5445 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
5446 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo, ic);
5449 static enum ndr_err_code ndr_push_spoolss_SetJobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo1 *r)
5451 if (ndr_flags & NDR_SCALARS) {
5452 NDR_CHECK(ndr_push_align(ndr, 5));
5453 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
5454 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
5455 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
5456 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
5457 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
5458 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
5459 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
5460 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5461 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5462 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5463 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5464 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5465 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5466 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5468 if (ndr_flags & NDR_BUFFERS) {
5469 if (r->printer_name) {
5470 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5471 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5472 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5473 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5475 if (r->server_name) {
5476 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5477 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5478 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5479 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5481 if (r->user_name) {
5482 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5483 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5484 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5485 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5487 if (r->document_name) {
5488 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5489 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5490 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5491 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5493 if (r->data_type) {
5494 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5495 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5496 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5497 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5499 if (r->text_status) {
5500 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5501 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5502 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5503 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5506 return NDR_ERR_SUCCESS;
5509 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo1 *r)
5511 uint32_t _ptr_printer_name;
5512 TALLOC_CTX *_mem_save_printer_name_0;
5513 uint32_t _ptr_server_name;
5514 TALLOC_CTX *_mem_save_server_name_0;
5515 uint32_t _ptr_user_name;
5516 TALLOC_CTX *_mem_save_user_name_0;
5517 uint32_t _ptr_document_name;
5518 TALLOC_CTX *_mem_save_document_name_0;
5519 uint32_t _ptr_data_type;
5520 TALLOC_CTX *_mem_save_data_type_0;
5521 uint32_t _ptr_text_status;
5522 TALLOC_CTX *_mem_save_text_status_0;
5523 if (ndr_flags & NDR_SCALARS) {
5524 NDR_CHECK(ndr_pull_align(ndr, 5));
5525 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5526 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5527 if (_ptr_printer_name) {
5528 NDR_PULL_ALLOC(ndr, r->printer_name);
5529 } else {
5530 r->printer_name = NULL;
5532 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5533 if (_ptr_server_name) {
5534 NDR_PULL_ALLOC(ndr, r->server_name);
5535 } else {
5536 r->server_name = NULL;
5538 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5539 if (_ptr_user_name) {
5540 NDR_PULL_ALLOC(ndr, r->user_name);
5541 } else {
5542 r->user_name = NULL;
5544 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5545 if (_ptr_document_name) {
5546 NDR_PULL_ALLOC(ndr, r->document_name);
5547 } else {
5548 r->document_name = NULL;
5550 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5551 if (_ptr_data_type) {
5552 NDR_PULL_ALLOC(ndr, r->data_type);
5553 } else {
5554 r->data_type = NULL;
5556 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5557 if (_ptr_text_status) {
5558 NDR_PULL_ALLOC(ndr, r->text_status);
5559 } else {
5560 r->text_status = NULL;
5562 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5563 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5564 if (r->priority > 99) {
5565 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5567 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5568 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5569 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5570 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5571 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5573 if (ndr_flags & NDR_BUFFERS) {
5574 if (r->printer_name) {
5575 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5576 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5577 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5578 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5579 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5580 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));
5582 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5583 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
5584 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5586 if (r->server_name) {
5587 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5588 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5589 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5590 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5591 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5592 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));
5594 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5595 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
5596 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5598 if (r->user_name) {
5599 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5600 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5601 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5602 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5603 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5604 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));
5606 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5607 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
5608 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5610 if (r->document_name) {
5611 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5612 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5613 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5614 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5615 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5616 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));
5618 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5619 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
5620 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5622 if (r->data_type) {
5623 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5624 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5625 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5626 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5627 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
5628 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));
5630 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
5631 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
5632 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5634 if (r->text_status) {
5635 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5636 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5637 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5638 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5639 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
5640 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));
5642 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
5643 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
5644 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5647 return NDR_ERR_SUCCESS;
5650 _PUBLIC_ void ndr_print_spoolss_SetJobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo1 *r)
5652 ndr_print_struct(ndr, name, "spoolss_SetJobInfo1");
5653 ndr->depth++;
5654 ndr_print_uint32(ndr, "job_id", r->job_id);
5655 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5656 ndr->depth++;
5657 if (r->printer_name) {
5658 ndr_print_string(ndr, "printer_name", r->printer_name);
5660 ndr->depth--;
5661 ndr_print_ptr(ndr, "server_name", r->server_name);
5662 ndr->depth++;
5663 if (r->server_name) {
5664 ndr_print_string(ndr, "server_name", r->server_name);
5666 ndr->depth--;
5667 ndr_print_ptr(ndr, "user_name", r->user_name);
5668 ndr->depth++;
5669 if (r->user_name) {
5670 ndr_print_string(ndr, "user_name", r->user_name);
5672 ndr->depth--;
5673 ndr_print_ptr(ndr, "document_name", r->document_name);
5674 ndr->depth++;
5675 if (r->document_name) {
5676 ndr_print_string(ndr, "document_name", r->document_name);
5678 ndr->depth--;
5679 ndr_print_ptr(ndr, "data_type", r->data_type);
5680 ndr->depth++;
5681 if (r->data_type) {
5682 ndr_print_string(ndr, "data_type", r->data_type);
5684 ndr->depth--;
5685 ndr_print_ptr(ndr, "text_status", r->text_status);
5686 ndr->depth++;
5687 if (r->text_status) {
5688 ndr_print_string(ndr, "text_status", r->text_status);
5690 ndr->depth--;
5691 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5692 ndr_print_uint32(ndr, "priority", r->priority);
5693 ndr_print_uint32(ndr, "position", r->position);
5694 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5695 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5696 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5697 ndr->depth--;
5700 static enum ndr_err_code ndr_push_spoolss_SetJobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo2 *r)
5702 if (ndr_flags & NDR_SCALARS) {
5703 NDR_CHECK(ndr_push_align(ndr, 5));
5704 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
5705 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
5706 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
5707 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
5708 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
5709 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
5710 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
5711 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
5712 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
5713 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5714 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
5715 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
5716 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
5717 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5718 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5719 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5720 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
5721 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
5722 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5723 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
5724 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5725 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
5726 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5727 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5729 if (ndr_flags & NDR_BUFFERS) {
5730 if (r->printer_name) {
5731 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5732 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5733 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5734 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5736 if (r->server_name) {
5737 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5738 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5739 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5740 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5742 if (r->user_name) {
5743 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5744 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5745 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5746 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5748 if (r->document_name) {
5749 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5750 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5751 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5752 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5754 if (r->notify_name) {
5755 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5756 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5757 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5758 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5760 if (r->data_type) {
5761 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5762 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5763 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5764 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5766 if (r->print_processor) {
5767 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5768 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5769 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5770 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5772 if (r->parameters) {
5773 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5774 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5775 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5776 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5778 if (r->driver_name) {
5779 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5780 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5781 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5782 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5784 if (r->text_status) {
5785 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5786 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5787 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5788 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5791 return NDR_ERR_SUCCESS;
5794 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo2 *r)
5796 uint32_t _ptr_printer_name;
5797 TALLOC_CTX *_mem_save_printer_name_0;
5798 uint32_t _ptr_server_name;
5799 TALLOC_CTX *_mem_save_server_name_0;
5800 uint32_t _ptr_user_name;
5801 TALLOC_CTX *_mem_save_user_name_0;
5802 uint32_t _ptr_document_name;
5803 TALLOC_CTX *_mem_save_document_name_0;
5804 uint32_t _ptr_notify_name;
5805 TALLOC_CTX *_mem_save_notify_name_0;
5806 uint32_t _ptr_data_type;
5807 TALLOC_CTX *_mem_save_data_type_0;
5808 uint32_t _ptr_print_processor;
5809 TALLOC_CTX *_mem_save_print_processor_0;
5810 uint32_t _ptr_parameters;
5811 TALLOC_CTX *_mem_save_parameters_0;
5812 uint32_t _ptr_driver_name;
5813 TALLOC_CTX *_mem_save_driver_name_0;
5814 uint32_t _ptr_text_status;
5815 TALLOC_CTX *_mem_save_text_status_0;
5816 if (ndr_flags & NDR_SCALARS) {
5817 NDR_CHECK(ndr_pull_align(ndr, 5));
5818 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5819 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5820 if (_ptr_printer_name) {
5821 NDR_PULL_ALLOC(ndr, r->printer_name);
5822 } else {
5823 r->printer_name = NULL;
5825 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5826 if (_ptr_server_name) {
5827 NDR_PULL_ALLOC(ndr, r->server_name);
5828 } else {
5829 r->server_name = NULL;
5831 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5832 if (_ptr_user_name) {
5833 NDR_PULL_ALLOC(ndr, r->user_name);
5834 } else {
5835 r->user_name = NULL;
5837 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5838 if (_ptr_document_name) {
5839 NDR_PULL_ALLOC(ndr, r->document_name);
5840 } else {
5841 r->document_name = NULL;
5843 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
5844 if (_ptr_notify_name) {
5845 NDR_PULL_ALLOC(ndr, r->notify_name);
5846 } else {
5847 r->notify_name = NULL;
5849 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5850 if (_ptr_data_type) {
5851 NDR_PULL_ALLOC(ndr, r->data_type);
5852 } else {
5853 r->data_type = NULL;
5855 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
5856 if (_ptr_print_processor) {
5857 NDR_PULL_ALLOC(ndr, r->print_processor);
5858 } else {
5859 r->print_processor = NULL;
5861 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
5862 if (_ptr_parameters) {
5863 NDR_PULL_ALLOC(ndr, r->parameters);
5864 } else {
5865 r->parameters = NULL;
5867 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5868 if (_ptr_driver_name) {
5869 NDR_PULL_ALLOC(ndr, r->driver_name);
5870 } else {
5871 r->driver_name = NULL;
5873 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
5874 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5875 if (_ptr_text_status) {
5876 NDR_PULL_ALLOC(ndr, r->text_status);
5877 } else {
5878 r->text_status = NULL;
5880 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
5881 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5882 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5883 if (r->priority > 99) {
5884 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5886 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5887 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
5888 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
5889 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5890 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
5891 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5892 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
5893 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5894 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5896 if (ndr_flags & NDR_BUFFERS) {
5897 if (r->printer_name) {
5898 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5899 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5900 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5901 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5902 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5903 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));
5905 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5906 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
5907 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5909 if (r->server_name) {
5910 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5911 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5912 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5913 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5914 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5915 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));
5917 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5918 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
5919 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5921 if (r->user_name) {
5922 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5923 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5924 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5925 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5926 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5927 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));
5929 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5930 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
5931 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5933 if (r->document_name) {
5934 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5935 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5936 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5937 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5938 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5939 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));
5941 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5942 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
5943 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5945 if (r->notify_name) {
5946 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5947 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
5948 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
5949 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
5950 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
5951 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));
5953 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
5954 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
5955 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
5957 if (r->data_type) {
5958 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5959 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5960 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5961 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5962 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
5963 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));
5965 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
5966 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
5967 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5969 if (r->print_processor) {
5970 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
5971 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
5972 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
5973 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
5974 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
5975 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));
5977 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
5978 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
5979 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
5981 if (r->parameters) {
5982 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
5983 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
5984 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
5985 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
5986 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
5987 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));
5989 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
5990 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
5991 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
5993 if (r->driver_name) {
5994 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5995 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5996 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5997 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5998 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5999 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));
6001 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
6002 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
6003 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
6005 if (r->text_status) {
6006 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
6007 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
6008 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
6009 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
6010 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
6011 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));
6013 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
6014 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
6015 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
6018 return NDR_ERR_SUCCESS;
6021 _PUBLIC_ void ndr_print_spoolss_SetJobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo2 *r)
6023 ndr_print_struct(ndr, name, "spoolss_SetJobInfo2");
6024 ndr->depth++;
6025 ndr_print_uint32(ndr, "job_id", r->job_id);
6026 ndr_print_ptr(ndr, "printer_name", r->printer_name);
6027 ndr->depth++;
6028 if (r->printer_name) {
6029 ndr_print_string(ndr, "printer_name", r->printer_name);
6031 ndr->depth--;
6032 ndr_print_ptr(ndr, "server_name", r->server_name);
6033 ndr->depth++;
6034 if (r->server_name) {
6035 ndr_print_string(ndr, "server_name", r->server_name);
6037 ndr->depth--;
6038 ndr_print_ptr(ndr, "user_name", r->user_name);
6039 ndr->depth++;
6040 if (r->user_name) {
6041 ndr_print_string(ndr, "user_name", r->user_name);
6043 ndr->depth--;
6044 ndr_print_ptr(ndr, "document_name", r->document_name);
6045 ndr->depth++;
6046 if (r->document_name) {
6047 ndr_print_string(ndr, "document_name", r->document_name);
6049 ndr->depth--;
6050 ndr_print_ptr(ndr, "notify_name", r->notify_name);
6051 ndr->depth++;
6052 if (r->notify_name) {
6053 ndr_print_string(ndr, "notify_name", r->notify_name);
6055 ndr->depth--;
6056 ndr_print_ptr(ndr, "data_type", r->data_type);
6057 ndr->depth++;
6058 if (r->data_type) {
6059 ndr_print_string(ndr, "data_type", r->data_type);
6061 ndr->depth--;
6062 ndr_print_ptr(ndr, "print_processor", r->print_processor);
6063 ndr->depth++;
6064 if (r->print_processor) {
6065 ndr_print_string(ndr, "print_processor", r->print_processor);
6067 ndr->depth--;
6068 ndr_print_ptr(ndr, "parameters", r->parameters);
6069 ndr->depth++;
6070 if (r->parameters) {
6071 ndr_print_string(ndr, "parameters", r->parameters);
6073 ndr->depth--;
6074 ndr_print_ptr(ndr, "driver_name", r->driver_name);
6075 ndr->depth++;
6076 if (r->driver_name) {
6077 ndr_print_string(ndr, "driver_name", r->driver_name);
6079 ndr->depth--;
6080 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
6081 ndr_print_ptr(ndr, "text_status", r->text_status);
6082 ndr->depth++;
6083 if (r->text_status) {
6084 ndr_print_string(ndr, "text_status", r->text_status);
6086 ndr->depth--;
6087 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
6088 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
6089 ndr_print_uint32(ndr, "priority", r->priority);
6090 ndr_print_uint32(ndr, "position", r->position);
6091 ndr_print_uint32(ndr, "start_time", r->start_time);
6092 ndr_print_uint32(ndr, "until_time", r->until_time);
6093 ndr_print_uint32(ndr, "total_pages", r->total_pages);
6094 ndr_print_uint32(ndr, "size", r->size);
6095 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
6096 ndr_print_uint32(ndr, "time", r->time);
6097 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
6098 ndr->depth--;
6101 static enum ndr_err_code ndr_push_spoolss_SetJobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo4 *r)
6103 if (ndr_flags & NDR_SCALARS) {
6104 NDR_CHECK(ndr_push_align(ndr, 5));
6105 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
6106 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
6107 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
6108 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
6109 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
6110 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
6111 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
6112 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
6113 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
6114 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
6115 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
6116 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
6117 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
6118 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
6119 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
6120 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
6121 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
6122 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
6123 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
6124 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
6125 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
6126 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
6127 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
6128 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
6129 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6131 if (ndr_flags & NDR_BUFFERS) {
6132 if (r->printer_name) {
6133 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
6134 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6135 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
6136 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6138 if (r->server_name) {
6139 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
6140 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6141 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
6142 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6144 if (r->user_name) {
6145 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
6146 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6147 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
6148 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6150 if (r->document_name) {
6151 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
6152 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6153 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
6154 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6156 if (r->notify_name) {
6157 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
6158 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6159 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
6160 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6162 if (r->data_type) {
6163 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
6164 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6165 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
6166 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6168 if (r->print_processor) {
6169 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
6170 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6171 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
6172 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6174 if (r->parameters) {
6175 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6176 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6177 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6178 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6180 if (r->driver_name) {
6181 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
6182 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6183 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
6184 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6186 if (r->text_status) {
6187 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
6188 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6189 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
6190 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6193 return NDR_ERR_SUCCESS;
6196 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo4 *r)
6198 uint32_t _ptr_printer_name;
6199 TALLOC_CTX *_mem_save_printer_name_0;
6200 uint32_t _ptr_server_name;
6201 TALLOC_CTX *_mem_save_server_name_0;
6202 uint32_t _ptr_user_name;
6203 TALLOC_CTX *_mem_save_user_name_0;
6204 uint32_t _ptr_document_name;
6205 TALLOC_CTX *_mem_save_document_name_0;
6206 uint32_t _ptr_notify_name;
6207 TALLOC_CTX *_mem_save_notify_name_0;
6208 uint32_t _ptr_data_type;
6209 TALLOC_CTX *_mem_save_data_type_0;
6210 uint32_t _ptr_print_processor;
6211 TALLOC_CTX *_mem_save_print_processor_0;
6212 uint32_t _ptr_parameters;
6213 TALLOC_CTX *_mem_save_parameters_0;
6214 uint32_t _ptr_driver_name;
6215 TALLOC_CTX *_mem_save_driver_name_0;
6216 uint32_t _ptr_text_status;
6217 TALLOC_CTX *_mem_save_text_status_0;
6218 if (ndr_flags & NDR_SCALARS) {
6219 NDR_CHECK(ndr_pull_align(ndr, 5));
6220 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
6221 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
6222 if (_ptr_printer_name) {
6223 NDR_PULL_ALLOC(ndr, r->printer_name);
6224 } else {
6225 r->printer_name = NULL;
6227 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
6228 if (_ptr_server_name) {
6229 NDR_PULL_ALLOC(ndr, r->server_name);
6230 } else {
6231 r->server_name = NULL;
6233 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
6234 if (_ptr_user_name) {
6235 NDR_PULL_ALLOC(ndr, r->user_name);
6236 } else {
6237 r->user_name = NULL;
6239 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
6240 if (_ptr_document_name) {
6241 NDR_PULL_ALLOC(ndr, r->document_name);
6242 } else {
6243 r->document_name = NULL;
6245 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
6246 if (_ptr_notify_name) {
6247 NDR_PULL_ALLOC(ndr, r->notify_name);
6248 } else {
6249 r->notify_name = NULL;
6251 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
6252 if (_ptr_data_type) {
6253 NDR_PULL_ALLOC(ndr, r->data_type);
6254 } else {
6255 r->data_type = NULL;
6257 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
6258 if (_ptr_print_processor) {
6259 NDR_PULL_ALLOC(ndr, r->print_processor);
6260 } else {
6261 r->print_processor = NULL;
6263 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
6264 if (_ptr_parameters) {
6265 NDR_PULL_ALLOC(ndr, r->parameters);
6266 } else {
6267 r->parameters = NULL;
6269 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
6270 if (_ptr_driver_name) {
6271 NDR_PULL_ALLOC(ndr, r->driver_name);
6272 } else {
6273 r->driver_name = NULL;
6275 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
6276 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
6277 if (_ptr_text_status) {
6278 NDR_PULL_ALLOC(ndr, r->text_status);
6279 } else {
6280 r->text_status = NULL;
6282 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
6283 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
6284 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
6285 if (r->priority > 99) {
6286 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
6288 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
6289 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
6290 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
6291 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
6292 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
6293 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
6294 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
6295 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
6296 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
6297 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6299 if (ndr_flags & NDR_BUFFERS) {
6300 if (r->printer_name) {
6301 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6302 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
6303 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
6304 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
6305 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
6306 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));
6308 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
6309 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
6310 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
6312 if (r->server_name) {
6313 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6314 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
6315 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
6316 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
6317 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
6318 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));
6320 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
6321 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
6322 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
6324 if (r->user_name) {
6325 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6326 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
6327 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
6328 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
6329 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
6330 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));
6332 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
6333 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
6334 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
6336 if (r->document_name) {
6337 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6338 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
6339 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
6340 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
6341 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
6342 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));
6344 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
6345 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
6346 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
6348 if (r->notify_name) {
6349 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6350 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
6351 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
6352 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
6353 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
6354 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));
6356 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
6357 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
6358 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
6360 if (r->data_type) {
6361 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
6362 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
6363 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
6364 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
6365 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
6366 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));
6368 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
6369 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
6370 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
6372 if (r->print_processor) {
6373 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
6374 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
6375 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
6376 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
6377 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
6378 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));
6380 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
6381 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
6382 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
6384 if (r->parameters) {
6385 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
6386 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
6387 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
6388 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
6389 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
6390 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));
6392 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
6393 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
6394 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
6396 if (r->driver_name) {
6397 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6398 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
6399 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
6400 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
6401 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
6402 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));
6404 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
6405 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
6406 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
6408 if (r->text_status) {
6409 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
6410 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
6411 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
6412 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
6413 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
6414 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));
6416 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
6417 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
6418 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
6421 return NDR_ERR_SUCCESS;
6424 _PUBLIC_ void ndr_print_spoolss_SetJobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo4 *r)
6426 ndr_print_struct(ndr, name, "spoolss_SetJobInfo4");
6427 ndr->depth++;
6428 ndr_print_uint32(ndr, "job_id", r->job_id);
6429 ndr_print_ptr(ndr, "printer_name", r->printer_name);
6430 ndr->depth++;
6431 if (r->printer_name) {
6432 ndr_print_string(ndr, "printer_name", r->printer_name);
6434 ndr->depth--;
6435 ndr_print_ptr(ndr, "server_name", r->server_name);
6436 ndr->depth++;
6437 if (r->server_name) {
6438 ndr_print_string(ndr, "server_name", r->server_name);
6440 ndr->depth--;
6441 ndr_print_ptr(ndr, "user_name", r->user_name);
6442 ndr->depth++;
6443 if (r->user_name) {
6444 ndr_print_string(ndr, "user_name", r->user_name);
6446 ndr->depth--;
6447 ndr_print_ptr(ndr, "document_name", r->document_name);
6448 ndr->depth++;
6449 if (r->document_name) {
6450 ndr_print_string(ndr, "document_name", r->document_name);
6452 ndr->depth--;
6453 ndr_print_ptr(ndr, "notify_name", r->notify_name);
6454 ndr->depth++;
6455 if (r->notify_name) {
6456 ndr_print_string(ndr, "notify_name", r->notify_name);
6458 ndr->depth--;
6459 ndr_print_ptr(ndr, "data_type", r->data_type);
6460 ndr->depth++;
6461 if (r->data_type) {
6462 ndr_print_string(ndr, "data_type", r->data_type);
6464 ndr->depth--;
6465 ndr_print_ptr(ndr, "print_processor", r->print_processor);
6466 ndr->depth++;
6467 if (r->print_processor) {
6468 ndr_print_string(ndr, "print_processor", r->print_processor);
6470 ndr->depth--;
6471 ndr_print_ptr(ndr, "parameters", r->parameters);
6472 ndr->depth++;
6473 if (r->parameters) {
6474 ndr_print_string(ndr, "parameters", r->parameters);
6476 ndr->depth--;
6477 ndr_print_ptr(ndr, "driver_name", r->driver_name);
6478 ndr->depth++;
6479 if (r->driver_name) {
6480 ndr_print_string(ndr, "driver_name", r->driver_name);
6482 ndr->depth--;
6483 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
6484 ndr_print_ptr(ndr, "text_status", r->text_status);
6485 ndr->depth++;
6486 if (r->text_status) {
6487 ndr_print_string(ndr, "text_status", r->text_status);
6489 ndr->depth--;
6490 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
6491 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
6492 ndr_print_uint32(ndr, "priority", r->priority);
6493 ndr_print_uint32(ndr, "position", r->position);
6494 ndr_print_uint32(ndr, "start_time", r->start_time);
6495 ndr_print_uint32(ndr, "until_time", r->until_time);
6496 ndr_print_uint32(ndr, "total_pages", r->total_pages);
6497 ndr_print_uint32(ndr, "size", r->size);
6498 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
6499 ndr_print_uint32(ndr, "time", r->time);
6500 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
6501 ndr_print_uint32(ndr, "size_high", r->size_high);
6502 ndr->depth--;
6505 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetJobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetJobInfo *r)
6507 if (ndr_flags & NDR_SCALARS) {
6508 int level = ndr_push_get_switch_value(ndr, r);
6509 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6510 NDR_CHECK(ndr_push_union_align(ndr, 5));
6511 switch (level) {
6512 case 1: {
6513 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
6514 break; }
6516 case 2: {
6517 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
6518 break; }
6520 case 3: {
6521 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
6522 break; }
6524 case 4: {
6525 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
6526 break; }
6528 default: {
6529 break; }
6533 if (ndr_flags & NDR_BUFFERS) {
6534 int level = ndr_push_get_switch_value(ndr, r);
6535 switch (level) {
6536 case 1:
6537 if (r->info1) {
6538 NDR_CHECK(ndr_push_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6540 break;
6542 case 2:
6543 if (r->info2) {
6544 NDR_CHECK(ndr_push_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6546 break;
6548 case 3:
6549 if (r->info3) {
6550 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
6552 break;
6554 case 4:
6555 if (r->info4) {
6556 NDR_CHECK(ndr_push_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6558 break;
6560 default:
6561 break;
6565 return NDR_ERR_SUCCESS;
6568 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetJobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetJobInfo *r)
6570 int level;
6571 uint32_t _level;
6572 TALLOC_CTX *_mem_save_info1_0;
6573 TALLOC_CTX *_mem_save_info2_0;
6574 TALLOC_CTX *_mem_save_info3_0;
6575 TALLOC_CTX *_mem_save_info4_0;
6576 level = ndr_pull_get_switch_value(ndr, r);
6577 if (ndr_flags & NDR_SCALARS) {
6578 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6579 if (_level != level) {
6580 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
6582 NDR_CHECK(ndr_pull_union_align(ndr, 5));
6583 switch (level) {
6584 case 1: {
6585 uint32_t _ptr_info1;
6586 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
6587 if (_ptr_info1) {
6588 NDR_PULL_ALLOC(ndr, r->info1);
6589 } else {
6590 r->info1 = NULL;
6592 break; }
6594 case 2: {
6595 uint32_t _ptr_info2;
6596 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
6597 if (_ptr_info2) {
6598 NDR_PULL_ALLOC(ndr, r->info2);
6599 } else {
6600 r->info2 = NULL;
6602 break; }
6604 case 3: {
6605 uint32_t _ptr_info3;
6606 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
6607 if (_ptr_info3) {
6608 NDR_PULL_ALLOC(ndr, r->info3);
6609 } else {
6610 r->info3 = NULL;
6612 break; }
6614 case 4: {
6615 uint32_t _ptr_info4;
6616 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
6617 if (_ptr_info4) {
6618 NDR_PULL_ALLOC(ndr, r->info4);
6619 } else {
6620 r->info4 = NULL;
6622 break; }
6624 default: {
6625 break; }
6629 if (ndr_flags & NDR_BUFFERS) {
6630 switch (level) {
6631 case 1:
6632 if (r->info1) {
6633 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6634 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
6635 NDR_CHECK(ndr_pull_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6636 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
6638 break;
6640 case 2:
6641 if (r->info2) {
6642 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
6643 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
6644 NDR_CHECK(ndr_pull_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6645 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
6647 break;
6649 case 3:
6650 if (r->info3) {
6651 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
6652 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
6653 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
6654 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
6656 break;
6658 case 4:
6659 if (r->info4) {
6660 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
6661 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
6662 NDR_CHECK(ndr_pull_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6663 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
6665 break;
6667 default:
6668 break;
6672 return NDR_ERR_SUCCESS;
6675 _PUBLIC_ void ndr_print_spoolss_SetJobInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetJobInfo *r)
6677 int level;
6678 level = ndr_print_get_switch_value(ndr, r);
6679 ndr_print_union(ndr, name, level, "spoolss_SetJobInfo");
6680 switch (level) {
6681 case 1:
6682 ndr_print_ptr(ndr, "info1", r->info1);
6683 ndr->depth++;
6684 if (r->info1) {
6685 ndr_print_spoolss_SetJobInfo1(ndr, "info1", r->info1);
6687 ndr->depth--;
6688 break;
6690 case 2:
6691 ndr_print_ptr(ndr, "info2", r->info2);
6692 ndr->depth++;
6693 if (r->info2) {
6694 ndr_print_spoolss_SetJobInfo2(ndr, "info2", r->info2);
6696 ndr->depth--;
6697 break;
6699 case 3:
6700 ndr_print_ptr(ndr, "info3", r->info3);
6701 ndr->depth++;
6702 if (r->info3) {
6703 ndr_print_spoolss_JobInfo3(ndr, "info3", r->info3);
6705 ndr->depth--;
6706 break;
6708 case 4:
6709 ndr_print_ptr(ndr, "info4", r->info4);
6710 ndr->depth++;
6711 if (r->info4) {
6712 ndr_print_spoolss_SetJobInfo4(ndr, "info4", r->info4);
6714 ndr->depth--;
6715 break;
6717 default:
6718 break;
6723 static enum ndr_err_code ndr_push_spoolss_JobInfoContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfoContainer *r)
6725 if (ndr_flags & NDR_SCALARS) {
6726 NDR_CHECK(ndr_push_align(ndr, 5));
6727 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
6728 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
6729 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
6730 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6732 if (ndr_flags & NDR_BUFFERS) {
6733 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
6735 return NDR_ERR_SUCCESS;
6738 static enum ndr_err_code ndr_pull_spoolss_JobInfoContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfoContainer *r)
6740 if (ndr_flags & NDR_SCALARS) {
6741 NDR_CHECK(ndr_pull_align(ndr, 5));
6742 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
6743 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
6744 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
6745 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6747 if (ndr_flags & NDR_BUFFERS) {
6748 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
6750 return NDR_ERR_SUCCESS;
6753 _PUBLIC_ void ndr_print_spoolss_JobInfoContainer(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfoContainer *r)
6755 ndr_print_struct(ndr, name, "spoolss_JobInfoContainer");
6756 ndr->depth++;
6757 ndr_print_uint32(ndr, "level", r->level);
6758 ndr_print_set_switch_value(ndr, &r->info, r->level);
6759 ndr_print_spoolss_SetJobInfo(ndr, "info", &r->info);
6760 ndr->depth--;
6763 static enum ndr_err_code ndr_push_spoolss_JobControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobControl r)
6765 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
6766 return NDR_ERR_SUCCESS;
6769 static enum ndr_err_code ndr_pull_spoolss_JobControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobControl *r)
6771 uint32_t v;
6772 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
6773 *r = v;
6774 return NDR_ERR_SUCCESS;
6777 _PUBLIC_ void ndr_print_spoolss_JobControl(struct ndr_print *ndr, const char *name, enum spoolss_JobControl r)
6779 const char *val = NULL;
6781 switch (r) {
6782 case SPOOLSS_JOB_CONTROL_PAUSE: val = "SPOOLSS_JOB_CONTROL_PAUSE"; break;
6783 case SPOOLSS_JOB_CONTROL_RESUME: val = "SPOOLSS_JOB_CONTROL_RESUME"; break;
6784 case SPOOLSS_JOB_CONTROL_CANCEL: val = "SPOOLSS_JOB_CONTROL_CANCEL"; break;
6785 case SPOOLSS_JOB_CONTROL_RESTART: val = "SPOOLSS_JOB_CONTROL_RESTART"; break;
6786 case SPOOLSS_JOB_CONTROL_DELETE: val = "SPOOLSS_JOB_CONTROL_DELETE"; break;
6787 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER: val = "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
6788 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED: val = "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
6789 case SPOOLSS_JOB_CONTROL_RETAIN: val = "SPOOLSS_JOB_CONTROL_RETAIN"; break;
6790 case SPOOLSS_JOB_CONTROL_RELEASE: val = "SPOOLSS_JOB_CONTROL_RELEASE"; break;
6792 ndr_print_enum(ndr, name, "ENUM", val, r);
6795 static enum ndr_err_code ndr_push_spoolss_PrinterControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterControl r)
6797 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
6798 return NDR_ERR_SUCCESS;
6801 static enum ndr_err_code ndr_pull_spoolss_PrinterControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterControl *r)
6803 uint32_t v;
6804 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
6805 *r = v;
6806 return NDR_ERR_SUCCESS;
6809 _PUBLIC_ void ndr_print_spoolss_PrinterControl(struct ndr_print *ndr, const char *name, enum spoolss_PrinterControl r)
6811 const char *val = NULL;
6813 switch (r) {
6814 case SPOOLSS_PRINTER_CONTROL_UNPAUSE: val = "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
6815 case SPOOLSS_PRINTER_CONTROL_PAUSE: val = "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
6816 case SPOOLSS_PRINTER_CONTROL_RESUME: val = "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
6817 case SPOOLSS_PRINTER_CONTROL_PURGE: val = "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
6818 case SPOOLSS_PRINTER_CONTROL_SET_STATUS: val = "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
6820 ndr_print_enum(ndr, name, "ENUM", val, r);
6823 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo0 *r)
6825 if (ndr_flags & NDR_SCALARS) {
6826 NDR_CHECK(ndr_push_align(ndr, 5));
6827 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6828 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6829 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
6830 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
6831 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
6832 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
6833 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
6834 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
6835 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
6836 NDR_CHECK(ndr_push_spoolss_Build(ndr, NDR_SCALARS, r->free_build));
6837 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
6838 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
6839 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
6840 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
6841 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
6842 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->job_error));
6843 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
6844 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
6845 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
6846 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
6847 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
6848 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
6849 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
6850 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
6851 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
6852 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
6853 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
6854 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
6855 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
6856 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6858 if (ndr_flags & NDR_BUFFERS) {
6859 if (r->servername) {
6860 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6861 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6862 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6863 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6865 if (r->printername) {
6866 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6867 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6868 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6869 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6872 return NDR_ERR_SUCCESS;
6875 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo0 *r)
6877 uint32_t _ptr_servername;
6878 TALLOC_CTX *_mem_save_servername_0;
6879 uint32_t _ptr_printername;
6880 TALLOC_CTX *_mem_save_printername_0;
6881 if (ndr_flags & NDR_SCALARS) {
6882 NDR_CHECK(ndr_pull_align(ndr, 5));
6883 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6884 if (_ptr_servername) {
6885 NDR_PULL_ALLOC(ndr, r->servername);
6886 } else {
6887 r->servername = NULL;
6889 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6890 if (_ptr_printername) {
6891 NDR_PULL_ALLOC(ndr, r->printername);
6892 } else {
6893 r->printername = NULL;
6895 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
6896 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
6897 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
6898 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
6899 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
6900 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
6901 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
6902 NDR_CHECK(ndr_pull_spoolss_Build(ndr, NDR_SCALARS, &r->free_build));
6903 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
6904 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
6905 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
6906 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
6907 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
6908 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->job_error));
6909 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
6910 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
6911 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
6912 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
6913 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
6914 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
6915 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
6916 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
6917 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
6918 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
6919 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
6920 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
6921 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
6922 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6924 if (ndr_flags & NDR_BUFFERS) {
6925 if (r->servername) {
6926 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6927 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
6928 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
6929 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
6930 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
6931 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));
6933 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
6934 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
6935 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
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);
6950 return NDR_ERR_SUCCESS;
6953 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo0 *r)
6955 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo0");
6956 ndr->depth++;
6957 ndr_print_ptr(ndr, "servername", r->servername);
6958 ndr->depth++;
6959 if (r->servername) {
6960 ndr_print_string(ndr, "servername", r->servername);
6962 ndr->depth--;
6963 ndr_print_ptr(ndr, "printername", r->printername);
6964 ndr->depth++;
6965 if (r->printername) {
6966 ndr_print_string(ndr, "printername", r->printername);
6968 ndr->depth--;
6969 ndr_print_uint32(ndr, "cjobs", r->cjobs);
6970 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
6971 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
6972 ndr_print_spoolss_Time(ndr, "time", &r->time);
6973 ndr_print_uint32(ndr, "global_counter", r->global_counter);
6974 ndr_print_uint32(ndr, "total_pages", r->total_pages);
6975 ndr_print_uint32(ndr, "version", r->version);
6976 ndr_print_spoolss_Build(ndr, "free_build", r->free_build);
6977 ndr_print_uint32(ndr, "spooling", r->spooling);
6978 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
6979 ndr_print_uint32(ndr, "session_counter", r->session_counter);
6980 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
6981 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
6982 ndr_print_spoolss_JobStatus(ndr, "job_error", r->job_error);
6983 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
6984 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
6985 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
6986 ndr_print_uint32(ndr, "change_id", r->change_id);
6987 ndr_print_WERROR(ndr, "last_error", r->last_error);
6988 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
6989 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
6990 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
6991 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
6992 ndr_print_uint16(ndr, "processor_level", r->processor_level);
6993 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
6994 ndr_print_uint32(ndr, "reserved2", r->reserved2);
6995 ndr_print_uint32(ndr, "reserved3", r->reserved3);
6996 ndr->depth--;
6999 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo1 *r)
7001 if (ndr_flags & NDR_SCALARS) {
7002 NDR_CHECK(ndr_push_align(ndr, 5));
7003 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->flags));
7004 NDR_CHECK(ndr_push_unique_ptr(ndr, r->description));
7005 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
7006 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
7007 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7009 if (ndr_flags & NDR_BUFFERS) {
7010 if (r->description) {
7011 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
7012 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7013 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
7014 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->description, ndr_charset_length(r->description, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7016 if (r->name) {
7017 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
7018 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7019 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
7020 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7022 if (r->comment) {
7023 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
7024 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7025 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
7026 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7029 return NDR_ERR_SUCCESS;
7032 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo1 *r)
7034 uint32_t _ptr_description;
7035 TALLOC_CTX *_mem_save_description_0;
7036 uint32_t _ptr_name;
7037 TALLOC_CTX *_mem_save_name_0;
7038 uint32_t _ptr_comment;
7039 TALLOC_CTX *_mem_save_comment_0;
7040 if (ndr_flags & NDR_SCALARS) {
7041 NDR_CHECK(ndr_pull_align(ndr, 5));
7042 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->flags));
7043 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
7044 if (_ptr_description) {
7045 NDR_PULL_ALLOC(ndr, r->description);
7046 } else {
7047 r->description = NULL;
7049 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
7050 if (_ptr_name) {
7051 NDR_PULL_ALLOC(ndr, r->name);
7052 } else {
7053 r->name = NULL;
7055 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
7056 if (_ptr_comment) {
7057 NDR_PULL_ALLOC(ndr, r->comment);
7058 } else {
7059 r->comment = NULL;
7061 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7063 if (ndr_flags & NDR_BUFFERS) {
7064 if (r->description) {
7065 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
7066 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
7067 NDR_CHECK(ndr_pull_array_size(ndr, &r->description));
7068 NDR_CHECK(ndr_pull_array_length(ndr, &r->description));
7069 if (ndr_get_array_length(ndr, &r->description) > ndr_get_array_size(ndr, &r->description)) {
7070 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));
7072 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t)));
7073 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->description, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t), CH_UTF16));
7074 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
7076 if (r->name) {
7077 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7078 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
7079 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
7080 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
7081 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
7082 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));
7084 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
7085 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
7086 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
7088 if (r->comment) {
7089 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
7090 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
7091 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
7092 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
7093 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
7094 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));
7096 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
7097 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
7098 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
7101 return NDR_ERR_SUCCESS;
7104 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo1 *r)
7106 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo1");
7107 ndr->depth++;
7108 ndr_print_spoolss_PrinterAttributes(ndr, "flags", r->flags);
7109 ndr_print_ptr(ndr, "description", r->description);
7110 ndr->depth++;
7111 if (r->description) {
7112 ndr_print_string(ndr, "description", r->description);
7114 ndr->depth--;
7115 ndr_print_ptr(ndr, "name", r->name);
7116 ndr->depth++;
7117 if (r->name) {
7118 ndr_print_string(ndr, "name", r->name);
7120 ndr->depth--;
7121 ndr_print_ptr(ndr, "comment", r->comment);
7122 ndr->depth++;
7123 if (r->comment) {
7124 ndr_print_string(ndr, "comment", r->comment);
7126 ndr->depth--;
7127 ndr->depth--;
7130 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo2 *r)
7132 if (ndr_flags & NDR_SCALARS) {
7133 NDR_CHECK(ndr_push_align(ndr, 5));
7134 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
7135 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
7136 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sharename));
7137 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
7138 NDR_CHECK(ndr_push_unique_ptr(ndr, r->drivername));
7139 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
7140 NDR_CHECK(ndr_push_unique_ptr(ndr, r->location));
7141 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->devmode_ptr));
7142 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sepfile));
7143 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printprocessor));
7144 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
7145 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
7146 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->secdesc_ptr));
7147 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
7148 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
7149 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
7150 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
7151 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
7152 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
7153 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
7154 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
7155 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7157 if (ndr_flags & NDR_BUFFERS) {
7158 if (r->servername) {
7159 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
7160 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7161 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
7162 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7164 if (r->printername) {
7165 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7166 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7167 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7168 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7170 if (r->sharename) {
7171 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
7172 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7173 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
7174 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sharename, ndr_charset_length(r->sharename, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7176 if (r->portname) {
7177 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
7178 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7179 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
7180 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7182 if (r->drivername) {
7183 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
7184 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7185 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
7186 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->drivername, ndr_charset_length(r->drivername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7188 if (r->comment) {
7189 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
7190 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7191 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
7192 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7194 if (r->location) {
7195 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
7196 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7197 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
7198 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->location, ndr_charset_length(r->location, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7200 if (r->sepfile) {
7201 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
7202 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7203 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
7204 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sepfile, ndr_charset_length(r->sepfile, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7206 if (r->printprocessor) {
7207 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
7208 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7209 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
7210 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printprocessor, ndr_charset_length(r->printprocessor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7212 if (r->datatype) {
7213 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
7214 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7215 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
7216 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7218 if (r->parameters) {
7219 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
7220 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7221 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
7222 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7225 return NDR_ERR_SUCCESS;
7228 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo2 *r)
7230 uint32_t _ptr_servername;
7231 TALLOC_CTX *_mem_save_servername_0;
7232 uint32_t _ptr_printername;
7233 TALLOC_CTX *_mem_save_printername_0;
7234 uint32_t _ptr_sharename;
7235 TALLOC_CTX *_mem_save_sharename_0;
7236 uint32_t _ptr_portname;
7237 TALLOC_CTX *_mem_save_portname_0;
7238 uint32_t _ptr_drivername;
7239 TALLOC_CTX *_mem_save_drivername_0;
7240 uint32_t _ptr_comment;
7241 TALLOC_CTX *_mem_save_comment_0;
7242 uint32_t _ptr_location;
7243 TALLOC_CTX *_mem_save_location_0;
7244 uint32_t _ptr_sepfile;
7245 TALLOC_CTX *_mem_save_sepfile_0;
7246 uint32_t _ptr_printprocessor;
7247 TALLOC_CTX *_mem_save_printprocessor_0;
7248 uint32_t _ptr_datatype;
7249 TALLOC_CTX *_mem_save_datatype_0;
7250 uint32_t _ptr_parameters;
7251 TALLOC_CTX *_mem_save_parameters_0;
7252 if (ndr_flags & NDR_SCALARS) {
7253 NDR_CHECK(ndr_pull_align(ndr, 5));
7254 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
7255 if (_ptr_servername) {
7256 NDR_PULL_ALLOC(ndr, r->servername);
7257 } else {
7258 r->servername = NULL;
7260 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
7261 if (_ptr_printername) {
7262 NDR_PULL_ALLOC(ndr, r->printername);
7263 } else {
7264 r->printername = NULL;
7266 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
7267 if (_ptr_sharename) {
7268 NDR_PULL_ALLOC(ndr, r->sharename);
7269 } else {
7270 r->sharename = NULL;
7272 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
7273 if (_ptr_portname) {
7274 NDR_PULL_ALLOC(ndr, r->portname);
7275 } else {
7276 r->portname = NULL;
7278 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
7279 if (_ptr_drivername) {
7280 NDR_PULL_ALLOC(ndr, r->drivername);
7281 } else {
7282 r->drivername = NULL;
7284 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
7285 if (_ptr_comment) {
7286 NDR_PULL_ALLOC(ndr, r->comment);
7287 } else {
7288 r->comment = NULL;
7290 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
7291 if (_ptr_location) {
7292 NDR_PULL_ALLOC(ndr, r->location);
7293 } else {
7294 r->location = NULL;
7296 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->devmode_ptr));
7297 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
7298 if (_ptr_sepfile) {
7299 NDR_PULL_ALLOC(ndr, r->sepfile);
7300 } else {
7301 r->sepfile = NULL;
7303 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
7304 if (_ptr_printprocessor) {
7305 NDR_PULL_ALLOC(ndr, r->printprocessor);
7306 } else {
7307 r->printprocessor = NULL;
7309 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
7310 if (_ptr_datatype) {
7311 NDR_PULL_ALLOC(ndr, r->datatype);
7312 } else {
7313 r->datatype = NULL;
7315 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
7316 if (_ptr_parameters) {
7317 NDR_PULL_ALLOC(ndr, r->parameters);
7318 } else {
7319 r->parameters = NULL;
7321 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->secdesc_ptr));
7322 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
7323 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
7324 if (r->priority > 99) {
7325 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
7327 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
7328 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
7329 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
7330 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
7331 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
7332 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
7333 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7335 if (ndr_flags & NDR_BUFFERS) {
7336 if (r->servername) {
7337 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7338 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
7339 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
7340 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
7341 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
7342 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));
7344 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
7345 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
7346 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
7348 if (r->printername) {
7349 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7350 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
7351 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
7352 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
7353 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
7354 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));
7356 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
7357 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
7358 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
7360 if (r->sharename) {
7361 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
7362 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
7363 NDR_CHECK(ndr_pull_array_size(ndr, &r->sharename));
7364 NDR_CHECK(ndr_pull_array_length(ndr, &r->sharename));
7365 if (ndr_get_array_length(ndr, &r->sharename) > ndr_get_array_size(ndr, &r->sharename)) {
7366 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));
7368 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t)));
7369 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sharename, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t), CH_UTF16));
7370 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
7372 if (r->portname) {
7373 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
7374 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
7375 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
7376 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
7377 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
7378 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));
7380 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
7381 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
7382 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
7384 if (r->drivername) {
7385 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7386 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
7387 NDR_CHECK(ndr_pull_array_size(ndr, &r->drivername));
7388 NDR_CHECK(ndr_pull_array_length(ndr, &r->drivername));
7389 if (ndr_get_array_length(ndr, &r->drivername) > ndr_get_array_size(ndr, &r->drivername)) {
7390 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));
7392 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t)));
7393 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->drivername, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t), CH_UTF16));
7394 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
7396 if (r->comment) {
7397 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
7398 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
7399 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
7400 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
7401 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
7402 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));
7404 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
7405 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
7406 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
7408 if (r->location) {
7409 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
7410 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
7411 NDR_CHECK(ndr_pull_array_size(ndr, &r->location));
7412 NDR_CHECK(ndr_pull_array_length(ndr, &r->location));
7413 if (ndr_get_array_length(ndr, &r->location) > ndr_get_array_size(ndr, &r->location)) {
7414 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));
7416 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t)));
7417 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->location, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t), CH_UTF16));
7418 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
7420 if (r->sepfile) {
7421 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
7422 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
7423 NDR_CHECK(ndr_pull_array_size(ndr, &r->sepfile));
7424 NDR_CHECK(ndr_pull_array_length(ndr, &r->sepfile));
7425 if (ndr_get_array_length(ndr, &r->sepfile) > ndr_get_array_size(ndr, &r->sepfile)) {
7426 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));
7428 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t)));
7429 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sepfile, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t), CH_UTF16));
7430 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
7432 if (r->printprocessor) {
7433 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
7434 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
7435 NDR_CHECK(ndr_pull_array_size(ndr, &r->printprocessor));
7436 NDR_CHECK(ndr_pull_array_length(ndr, &r->printprocessor));
7437 if (ndr_get_array_length(ndr, &r->printprocessor) > ndr_get_array_size(ndr, &r->printprocessor)) {
7438 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));
7440 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t)));
7441 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printprocessor, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t), CH_UTF16));
7442 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
7444 if (r->datatype) {
7445 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
7446 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
7447 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
7448 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
7449 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
7450 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));
7452 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
7453 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
7454 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
7456 if (r->parameters) {
7457 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
7458 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
7459 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
7460 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
7461 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
7462 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));
7464 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
7465 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
7466 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
7469 return NDR_ERR_SUCCESS;
7472 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo2 *r)
7474 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo2");
7475 ndr->depth++;
7476 ndr_print_ptr(ndr, "servername", r->servername);
7477 ndr->depth++;
7478 if (r->servername) {
7479 ndr_print_string(ndr, "servername", r->servername);
7481 ndr->depth--;
7482 ndr_print_ptr(ndr, "printername", r->printername);
7483 ndr->depth++;
7484 if (r->printername) {
7485 ndr_print_string(ndr, "printername", r->printername);
7487 ndr->depth--;
7488 ndr_print_ptr(ndr, "sharename", r->sharename);
7489 ndr->depth++;
7490 if (r->sharename) {
7491 ndr_print_string(ndr, "sharename", r->sharename);
7493 ndr->depth--;
7494 ndr_print_ptr(ndr, "portname", r->portname);
7495 ndr->depth++;
7496 if (r->portname) {
7497 ndr_print_string(ndr, "portname", r->portname);
7499 ndr->depth--;
7500 ndr_print_ptr(ndr, "drivername", r->drivername);
7501 ndr->depth++;
7502 if (r->drivername) {
7503 ndr_print_string(ndr, "drivername", r->drivername);
7505 ndr->depth--;
7506 ndr_print_ptr(ndr, "comment", r->comment);
7507 ndr->depth++;
7508 if (r->comment) {
7509 ndr_print_string(ndr, "comment", r->comment);
7511 ndr->depth--;
7512 ndr_print_ptr(ndr, "location", r->location);
7513 ndr->depth++;
7514 if (r->location) {
7515 ndr_print_string(ndr, "location", r->location);
7517 ndr->depth--;
7518 ndr_print_uint32(ndr, "devmode_ptr", r->devmode_ptr);
7519 ndr_print_ptr(ndr, "sepfile", r->sepfile);
7520 ndr->depth++;
7521 if (r->sepfile) {
7522 ndr_print_string(ndr, "sepfile", r->sepfile);
7524 ndr->depth--;
7525 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
7526 ndr->depth++;
7527 if (r->printprocessor) {
7528 ndr_print_string(ndr, "printprocessor", r->printprocessor);
7530 ndr->depth--;
7531 ndr_print_ptr(ndr, "datatype", r->datatype);
7532 ndr->depth++;
7533 if (r->datatype) {
7534 ndr_print_string(ndr, "datatype", r->datatype);
7536 ndr->depth--;
7537 ndr_print_ptr(ndr, "parameters", r->parameters);
7538 ndr->depth++;
7539 if (r->parameters) {
7540 ndr_print_string(ndr, "parameters", r->parameters);
7542 ndr->depth--;
7543 ndr_print_uint32(ndr, "secdesc_ptr", r->secdesc_ptr);
7544 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
7545 ndr_print_uint32(ndr, "priority", r->priority);
7546 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
7547 ndr_print_uint32(ndr, "starttime", r->starttime);
7548 ndr_print_uint32(ndr, "untiltime", r->untiltime);
7549 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
7550 ndr_print_uint32(ndr, "cjobs", r->cjobs);
7551 ndr_print_uint32(ndr, "averageppm", r->averageppm);
7552 ndr->depth--;
7555 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo3 *r)
7557 if (ndr_flags & NDR_SCALARS) {
7558 NDR_CHECK(ndr_push_align(ndr, 4));
7559 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sec_desc_ptr));
7560 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
7562 if (ndr_flags & NDR_BUFFERS) {
7564 return NDR_ERR_SUCCESS;
7567 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo3 *r)
7569 if (ndr_flags & NDR_SCALARS) {
7570 NDR_CHECK(ndr_pull_align(ndr, 4));
7571 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sec_desc_ptr));
7572 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
7574 if (ndr_flags & NDR_BUFFERS) {
7576 return NDR_ERR_SUCCESS;
7579 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo3 *r)
7581 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo3");
7582 ndr->depth++;
7583 ndr_print_uint32(ndr, "sec_desc_ptr", r->sec_desc_ptr);
7584 ndr->depth--;
7587 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo4 *r)
7589 if (ndr_flags & NDR_SCALARS) {
7590 NDR_CHECK(ndr_push_align(ndr, 5));
7591 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
7592 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
7593 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
7594 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7596 if (ndr_flags & NDR_BUFFERS) {
7597 if (r->printername) {
7598 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7599 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7600 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7601 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7603 if (r->servername) {
7604 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
7605 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7606 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
7607 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7610 return NDR_ERR_SUCCESS;
7613 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo4 *r)
7615 uint32_t _ptr_printername;
7616 TALLOC_CTX *_mem_save_printername_0;
7617 uint32_t _ptr_servername;
7618 TALLOC_CTX *_mem_save_servername_0;
7619 if (ndr_flags & NDR_SCALARS) {
7620 NDR_CHECK(ndr_pull_align(ndr, 5));
7621 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
7622 if (_ptr_printername) {
7623 NDR_PULL_ALLOC(ndr, r->printername);
7624 } else {
7625 r->printername = NULL;
7627 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
7628 if (_ptr_servername) {
7629 NDR_PULL_ALLOC(ndr, r->servername);
7630 } else {
7631 r->servername = NULL;
7633 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
7634 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7636 if (ndr_flags & NDR_BUFFERS) {
7637 if (r->printername) {
7638 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7639 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
7640 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
7641 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
7642 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
7643 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));
7645 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
7646 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
7647 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
7649 if (r->servername) {
7650 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7651 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
7652 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
7653 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
7654 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
7655 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));
7657 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
7658 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
7659 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
7662 return NDR_ERR_SUCCESS;
7665 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo4 *r)
7667 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo4");
7668 ndr->depth++;
7669 ndr_print_ptr(ndr, "printername", r->printername);
7670 ndr->depth++;
7671 if (r->printername) {
7672 ndr_print_string(ndr, "printername", r->printername);
7674 ndr->depth--;
7675 ndr_print_ptr(ndr, "servername", r->servername);
7676 ndr->depth++;
7677 if (r->servername) {
7678 ndr_print_string(ndr, "servername", r->servername);
7680 ndr->depth--;
7681 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
7682 ndr->depth--;
7685 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo5 *r)
7687 if (ndr_flags & NDR_SCALARS) {
7688 NDR_CHECK(ndr_push_align(ndr, 5));
7689 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
7690 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
7691 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
7692 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
7693 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
7694 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7696 if (ndr_flags & NDR_BUFFERS) {
7697 if (r->printername) {
7698 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7699 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7700 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7701 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7703 if (r->portname) {
7704 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
7705 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7706 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
7707 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7710 return NDR_ERR_SUCCESS;
7713 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo5 *r)
7715 uint32_t _ptr_printername;
7716 TALLOC_CTX *_mem_save_printername_0;
7717 uint32_t _ptr_portname;
7718 TALLOC_CTX *_mem_save_portname_0;
7719 if (ndr_flags & NDR_SCALARS) {
7720 NDR_CHECK(ndr_pull_align(ndr, 5));
7721 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
7722 if (_ptr_printername) {
7723 NDR_PULL_ALLOC(ndr, r->printername);
7724 } else {
7725 r->printername = NULL;
7727 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
7728 if (_ptr_portname) {
7729 NDR_PULL_ALLOC(ndr, r->portname);
7730 } else {
7731 r->portname = NULL;
7733 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
7734 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
7735 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
7736 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7738 if (ndr_flags & NDR_BUFFERS) {
7739 if (r->printername) {
7740 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7741 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
7742 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
7743 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
7744 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
7745 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));
7747 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
7748 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
7749 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
7751 if (r->portname) {
7752 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
7753 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
7754 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
7755 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
7756 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
7757 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));
7759 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
7760 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
7761 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
7764 return NDR_ERR_SUCCESS;
7767 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo5 *r)
7769 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo5");
7770 ndr->depth++;
7771 ndr_print_ptr(ndr, "printername", r->printername);
7772 ndr->depth++;
7773 if (r->printername) {
7774 ndr_print_string(ndr, "printername", r->printername);
7776 ndr->depth--;
7777 ndr_print_ptr(ndr, "portname", r->portname);
7778 ndr->depth++;
7779 if (r->portname) {
7780 ndr_print_string(ndr, "portname", r->portname);
7782 ndr->depth--;
7783 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
7784 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
7785 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
7786 ndr->depth--;
7789 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo6 *r)
7791 if (ndr_flags & NDR_SCALARS) {
7792 NDR_CHECK(ndr_push_align(ndr, 4));
7793 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
7794 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
7796 if (ndr_flags & NDR_BUFFERS) {
7798 return NDR_ERR_SUCCESS;
7801 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo6 *r)
7803 if (ndr_flags & NDR_SCALARS) {
7804 NDR_CHECK(ndr_pull_align(ndr, 4));
7805 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
7806 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
7808 if (ndr_flags & NDR_BUFFERS) {
7810 return NDR_ERR_SUCCESS;
7813 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo6 *r)
7815 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo6");
7816 ndr->depth++;
7817 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
7818 ndr->depth--;
7821 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo7 *r)
7823 if (ndr_flags & NDR_SCALARS) {
7824 NDR_CHECK(ndr_push_align(ndr, 5));
7825 NDR_CHECK(ndr_push_unique_ptr(ndr, r->guid));
7826 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
7827 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7829 if (ndr_flags & NDR_BUFFERS) {
7830 if (r->guid) {
7831 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
7832 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7833 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
7834 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->guid, ndr_charset_length(r->guid, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7837 return NDR_ERR_SUCCESS;
7840 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo7 *r)
7842 uint32_t _ptr_guid;
7843 TALLOC_CTX *_mem_save_guid_0;
7844 if (ndr_flags & NDR_SCALARS) {
7845 NDR_CHECK(ndr_pull_align(ndr, 5));
7846 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
7847 if (_ptr_guid) {
7848 NDR_PULL_ALLOC(ndr, r->guid);
7849 } else {
7850 r->guid = NULL;
7852 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
7853 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7855 if (ndr_flags & NDR_BUFFERS) {
7856 if (r->guid) {
7857 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
7858 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
7859 NDR_CHECK(ndr_pull_array_size(ndr, &r->guid));
7860 NDR_CHECK(ndr_pull_array_length(ndr, &r->guid));
7861 if (ndr_get_array_length(ndr, &r->guid) > ndr_get_array_size(ndr, &r->guid)) {
7862 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));
7864 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t)));
7865 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->guid, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t), CH_UTF16));
7866 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
7869 return NDR_ERR_SUCCESS;
7872 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo7 *r)
7874 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo7");
7875 ndr->depth++;
7876 ndr_print_ptr(ndr, "guid", r->guid);
7877 ndr->depth++;
7878 if (r->guid) {
7879 ndr_print_string(ndr, "guid", r->guid);
7881 ndr->depth--;
7882 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
7883 ndr->depth--;
7886 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo8 *r)
7888 if (ndr_flags & NDR_SCALARS) {
7889 NDR_CHECK(ndr_push_align(ndr, 4));
7890 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->devmode_ptr));
7891 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
7893 if (ndr_flags & NDR_BUFFERS) {
7895 return NDR_ERR_SUCCESS;
7898 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo8 *r)
7900 if (ndr_flags & NDR_SCALARS) {
7901 NDR_CHECK(ndr_pull_align(ndr, 4));
7902 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->devmode_ptr));
7903 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
7905 if (ndr_flags & NDR_BUFFERS) {
7907 return NDR_ERR_SUCCESS;
7910 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo8 *r)
7912 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo8");
7913 ndr->depth++;
7914 ndr_print_uint32(ndr, "devmode_ptr", r->devmode_ptr);
7915 ndr->depth--;
7918 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo9(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo9 *r)
7920 if (ndr_flags & NDR_SCALARS) {
7921 NDR_CHECK(ndr_push_align(ndr, 4));
7922 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->devmode_ptr));
7923 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
7925 if (ndr_flags & NDR_BUFFERS) {
7927 return NDR_ERR_SUCCESS;
7930 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo9(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo9 *r)
7932 if (ndr_flags & NDR_SCALARS) {
7933 NDR_CHECK(ndr_pull_align(ndr, 4));
7934 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->devmode_ptr));
7935 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
7937 if (ndr_flags & NDR_BUFFERS) {
7939 return NDR_ERR_SUCCESS;
7942 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo9(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo9 *r)
7944 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo9");
7945 ndr->depth++;
7946 ndr_print_uint32(ndr, "devmode_ptr", r->devmode_ptr);
7947 ndr->depth--;
7950 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetPrinterInfo *r)
7952 if (ndr_flags & NDR_SCALARS) {
7953 int level = ndr_push_get_switch_value(ndr, r);
7954 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7955 NDR_CHECK(ndr_push_union_align(ndr, 5));
7956 switch (level) {
7957 case 0: {
7958 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
7959 break; }
7961 case 1: {
7962 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7963 break; }
7965 case 2: {
7966 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
7967 break; }
7969 case 3: {
7970 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
7971 break; }
7973 case 4: {
7974 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
7975 break; }
7977 case 5: {
7978 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info5));
7979 break; }
7981 case 6: {
7982 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
7983 break; }
7985 case 7: {
7986 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info7));
7987 break; }
7989 case 8: {
7990 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
7991 break; }
7993 case 9: {
7994 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info9));
7995 break; }
7997 default: {
7998 break; }
8002 if (ndr_flags & NDR_BUFFERS) {
8003 int level = ndr_push_get_switch_value(ndr, r);
8004 switch (level) {
8005 case 0:
8006 if (r->info0) {
8007 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
8009 break;
8011 case 1:
8012 if (r->info1) {
8013 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
8015 break;
8017 case 2:
8018 if (r->info2) {
8019 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
8021 break;
8023 case 3:
8024 if (r->info3) {
8025 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
8027 break;
8029 case 4:
8030 if (r->info4) {
8031 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
8033 break;
8035 case 5:
8036 if (r->info5) {
8037 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
8039 break;
8041 case 6:
8042 if (r->info6) {
8043 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
8045 break;
8047 case 7:
8048 if (r->info7) {
8049 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
8051 break;
8053 case 8:
8054 if (r->info8) {
8055 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo8(ndr, NDR_SCALARS, r->info8));
8057 break;
8059 case 9:
8060 if (r->info9) {
8061 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo9(ndr, NDR_SCALARS, r->info9));
8063 break;
8065 default:
8066 break;
8070 return NDR_ERR_SUCCESS;
8073 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetPrinterInfo *r)
8075 int level;
8076 uint32_t _level;
8077 TALLOC_CTX *_mem_save_info0_0;
8078 TALLOC_CTX *_mem_save_info1_0;
8079 TALLOC_CTX *_mem_save_info2_0;
8080 TALLOC_CTX *_mem_save_info3_0;
8081 TALLOC_CTX *_mem_save_info4_0;
8082 TALLOC_CTX *_mem_save_info5_0;
8083 TALLOC_CTX *_mem_save_info6_0;
8084 TALLOC_CTX *_mem_save_info7_0;
8085 TALLOC_CTX *_mem_save_info8_0;
8086 TALLOC_CTX *_mem_save_info9_0;
8087 level = ndr_pull_get_switch_value(ndr, r);
8088 if (ndr_flags & NDR_SCALARS) {
8089 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
8090 if (_level != level) {
8091 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
8093 NDR_CHECK(ndr_pull_union_align(ndr, 5));
8094 switch (level) {
8095 case 0: {
8096 uint32_t _ptr_info0;
8097 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
8098 if (_ptr_info0) {
8099 NDR_PULL_ALLOC(ndr, r->info0);
8100 } else {
8101 r->info0 = NULL;
8103 break; }
8105 case 1: {
8106 uint32_t _ptr_info1;
8107 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
8108 if (_ptr_info1) {
8109 NDR_PULL_ALLOC(ndr, r->info1);
8110 } else {
8111 r->info1 = NULL;
8113 break; }
8115 case 2: {
8116 uint32_t _ptr_info2;
8117 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
8118 if (_ptr_info2) {
8119 NDR_PULL_ALLOC(ndr, r->info2);
8120 } else {
8121 r->info2 = NULL;
8123 break; }
8125 case 3: {
8126 uint32_t _ptr_info3;
8127 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
8128 if (_ptr_info3) {
8129 NDR_PULL_ALLOC(ndr, r->info3);
8130 } else {
8131 r->info3 = NULL;
8133 break; }
8135 case 4: {
8136 uint32_t _ptr_info4;
8137 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
8138 if (_ptr_info4) {
8139 NDR_PULL_ALLOC(ndr, r->info4);
8140 } else {
8141 r->info4 = NULL;
8143 break; }
8145 case 5: {
8146 uint32_t _ptr_info5;
8147 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info5));
8148 if (_ptr_info5) {
8149 NDR_PULL_ALLOC(ndr, r->info5);
8150 } else {
8151 r->info5 = NULL;
8153 break; }
8155 case 6: {
8156 uint32_t _ptr_info6;
8157 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
8158 if (_ptr_info6) {
8159 NDR_PULL_ALLOC(ndr, r->info6);
8160 } else {
8161 r->info6 = NULL;
8163 break; }
8165 case 7: {
8166 uint32_t _ptr_info7;
8167 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info7));
8168 if (_ptr_info7) {
8169 NDR_PULL_ALLOC(ndr, r->info7);
8170 } else {
8171 r->info7 = NULL;
8173 break; }
8175 case 8: {
8176 uint32_t _ptr_info8;
8177 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
8178 if (_ptr_info8) {
8179 NDR_PULL_ALLOC(ndr, r->info8);
8180 } else {
8181 r->info8 = NULL;
8183 break; }
8185 case 9: {
8186 uint32_t _ptr_info9;
8187 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info9));
8188 if (_ptr_info9) {
8189 NDR_PULL_ALLOC(ndr, r->info9);
8190 } else {
8191 r->info9 = NULL;
8193 break; }
8195 default: {
8196 break; }
8200 if (ndr_flags & NDR_BUFFERS) {
8201 switch (level) {
8202 case 0:
8203 if (r->info0) {
8204 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
8205 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
8206 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
8207 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
8209 break;
8211 case 1:
8212 if (r->info1) {
8213 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
8214 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
8215 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
8216 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
8218 break;
8220 case 2:
8221 if (r->info2) {
8222 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
8223 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
8224 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
8225 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
8227 break;
8229 case 3:
8230 if (r->info3) {
8231 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
8232 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
8233 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
8234 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
8236 break;
8238 case 4:
8239 if (r->info4) {
8240 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
8241 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
8242 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
8243 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
8245 break;
8247 case 5:
8248 if (r->info5) {
8249 _mem_save_info5_0 = NDR_PULL_GET_MEM_CTX(ndr);
8250 NDR_PULL_SET_MEM_CTX(ndr, r->info5, 0);
8251 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
8252 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info5_0, 0);
8254 break;
8256 case 6:
8257 if (r->info6) {
8258 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
8259 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
8260 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
8261 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
8263 break;
8265 case 7:
8266 if (r->info7) {
8267 _mem_save_info7_0 = NDR_PULL_GET_MEM_CTX(ndr);
8268 NDR_PULL_SET_MEM_CTX(ndr, r->info7, 0);
8269 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
8270 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info7_0, 0);
8272 break;
8274 case 8:
8275 if (r->info8) {
8276 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
8277 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
8278 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo8(ndr, NDR_SCALARS, r->info8));
8279 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
8281 break;
8283 case 9:
8284 if (r->info9) {
8285 _mem_save_info9_0 = NDR_PULL_GET_MEM_CTX(ndr);
8286 NDR_PULL_SET_MEM_CTX(ndr, r->info9, 0);
8287 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo9(ndr, NDR_SCALARS, r->info9));
8288 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info9_0, 0);
8290 break;
8292 default:
8293 break;
8297 return NDR_ERR_SUCCESS;
8300 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetPrinterInfo *r)
8302 int level;
8303 level = ndr_print_get_switch_value(ndr, r);
8304 ndr_print_union(ndr, name, level, "spoolss_SetPrinterInfo");
8305 switch (level) {
8306 case 0:
8307 ndr_print_ptr(ndr, "info0", r->info0);
8308 ndr->depth++;
8309 if (r->info0) {
8310 ndr_print_spoolss_SetPrinterInfo0(ndr, "info0", r->info0);
8312 ndr->depth--;
8313 break;
8315 case 1:
8316 ndr_print_ptr(ndr, "info1", r->info1);
8317 ndr->depth++;
8318 if (r->info1) {
8319 ndr_print_spoolss_SetPrinterInfo1(ndr, "info1", r->info1);
8321 ndr->depth--;
8322 break;
8324 case 2:
8325 ndr_print_ptr(ndr, "info2", r->info2);
8326 ndr->depth++;
8327 if (r->info2) {
8328 ndr_print_spoolss_SetPrinterInfo2(ndr, "info2", r->info2);
8330 ndr->depth--;
8331 break;
8333 case 3:
8334 ndr_print_ptr(ndr, "info3", r->info3);
8335 ndr->depth++;
8336 if (r->info3) {
8337 ndr_print_spoolss_SetPrinterInfo3(ndr, "info3", r->info3);
8339 ndr->depth--;
8340 break;
8342 case 4:
8343 ndr_print_ptr(ndr, "info4", r->info4);
8344 ndr->depth++;
8345 if (r->info4) {
8346 ndr_print_spoolss_SetPrinterInfo4(ndr, "info4", r->info4);
8348 ndr->depth--;
8349 break;
8351 case 5:
8352 ndr_print_ptr(ndr, "info5", r->info5);
8353 ndr->depth++;
8354 if (r->info5) {
8355 ndr_print_spoolss_SetPrinterInfo5(ndr, "info5", r->info5);
8357 ndr->depth--;
8358 break;
8360 case 6:
8361 ndr_print_ptr(ndr, "info6", r->info6);
8362 ndr->depth++;
8363 if (r->info6) {
8364 ndr_print_spoolss_SetPrinterInfo6(ndr, "info6", r->info6);
8366 ndr->depth--;
8367 break;
8369 case 7:
8370 ndr_print_ptr(ndr, "info7", r->info7);
8371 ndr->depth++;
8372 if (r->info7) {
8373 ndr_print_spoolss_SetPrinterInfo7(ndr, "info7", r->info7);
8375 ndr->depth--;
8376 break;
8378 case 8:
8379 ndr_print_ptr(ndr, "info8", r->info8);
8380 ndr->depth++;
8381 if (r->info8) {
8382 ndr_print_spoolss_SetPrinterInfo8(ndr, "info8", r->info8);
8384 ndr->depth--;
8385 break;
8387 case 9:
8388 ndr_print_ptr(ndr, "info9", r->info9);
8389 ndr->depth++;
8390 if (r->info9) {
8391 ndr_print_spoolss_SetPrinterInfo9(ndr, "info9", r->info9);
8393 ndr->depth--;
8394 break;
8396 default:
8397 break;
8402 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfoCtr *r)
8404 if (ndr_flags & NDR_SCALARS) {
8405 NDR_CHECK(ndr_push_align(ndr, 5));
8406 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
8407 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
8408 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
8409 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8411 if (ndr_flags & NDR_BUFFERS) {
8412 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
8414 return NDR_ERR_SUCCESS;
8417 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfoCtr *r)
8419 if (ndr_flags & NDR_SCALARS) {
8420 NDR_CHECK(ndr_pull_align(ndr, 5));
8421 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
8422 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
8423 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
8424 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8426 if (ndr_flags & NDR_BUFFERS) {
8427 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
8429 return NDR_ERR_SUCCESS;
8432 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfoCtr *r)
8434 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfoCtr");
8435 ndr->depth++;
8436 ndr_print_uint32(ndr, "level", r->level);
8437 ndr_print_set_switch_value(ndr, &r->info, r->level);
8438 ndr_print_spoolss_SetPrinterInfo(ndr, "info", &r->info);
8439 ndr->depth--;
8442 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_StringArray(struct ndr_push *ndr, int ndr_flags, const struct spoolss_StringArray *r)
8444 if (ndr_flags & NDR_SCALARS) {
8445 NDR_CHECK(ndr_push_align(ndr, 4));
8446 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, (ndr_size_spoolss_StringArray(r, ndr->iconv_convenience, ndr->flags) - 4) / 2));
8448 uint32_t _flags_save_string_array = ndr->flags;
8449 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8450 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string));
8451 ndr->flags = _flags_save_string_array;
8453 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
8455 if (ndr_flags & NDR_BUFFERS) {
8457 return NDR_ERR_SUCCESS;
8460 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_StringArray(struct ndr_pull *ndr, int ndr_flags, struct spoolss_StringArray *r)
8462 if (ndr_flags & NDR_SCALARS) {
8463 NDR_CHECK(ndr_pull_align(ndr, 4));
8464 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
8466 uint32_t _flags_save_string_array = ndr->flags;
8467 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8468 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string));
8469 ndr->flags = _flags_save_string_array;
8471 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
8473 if (ndr_flags & NDR_BUFFERS) {
8475 return NDR_ERR_SUCCESS;
8478 _PUBLIC_ void ndr_print_spoolss_StringArray(struct ndr_print *ndr, const char *name, const struct spoolss_StringArray *r)
8480 ndr_print_struct(ndr, name, "spoolss_StringArray");
8481 ndr->depth++;
8482 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);
8483 ndr_print_string_array(ndr, "string", r->string);
8484 ndr->depth--;
8487 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo1 *r)
8489 if (ndr_flags & NDR_SCALARS) {
8490 NDR_CHECK(ndr_push_align(ndr, 5));
8491 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8492 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8494 if (ndr_flags & NDR_BUFFERS) {
8495 if (r->driver_name) {
8496 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8497 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8498 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8499 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8502 return NDR_ERR_SUCCESS;
8505 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo1 *r)
8507 uint32_t _ptr_driver_name;
8508 TALLOC_CTX *_mem_save_driver_name_0;
8509 if (ndr_flags & NDR_SCALARS) {
8510 NDR_CHECK(ndr_pull_align(ndr, 5));
8511 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8512 if (_ptr_driver_name) {
8513 NDR_PULL_ALLOC(ndr, r->driver_name);
8514 } else {
8515 r->driver_name = NULL;
8517 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8519 if (ndr_flags & NDR_BUFFERS) {
8520 if (r->driver_name) {
8521 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8522 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8523 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8524 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8525 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8526 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));
8528 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8529 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8530 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8533 return NDR_ERR_SUCCESS;
8536 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo1 *r)
8538 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo1");
8539 ndr->depth++;
8540 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8541 ndr->depth++;
8542 if (r->driver_name) {
8543 ndr_print_string(ndr, "driver_name", r->driver_name);
8545 ndr->depth--;
8546 ndr->depth--;
8549 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverOSVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverOSVersion r)
8551 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
8552 return NDR_ERR_SUCCESS;
8555 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverOSVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverOSVersion *r)
8557 uint32_t v;
8558 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
8559 *r = v;
8560 return NDR_ERR_SUCCESS;
8563 _PUBLIC_ void ndr_print_spoolss_DriverOSVersion(struct ndr_print *ndr, const char *name, enum spoolss_DriverOSVersion r)
8565 const char *val = NULL;
8567 switch (r) {
8568 case SPOOLSS_DRIVER_VERSION_9X: val = "SPOOLSS_DRIVER_VERSION_9X"; break;
8569 case SPOOLSS_DRIVER_VERSION_NT35: val = "SPOOLSS_DRIVER_VERSION_NT35"; break;
8570 case SPOOLSS_DRIVER_VERSION_NT4: val = "SPOOLSS_DRIVER_VERSION_NT4"; break;
8571 case SPOOLSS_DRIVER_VERSION_200X: val = "SPOOLSS_DRIVER_VERSION_200X"; break;
8573 ndr_print_enum(ndr, name, "ENUM", val, r);
8576 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo2 *r)
8578 if (ndr_flags & NDR_SCALARS) {
8579 NDR_CHECK(ndr_push_align(ndr, 5));
8580 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8581 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8582 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8583 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8584 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8585 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8586 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8588 if (ndr_flags & NDR_BUFFERS) {
8589 if (r->driver_name) {
8590 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8591 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8592 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8593 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8595 if (r->architecture) {
8596 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8597 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8598 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8599 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8601 if (r->driver_path) {
8602 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8603 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8604 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8605 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8607 if (r->data_file) {
8608 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8609 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8610 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8611 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8613 if (r->config_file) {
8614 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8615 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8616 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8617 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8620 return NDR_ERR_SUCCESS;
8623 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo2 *r)
8625 uint32_t _ptr_driver_name;
8626 TALLOC_CTX *_mem_save_driver_name_0;
8627 uint32_t _ptr_architecture;
8628 TALLOC_CTX *_mem_save_architecture_0;
8629 uint32_t _ptr_driver_path;
8630 TALLOC_CTX *_mem_save_driver_path_0;
8631 uint32_t _ptr_data_file;
8632 TALLOC_CTX *_mem_save_data_file_0;
8633 uint32_t _ptr_config_file;
8634 TALLOC_CTX *_mem_save_config_file_0;
8635 if (ndr_flags & NDR_SCALARS) {
8636 NDR_CHECK(ndr_pull_align(ndr, 5));
8637 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8638 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8639 if (_ptr_driver_name) {
8640 NDR_PULL_ALLOC(ndr, r->driver_name);
8641 } else {
8642 r->driver_name = NULL;
8644 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8645 if (_ptr_architecture) {
8646 NDR_PULL_ALLOC(ndr, r->architecture);
8647 } else {
8648 r->architecture = NULL;
8650 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8651 if (_ptr_driver_path) {
8652 NDR_PULL_ALLOC(ndr, r->driver_path);
8653 } else {
8654 r->driver_path = NULL;
8656 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8657 if (_ptr_data_file) {
8658 NDR_PULL_ALLOC(ndr, r->data_file);
8659 } else {
8660 r->data_file = NULL;
8662 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8663 if (_ptr_config_file) {
8664 NDR_PULL_ALLOC(ndr, r->config_file);
8665 } else {
8666 r->config_file = NULL;
8668 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8670 if (ndr_flags & NDR_BUFFERS) {
8671 if (r->driver_name) {
8672 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8673 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8674 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8675 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8676 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8677 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));
8679 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8680 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8681 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8683 if (r->architecture) {
8684 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8685 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8686 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8687 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8688 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8689 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));
8691 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8692 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8693 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8695 if (r->driver_path) {
8696 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8697 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8698 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8699 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8700 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8701 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));
8703 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8704 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8705 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8707 if (r->data_file) {
8708 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8709 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8710 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8711 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8712 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8713 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));
8715 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8716 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8717 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8719 if (r->config_file) {
8720 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8721 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8722 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8723 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8724 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8725 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));
8727 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8728 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8729 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8732 return NDR_ERR_SUCCESS;
8735 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo2 *r)
8737 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo2");
8738 ndr->depth++;
8739 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8740 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8741 ndr->depth++;
8742 if (r->driver_name) {
8743 ndr_print_string(ndr, "driver_name", r->driver_name);
8745 ndr->depth--;
8746 ndr_print_ptr(ndr, "architecture", r->architecture);
8747 ndr->depth++;
8748 if (r->architecture) {
8749 ndr_print_string(ndr, "architecture", r->architecture);
8751 ndr->depth--;
8752 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8753 ndr->depth++;
8754 if (r->driver_path) {
8755 ndr_print_string(ndr, "driver_path", r->driver_path);
8757 ndr->depth--;
8758 ndr_print_ptr(ndr, "data_file", r->data_file);
8759 ndr->depth++;
8760 if (r->data_file) {
8761 ndr_print_string(ndr, "data_file", r->data_file);
8763 ndr->depth--;
8764 ndr_print_ptr(ndr, "config_file", r->config_file);
8765 ndr->depth++;
8766 if (r->config_file) {
8767 ndr_print_string(ndr, "config_file", r->config_file);
8769 ndr->depth--;
8770 ndr->depth--;
8773 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo3 *r)
8775 if (ndr_flags & NDR_SCALARS) {
8776 NDR_CHECK(ndr_push_align(ndr, 5));
8777 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8778 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8779 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8780 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8781 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8782 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8783 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8784 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8785 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8786 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8787 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8788 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8790 if (ndr_flags & NDR_BUFFERS) {
8791 if (r->driver_name) {
8792 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8793 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8794 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8795 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8797 if (r->architecture) {
8798 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8799 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8800 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8801 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8803 if (r->driver_path) {
8804 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8805 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8806 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8807 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8809 if (r->data_file) {
8810 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8811 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8812 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8813 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8815 if (r->config_file) {
8816 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8817 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8818 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8819 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8821 if (r->help_file) {
8822 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8823 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8824 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8825 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8827 if (r->monitor_name) {
8828 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8829 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8830 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8831 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8833 if (r->default_datatype) {
8834 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8835 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8836 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8837 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8839 if (r->dependent_files) {
8840 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8843 return NDR_ERR_SUCCESS;
8846 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo3 *r)
8848 uint32_t _ptr_driver_name;
8849 TALLOC_CTX *_mem_save_driver_name_0;
8850 uint32_t _ptr_architecture;
8851 TALLOC_CTX *_mem_save_architecture_0;
8852 uint32_t _ptr_driver_path;
8853 TALLOC_CTX *_mem_save_driver_path_0;
8854 uint32_t _ptr_data_file;
8855 TALLOC_CTX *_mem_save_data_file_0;
8856 uint32_t _ptr_config_file;
8857 TALLOC_CTX *_mem_save_config_file_0;
8858 uint32_t _ptr_help_file;
8859 TALLOC_CTX *_mem_save_help_file_0;
8860 uint32_t _ptr_monitor_name;
8861 TALLOC_CTX *_mem_save_monitor_name_0;
8862 uint32_t _ptr_default_datatype;
8863 TALLOC_CTX *_mem_save_default_datatype_0;
8864 uint32_t _ptr_dependent_files;
8865 TALLOC_CTX *_mem_save_dependent_files_0;
8866 if (ndr_flags & NDR_SCALARS) {
8867 NDR_CHECK(ndr_pull_align(ndr, 5));
8868 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8869 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8870 if (_ptr_driver_name) {
8871 NDR_PULL_ALLOC(ndr, r->driver_name);
8872 } else {
8873 r->driver_name = NULL;
8875 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8876 if (_ptr_architecture) {
8877 NDR_PULL_ALLOC(ndr, r->architecture);
8878 } else {
8879 r->architecture = NULL;
8881 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8882 if (_ptr_driver_path) {
8883 NDR_PULL_ALLOC(ndr, r->driver_path);
8884 } else {
8885 r->driver_path = NULL;
8887 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8888 if (_ptr_data_file) {
8889 NDR_PULL_ALLOC(ndr, r->data_file);
8890 } else {
8891 r->data_file = NULL;
8893 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8894 if (_ptr_config_file) {
8895 NDR_PULL_ALLOC(ndr, r->config_file);
8896 } else {
8897 r->config_file = NULL;
8899 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8900 if (_ptr_help_file) {
8901 NDR_PULL_ALLOC(ndr, r->help_file);
8902 } else {
8903 r->help_file = NULL;
8905 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8906 if (_ptr_monitor_name) {
8907 NDR_PULL_ALLOC(ndr, r->monitor_name);
8908 } else {
8909 r->monitor_name = NULL;
8911 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8912 if (_ptr_default_datatype) {
8913 NDR_PULL_ALLOC(ndr, r->default_datatype);
8914 } else {
8915 r->default_datatype = NULL;
8917 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8918 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8919 if (_ptr_dependent_files) {
8920 NDR_PULL_ALLOC(ndr, r->dependent_files);
8921 } else {
8922 r->dependent_files = NULL;
8924 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8926 if (ndr_flags & NDR_BUFFERS) {
8927 if (r->driver_name) {
8928 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8929 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8930 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8931 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8932 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8933 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));
8935 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8936 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8937 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8939 if (r->architecture) {
8940 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8941 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8942 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8943 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8944 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8945 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));
8947 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8948 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8949 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8951 if (r->driver_path) {
8952 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8953 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8954 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8955 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8956 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8957 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));
8959 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8960 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8961 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8963 if (r->data_file) {
8964 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8965 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8966 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8967 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8968 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8969 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));
8971 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8972 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8973 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8975 if (r->config_file) {
8976 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8977 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8978 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8979 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8980 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8981 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));
8983 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8984 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8985 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8987 if (r->help_file) {
8988 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8989 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8990 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8991 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8992 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8993 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));
8995 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8996 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
8997 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8999 if (r->monitor_name) {
9000 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9001 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9002 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9003 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9004 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
9005 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));
9007 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
9008 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
9009 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9011 if (r->default_datatype) {
9012 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9013 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9014 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9015 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9016 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
9017 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));
9019 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
9020 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
9021 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9023 if (r->dependent_files) {
9024 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9025 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9026 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9027 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9030 return NDR_ERR_SUCCESS;
9033 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo3 *r)
9035 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo3");
9036 ndr->depth++;
9037 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9038 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9039 ndr->depth++;
9040 if (r->driver_name) {
9041 ndr_print_string(ndr, "driver_name", r->driver_name);
9043 ndr->depth--;
9044 ndr_print_ptr(ndr, "architecture", r->architecture);
9045 ndr->depth++;
9046 if (r->architecture) {
9047 ndr_print_string(ndr, "architecture", r->architecture);
9049 ndr->depth--;
9050 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9051 ndr->depth++;
9052 if (r->driver_path) {
9053 ndr_print_string(ndr, "driver_path", r->driver_path);
9055 ndr->depth--;
9056 ndr_print_ptr(ndr, "data_file", r->data_file);
9057 ndr->depth++;
9058 if (r->data_file) {
9059 ndr_print_string(ndr, "data_file", r->data_file);
9061 ndr->depth--;
9062 ndr_print_ptr(ndr, "config_file", r->config_file);
9063 ndr->depth++;
9064 if (r->config_file) {
9065 ndr_print_string(ndr, "config_file", r->config_file);
9067 ndr->depth--;
9068 ndr_print_ptr(ndr, "help_file", r->help_file);
9069 ndr->depth++;
9070 if (r->help_file) {
9071 ndr_print_string(ndr, "help_file", r->help_file);
9073 ndr->depth--;
9074 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9075 ndr->depth++;
9076 if (r->monitor_name) {
9077 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9079 ndr->depth--;
9080 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9081 ndr->depth++;
9082 if (r->default_datatype) {
9083 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9085 ndr->depth--;
9086 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);
9087 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9088 ndr->depth++;
9089 if (r->dependent_files) {
9090 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9092 ndr->depth--;
9093 ndr->depth--;
9096 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo4 *r)
9098 if (ndr_flags & NDR_SCALARS) {
9099 NDR_CHECK(ndr_push_align(ndr, 5));
9100 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9101 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
9102 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
9103 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
9104 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
9105 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
9106 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
9107 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
9108 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
9109 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9110 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
9111 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9112 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
9113 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
9115 if (ndr_flags & NDR_BUFFERS) {
9116 if (r->driver_name) {
9117 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9118 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9119 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9120 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9122 if (r->architecture) {
9123 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9124 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9125 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9126 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9128 if (r->driver_path) {
9129 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9130 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9131 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9132 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9134 if (r->data_file) {
9135 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9136 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9137 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9138 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9140 if (r->config_file) {
9141 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9142 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9143 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9144 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9146 if (r->help_file) {
9147 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9148 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9149 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9150 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9152 if (r->monitor_name) {
9153 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9154 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9155 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9156 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9158 if (r->default_datatype) {
9159 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9160 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9161 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9162 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9164 if (r->dependent_files) {
9165 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9167 if (r->previous_names) {
9168 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9171 return NDR_ERR_SUCCESS;
9174 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo4 *r)
9176 uint32_t _ptr_driver_name;
9177 TALLOC_CTX *_mem_save_driver_name_0;
9178 uint32_t _ptr_architecture;
9179 TALLOC_CTX *_mem_save_architecture_0;
9180 uint32_t _ptr_driver_path;
9181 TALLOC_CTX *_mem_save_driver_path_0;
9182 uint32_t _ptr_data_file;
9183 TALLOC_CTX *_mem_save_data_file_0;
9184 uint32_t _ptr_config_file;
9185 TALLOC_CTX *_mem_save_config_file_0;
9186 uint32_t _ptr_help_file;
9187 TALLOC_CTX *_mem_save_help_file_0;
9188 uint32_t _ptr_monitor_name;
9189 TALLOC_CTX *_mem_save_monitor_name_0;
9190 uint32_t _ptr_default_datatype;
9191 TALLOC_CTX *_mem_save_default_datatype_0;
9192 uint32_t _ptr_dependent_files;
9193 TALLOC_CTX *_mem_save_dependent_files_0;
9194 uint32_t _ptr_previous_names;
9195 TALLOC_CTX *_mem_save_previous_names_0;
9196 if (ndr_flags & NDR_SCALARS) {
9197 NDR_CHECK(ndr_pull_align(ndr, 5));
9198 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9199 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9200 if (_ptr_driver_name) {
9201 NDR_PULL_ALLOC(ndr, r->driver_name);
9202 } else {
9203 r->driver_name = NULL;
9205 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9206 if (_ptr_architecture) {
9207 NDR_PULL_ALLOC(ndr, r->architecture);
9208 } else {
9209 r->architecture = NULL;
9211 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9212 if (_ptr_driver_path) {
9213 NDR_PULL_ALLOC(ndr, r->driver_path);
9214 } else {
9215 r->driver_path = NULL;
9217 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9218 if (_ptr_data_file) {
9219 NDR_PULL_ALLOC(ndr, r->data_file);
9220 } else {
9221 r->data_file = NULL;
9223 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9224 if (_ptr_config_file) {
9225 NDR_PULL_ALLOC(ndr, r->config_file);
9226 } else {
9227 r->config_file = NULL;
9229 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9230 if (_ptr_help_file) {
9231 NDR_PULL_ALLOC(ndr, r->help_file);
9232 } else {
9233 r->help_file = NULL;
9235 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9236 if (_ptr_monitor_name) {
9237 NDR_PULL_ALLOC(ndr, r->monitor_name);
9238 } else {
9239 r->monitor_name = NULL;
9241 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9242 if (_ptr_default_datatype) {
9243 NDR_PULL_ALLOC(ndr, r->default_datatype);
9244 } else {
9245 r->default_datatype = NULL;
9247 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9248 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9249 if (_ptr_dependent_files) {
9250 NDR_PULL_ALLOC(ndr, r->dependent_files);
9251 } else {
9252 r->dependent_files = NULL;
9254 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
9255 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9256 if (_ptr_previous_names) {
9257 NDR_PULL_ALLOC(ndr, r->previous_names);
9258 } else {
9259 r->previous_names = NULL;
9261 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
9263 if (ndr_flags & NDR_BUFFERS) {
9264 if (r->driver_name) {
9265 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9266 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9267 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9268 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9269 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
9270 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));
9272 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
9273 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
9274 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9276 if (r->architecture) {
9277 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9278 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9279 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9280 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9281 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
9282 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));
9284 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
9285 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
9286 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9288 if (r->driver_path) {
9289 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9290 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9291 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9292 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9293 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
9294 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));
9296 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
9297 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
9298 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9300 if (r->data_file) {
9301 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9302 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9303 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9304 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9305 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
9306 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));
9308 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
9309 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
9310 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9312 if (r->config_file) {
9313 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9314 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9315 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9316 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9317 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
9318 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));
9320 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
9321 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
9322 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9324 if (r->help_file) {
9325 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9326 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9327 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9328 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9329 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
9330 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));
9332 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
9333 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
9334 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9336 if (r->monitor_name) {
9337 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9338 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9339 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9340 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9341 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
9342 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));
9344 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
9345 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
9346 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9348 if (r->default_datatype) {
9349 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9350 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9351 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9352 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9353 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
9354 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));
9356 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
9357 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
9358 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9360 if (r->dependent_files) {
9361 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9362 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9363 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9364 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9366 if (r->previous_names) {
9367 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9368 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9369 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9370 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9373 return NDR_ERR_SUCCESS;
9376 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo4 *r)
9378 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo4");
9379 ndr->depth++;
9380 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9381 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9382 ndr->depth++;
9383 if (r->driver_name) {
9384 ndr_print_string(ndr, "driver_name", r->driver_name);
9386 ndr->depth--;
9387 ndr_print_ptr(ndr, "architecture", r->architecture);
9388 ndr->depth++;
9389 if (r->architecture) {
9390 ndr_print_string(ndr, "architecture", r->architecture);
9392 ndr->depth--;
9393 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9394 ndr->depth++;
9395 if (r->driver_path) {
9396 ndr_print_string(ndr, "driver_path", r->driver_path);
9398 ndr->depth--;
9399 ndr_print_ptr(ndr, "data_file", r->data_file);
9400 ndr->depth++;
9401 if (r->data_file) {
9402 ndr_print_string(ndr, "data_file", r->data_file);
9404 ndr->depth--;
9405 ndr_print_ptr(ndr, "config_file", r->config_file);
9406 ndr->depth++;
9407 if (r->config_file) {
9408 ndr_print_string(ndr, "config_file", r->config_file);
9410 ndr->depth--;
9411 ndr_print_ptr(ndr, "help_file", r->help_file);
9412 ndr->depth++;
9413 if (r->help_file) {
9414 ndr_print_string(ndr, "help_file", r->help_file);
9416 ndr->depth--;
9417 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9418 ndr->depth++;
9419 if (r->monitor_name) {
9420 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9422 ndr->depth--;
9423 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9424 ndr->depth++;
9425 if (r->default_datatype) {
9426 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9428 ndr->depth--;
9429 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);
9430 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9431 ndr->depth++;
9432 if (r->dependent_files) {
9433 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9435 ndr->depth--;
9436 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);
9437 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9438 ndr->depth++;
9439 if (r->previous_names) {
9440 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
9442 ndr->depth--;
9443 ndr->depth--;
9446 static enum ndr_err_code ndr_push_spoolss_DriverAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
9448 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
9449 return NDR_ERR_SUCCESS;
9452 static enum ndr_err_code ndr_pull_spoolss_DriverAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
9454 uint32_t v;
9455 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
9456 *r = v;
9457 return NDR_ERR_SUCCESS;
9460 _PUBLIC_ void ndr_print_spoolss_DriverAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
9462 ndr_print_uint32(ndr, name, r);
9463 ndr->depth++;
9464 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_PACKAGE_AWARE", PRINTER_DRIVER_PACKAGE_AWARE, r);
9465 ndr->depth--;
9468 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo6 *r)
9470 if (ndr_flags & NDR_SCALARS) {
9471 NDR_CHECK(ndr_push_align(ndr, 8));
9472 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9473 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
9474 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
9475 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
9476 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
9477 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
9478 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
9479 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
9480 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
9481 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9482 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
9483 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9484 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
9485 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
9486 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
9487 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
9488 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
9489 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
9490 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
9491 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
9493 if (ndr_flags & NDR_BUFFERS) {
9494 if (r->driver_name) {
9495 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9496 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9497 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9498 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9500 if (r->architecture) {
9501 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9502 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9503 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9504 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9506 if (r->driver_path) {
9507 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9508 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9509 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9510 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9512 if (r->data_file) {
9513 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9514 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9515 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9516 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9518 if (r->config_file) {
9519 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9520 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9521 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9522 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9524 if (r->help_file) {
9525 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9526 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9527 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9528 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9530 if (r->monitor_name) {
9531 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9532 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9533 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9534 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9536 if (r->default_datatype) {
9537 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9538 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9539 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9540 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9542 if (r->dependent_files) {
9543 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9545 if (r->previous_names) {
9546 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9548 if (r->manufacturer_name) {
9549 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9550 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9551 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9552 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9554 if (r->manufacturer_url) {
9555 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9556 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9557 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9558 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9560 if (r->hardware_id) {
9561 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9562 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9563 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9564 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9566 if (r->provider) {
9567 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9568 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9569 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9570 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9573 return NDR_ERR_SUCCESS;
9576 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo6 *r)
9578 uint32_t _ptr_driver_name;
9579 TALLOC_CTX *_mem_save_driver_name_0;
9580 uint32_t _ptr_architecture;
9581 TALLOC_CTX *_mem_save_architecture_0;
9582 uint32_t _ptr_driver_path;
9583 TALLOC_CTX *_mem_save_driver_path_0;
9584 uint32_t _ptr_data_file;
9585 TALLOC_CTX *_mem_save_data_file_0;
9586 uint32_t _ptr_config_file;
9587 TALLOC_CTX *_mem_save_config_file_0;
9588 uint32_t _ptr_help_file;
9589 TALLOC_CTX *_mem_save_help_file_0;
9590 uint32_t _ptr_monitor_name;
9591 TALLOC_CTX *_mem_save_monitor_name_0;
9592 uint32_t _ptr_default_datatype;
9593 TALLOC_CTX *_mem_save_default_datatype_0;
9594 uint32_t _ptr_dependent_files;
9595 TALLOC_CTX *_mem_save_dependent_files_0;
9596 uint32_t _ptr_previous_names;
9597 TALLOC_CTX *_mem_save_previous_names_0;
9598 uint32_t _ptr_manufacturer_name;
9599 TALLOC_CTX *_mem_save_manufacturer_name_0;
9600 uint32_t _ptr_manufacturer_url;
9601 TALLOC_CTX *_mem_save_manufacturer_url_0;
9602 uint32_t _ptr_hardware_id;
9603 TALLOC_CTX *_mem_save_hardware_id_0;
9604 uint32_t _ptr_provider;
9605 TALLOC_CTX *_mem_save_provider_0;
9606 if (ndr_flags & NDR_SCALARS) {
9607 NDR_CHECK(ndr_pull_align(ndr, 8));
9608 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9609 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9610 if (_ptr_driver_name) {
9611 NDR_PULL_ALLOC(ndr, r->driver_name);
9612 } else {
9613 r->driver_name = NULL;
9615 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9616 if (_ptr_architecture) {
9617 NDR_PULL_ALLOC(ndr, r->architecture);
9618 } else {
9619 r->architecture = NULL;
9621 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9622 if (_ptr_driver_path) {
9623 NDR_PULL_ALLOC(ndr, r->driver_path);
9624 } else {
9625 r->driver_path = NULL;
9627 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9628 if (_ptr_data_file) {
9629 NDR_PULL_ALLOC(ndr, r->data_file);
9630 } else {
9631 r->data_file = NULL;
9633 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9634 if (_ptr_config_file) {
9635 NDR_PULL_ALLOC(ndr, r->config_file);
9636 } else {
9637 r->config_file = NULL;
9639 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9640 if (_ptr_help_file) {
9641 NDR_PULL_ALLOC(ndr, r->help_file);
9642 } else {
9643 r->help_file = NULL;
9645 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9646 if (_ptr_monitor_name) {
9647 NDR_PULL_ALLOC(ndr, r->monitor_name);
9648 } else {
9649 r->monitor_name = NULL;
9651 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9652 if (_ptr_default_datatype) {
9653 NDR_PULL_ALLOC(ndr, r->default_datatype);
9654 } else {
9655 r->default_datatype = NULL;
9657 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9658 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9659 if (_ptr_dependent_files) {
9660 NDR_PULL_ALLOC(ndr, r->dependent_files);
9661 } else {
9662 r->dependent_files = NULL;
9664 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
9665 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9666 if (_ptr_previous_names) {
9667 NDR_PULL_ALLOC(ndr, r->previous_names);
9668 } else {
9669 r->previous_names = NULL;
9671 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
9672 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9673 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9674 if (_ptr_manufacturer_name) {
9675 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9676 } else {
9677 r->manufacturer_name = NULL;
9679 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9680 if (_ptr_manufacturer_url) {
9681 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9682 } else {
9683 r->manufacturer_url = NULL;
9685 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9686 if (_ptr_hardware_id) {
9687 NDR_PULL_ALLOC(ndr, r->hardware_id);
9688 } else {
9689 r->hardware_id = NULL;
9691 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9692 if (_ptr_provider) {
9693 NDR_PULL_ALLOC(ndr, r->provider);
9694 } else {
9695 r->provider = NULL;
9697 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
9699 if (ndr_flags & NDR_BUFFERS) {
9700 if (r->driver_name) {
9701 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9702 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9703 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9704 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9705 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
9706 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));
9708 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
9709 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
9710 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9712 if (r->architecture) {
9713 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9714 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9715 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9716 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9717 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
9718 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));
9720 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
9721 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
9722 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9724 if (r->driver_path) {
9725 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9726 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9727 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9728 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9729 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
9730 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));
9732 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
9733 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
9734 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9736 if (r->data_file) {
9737 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9738 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9739 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9740 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9741 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
9742 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));
9744 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
9745 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
9746 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9748 if (r->config_file) {
9749 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9750 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9751 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9752 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9753 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
9754 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));
9756 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
9757 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
9758 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9760 if (r->help_file) {
9761 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9762 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9763 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9764 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9765 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
9766 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));
9768 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
9769 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
9770 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9772 if (r->monitor_name) {
9773 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9774 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9775 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9776 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9777 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
9778 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));
9780 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
9781 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
9782 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9784 if (r->default_datatype) {
9785 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9786 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9787 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9788 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9789 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
9790 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));
9792 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
9793 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
9794 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9796 if (r->dependent_files) {
9797 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9798 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9799 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9800 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9802 if (r->previous_names) {
9803 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9804 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9805 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9806 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9808 if (r->manufacturer_name) {
9809 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9810 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
9811 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
9812 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
9813 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
9814 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));
9816 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
9817 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
9818 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
9820 if (r->manufacturer_url) {
9821 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
9822 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
9823 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
9824 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
9825 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
9826 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));
9828 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
9829 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
9830 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
9832 if (r->hardware_id) {
9833 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9834 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
9835 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
9836 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
9837 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
9838 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));
9840 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
9841 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
9842 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
9844 if (r->provider) {
9845 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
9846 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
9847 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
9848 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
9849 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
9850 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));
9852 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
9853 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
9854 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
9857 return NDR_ERR_SUCCESS;
9860 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo6 *r)
9862 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo6");
9863 ndr->depth++;
9864 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9865 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9866 ndr->depth++;
9867 if (r->driver_name) {
9868 ndr_print_string(ndr, "driver_name", r->driver_name);
9870 ndr->depth--;
9871 ndr_print_ptr(ndr, "architecture", r->architecture);
9872 ndr->depth++;
9873 if (r->architecture) {
9874 ndr_print_string(ndr, "architecture", r->architecture);
9876 ndr->depth--;
9877 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9878 ndr->depth++;
9879 if (r->driver_path) {
9880 ndr_print_string(ndr, "driver_path", r->driver_path);
9882 ndr->depth--;
9883 ndr_print_ptr(ndr, "data_file", r->data_file);
9884 ndr->depth++;
9885 if (r->data_file) {
9886 ndr_print_string(ndr, "data_file", r->data_file);
9888 ndr->depth--;
9889 ndr_print_ptr(ndr, "config_file", r->config_file);
9890 ndr->depth++;
9891 if (r->config_file) {
9892 ndr_print_string(ndr, "config_file", r->config_file);
9894 ndr->depth--;
9895 ndr_print_ptr(ndr, "help_file", r->help_file);
9896 ndr->depth++;
9897 if (r->help_file) {
9898 ndr_print_string(ndr, "help_file", r->help_file);
9900 ndr->depth--;
9901 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9902 ndr->depth++;
9903 if (r->monitor_name) {
9904 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9906 ndr->depth--;
9907 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9908 ndr->depth++;
9909 if (r->default_datatype) {
9910 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9912 ndr->depth--;
9913 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);
9914 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9915 ndr->depth++;
9916 if (r->dependent_files) {
9917 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9919 ndr->depth--;
9920 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);
9921 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9922 ndr->depth++;
9923 if (r->previous_names) {
9924 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
9926 ndr->depth--;
9927 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
9928 ndr_print_hyper(ndr, "driver_version", r->driver_version);
9929 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
9930 ndr->depth++;
9931 if (r->manufacturer_name) {
9932 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
9934 ndr->depth--;
9935 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
9936 ndr->depth++;
9937 if (r->manufacturer_url) {
9938 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
9940 ndr->depth--;
9941 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
9942 ndr->depth++;
9943 if (r->hardware_id) {
9944 ndr_print_string(ndr, "hardware_id", r->hardware_id);
9946 ndr->depth--;
9947 ndr_print_ptr(ndr, "provider", r->provider);
9948 ndr->depth++;
9949 if (r->provider) {
9950 ndr_print_string(ndr, "provider", r->provider);
9952 ndr->depth--;
9953 ndr->depth--;
9956 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo8 *r)
9958 if (ndr_flags & NDR_SCALARS) {
9959 NDR_CHECK(ndr_push_align(ndr, 8));
9960 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9961 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
9962 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
9963 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
9964 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
9965 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
9966 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
9967 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
9968 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
9969 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9970 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
9971 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9972 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
9973 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
9974 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
9975 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
9976 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
9977 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
9978 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
9979 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
9980 NDR_CHECK(ndr_push_unique_ptr(ndr, r->vendor_setup));
9981 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->color_profiles, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9982 NDR_CHECK(ndr_push_unique_ptr(ndr, r->color_profiles));
9983 NDR_CHECK(ndr_push_unique_ptr(ndr, r->inf_path));
9984 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
9985 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9986 NDR_CHECK(ndr_push_unique_ptr(ndr, r->core_driver_dependencies));
9987 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
9988 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
9989 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
9991 if (ndr_flags & NDR_BUFFERS) {
9992 if (r->driver_name) {
9993 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9994 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9995 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9996 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9998 if (r->architecture) {
9999 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
10000 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10001 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
10002 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10004 if (r->driver_path) {
10005 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
10006 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10007 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
10008 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10010 if (r->data_file) {
10011 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
10012 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10013 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
10014 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10016 if (r->config_file) {
10017 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
10018 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10019 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
10020 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10022 if (r->help_file) {
10023 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
10024 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10025 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
10026 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10028 if (r->monitor_name) {
10029 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
10030 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10031 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
10032 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10034 if (r->default_datatype) {
10035 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
10036 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10037 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
10038 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10040 if (r->dependent_files) {
10041 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
10043 if (r->previous_names) {
10044 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
10046 if (r->manufacturer_name) {
10047 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
10048 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10049 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
10050 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10052 if (r->manufacturer_url) {
10053 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
10054 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10055 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
10056 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10058 if (r->hardware_id) {
10059 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
10060 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10061 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
10062 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10064 if (r->provider) {
10065 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
10066 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10067 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
10068 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10070 if (r->print_processor) {
10071 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
10072 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10073 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
10074 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10076 if (r->vendor_setup) {
10077 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
10078 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10079 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
10080 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->vendor_setup, ndr_charset_length(r->vendor_setup, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10082 if (r->color_profiles) {
10083 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
10085 if (r->inf_path) {
10086 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
10087 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10088 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
10089 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->inf_path, ndr_charset_length(r->inf_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10091 if (r->core_driver_dependencies) {
10092 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
10095 return NDR_ERR_SUCCESS;
10098 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo8 *r)
10100 uint32_t _ptr_driver_name;
10101 TALLOC_CTX *_mem_save_driver_name_0;
10102 uint32_t _ptr_architecture;
10103 TALLOC_CTX *_mem_save_architecture_0;
10104 uint32_t _ptr_driver_path;
10105 TALLOC_CTX *_mem_save_driver_path_0;
10106 uint32_t _ptr_data_file;
10107 TALLOC_CTX *_mem_save_data_file_0;
10108 uint32_t _ptr_config_file;
10109 TALLOC_CTX *_mem_save_config_file_0;
10110 uint32_t _ptr_help_file;
10111 TALLOC_CTX *_mem_save_help_file_0;
10112 uint32_t _ptr_monitor_name;
10113 TALLOC_CTX *_mem_save_monitor_name_0;
10114 uint32_t _ptr_default_datatype;
10115 TALLOC_CTX *_mem_save_default_datatype_0;
10116 uint32_t _ptr_dependent_files;
10117 TALLOC_CTX *_mem_save_dependent_files_0;
10118 uint32_t _ptr_previous_names;
10119 TALLOC_CTX *_mem_save_previous_names_0;
10120 uint32_t _ptr_manufacturer_name;
10121 TALLOC_CTX *_mem_save_manufacturer_name_0;
10122 uint32_t _ptr_manufacturer_url;
10123 TALLOC_CTX *_mem_save_manufacturer_url_0;
10124 uint32_t _ptr_hardware_id;
10125 TALLOC_CTX *_mem_save_hardware_id_0;
10126 uint32_t _ptr_provider;
10127 TALLOC_CTX *_mem_save_provider_0;
10128 uint32_t _ptr_print_processor;
10129 TALLOC_CTX *_mem_save_print_processor_0;
10130 uint32_t _ptr_vendor_setup;
10131 TALLOC_CTX *_mem_save_vendor_setup_0;
10132 uint32_t _ptr_color_profiles;
10133 TALLOC_CTX *_mem_save_color_profiles_0;
10134 uint32_t _ptr_inf_path;
10135 TALLOC_CTX *_mem_save_inf_path_0;
10136 uint32_t _ptr_core_driver_dependencies;
10137 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
10138 if (ndr_flags & NDR_SCALARS) {
10139 NDR_CHECK(ndr_pull_align(ndr, 8));
10140 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10141 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10142 if (_ptr_driver_name) {
10143 NDR_PULL_ALLOC(ndr, r->driver_name);
10144 } else {
10145 r->driver_name = NULL;
10147 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10148 if (_ptr_architecture) {
10149 NDR_PULL_ALLOC(ndr, r->architecture);
10150 } else {
10151 r->architecture = NULL;
10153 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10154 if (_ptr_driver_path) {
10155 NDR_PULL_ALLOC(ndr, r->driver_path);
10156 } else {
10157 r->driver_path = NULL;
10159 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10160 if (_ptr_data_file) {
10161 NDR_PULL_ALLOC(ndr, r->data_file);
10162 } else {
10163 r->data_file = NULL;
10165 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10166 if (_ptr_config_file) {
10167 NDR_PULL_ALLOC(ndr, r->config_file);
10168 } else {
10169 r->config_file = NULL;
10171 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
10172 if (_ptr_help_file) {
10173 NDR_PULL_ALLOC(ndr, r->help_file);
10174 } else {
10175 r->help_file = NULL;
10177 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
10178 if (_ptr_monitor_name) {
10179 NDR_PULL_ALLOC(ndr, r->monitor_name);
10180 } else {
10181 r->monitor_name = NULL;
10183 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
10184 if (_ptr_default_datatype) {
10185 NDR_PULL_ALLOC(ndr, r->default_datatype);
10186 } else {
10187 r->default_datatype = NULL;
10189 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
10190 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
10191 if (_ptr_dependent_files) {
10192 NDR_PULL_ALLOC(ndr, r->dependent_files);
10193 } else {
10194 r->dependent_files = NULL;
10196 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
10197 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
10198 if (_ptr_previous_names) {
10199 NDR_PULL_ALLOC(ndr, r->previous_names);
10200 } else {
10201 r->previous_names = NULL;
10203 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
10204 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
10205 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
10206 if (_ptr_manufacturer_name) {
10207 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
10208 } else {
10209 r->manufacturer_name = NULL;
10211 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
10212 if (_ptr_manufacturer_url) {
10213 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
10214 } else {
10215 r->manufacturer_url = NULL;
10217 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
10218 if (_ptr_hardware_id) {
10219 NDR_PULL_ALLOC(ndr, r->hardware_id);
10220 } else {
10221 r->hardware_id = NULL;
10223 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
10224 if (_ptr_provider) {
10225 NDR_PULL_ALLOC(ndr, r->provider);
10226 } else {
10227 r->provider = NULL;
10229 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
10230 if (_ptr_print_processor) {
10231 NDR_PULL_ALLOC(ndr, r->print_processor);
10232 } else {
10233 r->print_processor = NULL;
10235 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
10236 if (_ptr_vendor_setup) {
10237 NDR_PULL_ALLOC(ndr, r->vendor_setup);
10238 } else {
10239 r->vendor_setup = NULL;
10241 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_color_profiles));
10242 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
10243 if (_ptr_color_profiles) {
10244 NDR_PULL_ALLOC(ndr, r->color_profiles);
10245 } else {
10246 r->color_profiles = NULL;
10248 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
10249 if (_ptr_inf_path) {
10250 NDR_PULL_ALLOC(ndr, r->inf_path);
10251 } else {
10252 r->inf_path = NULL;
10254 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
10255 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_core_driver_dependencies));
10256 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
10257 if (_ptr_core_driver_dependencies) {
10258 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
10259 } else {
10260 r->core_driver_dependencies = NULL;
10262 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
10263 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
10264 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
10266 if (ndr_flags & NDR_BUFFERS) {
10267 if (r->driver_name) {
10268 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10269 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10270 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
10271 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
10272 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
10273 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));
10275 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
10276 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
10277 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10279 if (r->architecture) {
10280 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10281 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10282 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
10283 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
10284 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
10285 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));
10287 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
10288 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
10289 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10291 if (r->driver_path) {
10292 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10293 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10294 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
10295 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
10296 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
10297 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));
10299 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
10300 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
10301 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10303 if (r->data_file) {
10304 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10305 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10306 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
10307 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
10308 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
10309 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));
10311 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
10312 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
10313 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10315 if (r->config_file) {
10316 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10317 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10318 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
10319 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
10320 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
10321 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));
10323 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
10324 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
10325 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10327 if (r->help_file) {
10328 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10329 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
10330 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
10331 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
10332 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
10333 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));
10335 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
10336 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
10337 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
10339 if (r->monitor_name) {
10340 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10341 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
10342 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
10343 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
10344 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
10345 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));
10347 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
10348 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
10349 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
10351 if (r->default_datatype) {
10352 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
10353 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
10354 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
10355 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
10356 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
10357 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));
10359 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
10360 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
10361 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
10363 if (r->dependent_files) {
10364 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
10365 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
10366 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
10367 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
10369 if (r->previous_names) {
10370 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
10371 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
10372 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
10373 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
10375 if (r->manufacturer_name) {
10376 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10377 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
10378 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
10379 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
10380 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
10381 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));
10383 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
10384 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
10385 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
10387 if (r->manufacturer_url) {
10388 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
10389 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
10390 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
10391 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
10392 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
10393 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));
10395 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
10396 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
10397 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
10399 if (r->hardware_id) {
10400 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
10401 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
10402 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
10403 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
10404 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
10405 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));
10407 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
10408 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
10409 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
10411 if (r->provider) {
10412 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
10413 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
10414 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
10415 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
10416 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
10417 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));
10419 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
10420 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
10421 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
10423 if (r->print_processor) {
10424 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
10425 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
10426 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
10427 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
10428 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
10429 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));
10431 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
10432 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
10433 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
10435 if (r->vendor_setup) {
10436 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
10437 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
10438 NDR_CHECK(ndr_pull_array_size(ndr, &r->vendor_setup));
10439 NDR_CHECK(ndr_pull_array_length(ndr, &r->vendor_setup));
10440 if (ndr_get_array_length(ndr, &r->vendor_setup) > ndr_get_array_size(ndr, &r->vendor_setup)) {
10441 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));
10443 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t)));
10444 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->vendor_setup, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t), CH_UTF16));
10445 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
10447 if (r->color_profiles) {
10448 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
10449 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
10450 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
10451 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
10453 if (r->inf_path) {
10454 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10455 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
10456 NDR_CHECK(ndr_pull_array_size(ndr, &r->inf_path));
10457 NDR_CHECK(ndr_pull_array_length(ndr, &r->inf_path));
10458 if (ndr_get_array_length(ndr, &r->inf_path) > ndr_get_array_size(ndr, &r->inf_path)) {
10459 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));
10461 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t)));
10462 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->inf_path, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t), CH_UTF16));
10463 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
10465 if (r->core_driver_dependencies) {
10466 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
10467 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
10468 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
10469 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
10472 return NDR_ERR_SUCCESS;
10475 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo8 *r)
10477 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo8");
10478 ndr->depth++;
10479 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10480 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10481 ndr->depth++;
10482 if (r->driver_name) {
10483 ndr_print_string(ndr, "driver_name", r->driver_name);
10485 ndr->depth--;
10486 ndr_print_ptr(ndr, "architecture", r->architecture);
10487 ndr->depth++;
10488 if (r->architecture) {
10489 ndr_print_string(ndr, "architecture", r->architecture);
10491 ndr->depth--;
10492 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10493 ndr->depth++;
10494 if (r->driver_path) {
10495 ndr_print_string(ndr, "driver_path", r->driver_path);
10497 ndr->depth--;
10498 ndr_print_ptr(ndr, "data_file", r->data_file);
10499 ndr->depth++;
10500 if (r->data_file) {
10501 ndr_print_string(ndr, "data_file", r->data_file);
10503 ndr->depth--;
10504 ndr_print_ptr(ndr, "config_file", r->config_file);
10505 ndr->depth++;
10506 if (r->config_file) {
10507 ndr_print_string(ndr, "config_file", r->config_file);
10509 ndr->depth--;
10510 ndr_print_ptr(ndr, "help_file", r->help_file);
10511 ndr->depth++;
10512 if (r->help_file) {
10513 ndr_print_string(ndr, "help_file", r->help_file);
10515 ndr->depth--;
10516 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
10517 ndr->depth++;
10518 if (r->monitor_name) {
10519 ndr_print_string(ndr, "monitor_name", r->monitor_name);
10521 ndr->depth--;
10522 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
10523 ndr->depth++;
10524 if (r->default_datatype) {
10525 ndr_print_string(ndr, "default_datatype", r->default_datatype);
10527 ndr->depth--;
10528 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);
10529 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
10530 ndr->depth++;
10531 if (r->dependent_files) {
10532 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
10534 ndr->depth--;
10535 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);
10536 ndr_print_ptr(ndr, "previous_names", r->previous_names);
10537 ndr->depth++;
10538 if (r->previous_names) {
10539 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
10541 ndr->depth--;
10542 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
10543 ndr_print_hyper(ndr, "driver_version", r->driver_version);
10544 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
10545 ndr->depth++;
10546 if (r->manufacturer_name) {
10547 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
10549 ndr->depth--;
10550 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
10551 ndr->depth++;
10552 if (r->manufacturer_url) {
10553 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
10555 ndr->depth--;
10556 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
10557 ndr->depth++;
10558 if (r->hardware_id) {
10559 ndr_print_string(ndr, "hardware_id", r->hardware_id);
10561 ndr->depth--;
10562 ndr_print_ptr(ndr, "provider", r->provider);
10563 ndr->depth++;
10564 if (r->provider) {
10565 ndr_print_string(ndr, "provider", r->provider);
10567 ndr->depth--;
10568 ndr_print_ptr(ndr, "print_processor", r->print_processor);
10569 ndr->depth++;
10570 if (r->print_processor) {
10571 ndr_print_string(ndr, "print_processor", r->print_processor);
10573 ndr->depth--;
10574 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
10575 ndr->depth++;
10576 if (r->vendor_setup) {
10577 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
10579 ndr->depth--;
10580 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);
10581 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
10582 ndr->depth++;
10583 if (r->color_profiles) {
10584 ndr_print_spoolss_StringArray(ndr, "color_profiles", r->color_profiles);
10586 ndr->depth--;
10587 ndr_print_ptr(ndr, "inf_path", r->inf_path);
10588 ndr->depth++;
10589 if (r->inf_path) {
10590 ndr_print_string(ndr, "inf_path", r->inf_path);
10592 ndr->depth--;
10593 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
10594 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);
10595 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10596 ndr->depth++;
10597 if (r->core_driver_dependencies) {
10598 ndr_print_spoolss_StringArray(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10600 ndr->depth--;
10601 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
10602 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
10603 ndr->depth--;
10606 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddDriverInfo *r)
10608 if (ndr_flags & NDR_SCALARS) {
10609 int level = ndr_push_get_switch_value(ndr, r);
10610 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
10611 NDR_CHECK(ndr_push_union_align(ndr, 5));
10612 switch (level) {
10613 case 1: {
10614 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
10615 break; }
10617 case 2: {
10618 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
10619 break; }
10621 case 3: {
10622 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
10623 break; }
10625 case 4: {
10626 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
10627 break; }
10629 case 6: {
10630 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
10631 break; }
10633 case 8: {
10634 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
10635 break; }
10637 default:
10638 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10641 if (ndr_flags & NDR_BUFFERS) {
10642 int level = ndr_push_get_switch_value(ndr, r);
10643 switch (level) {
10644 case 1:
10645 if (r->info1) {
10646 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
10648 break;
10650 case 2:
10651 if (r->info2) {
10652 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
10654 break;
10656 case 3:
10657 if (r->info3) {
10658 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
10660 break;
10662 case 4:
10663 if (r->info4) {
10664 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
10666 break;
10668 case 6:
10669 if (r->info6) {
10670 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
10672 break;
10674 case 8:
10675 if (r->info8) {
10676 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
10678 break;
10680 default:
10681 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10684 return NDR_ERR_SUCCESS;
10687 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddDriverInfo *r)
10689 int level;
10690 uint32_t _level;
10691 TALLOC_CTX *_mem_save_info1_0;
10692 TALLOC_CTX *_mem_save_info2_0;
10693 TALLOC_CTX *_mem_save_info3_0;
10694 TALLOC_CTX *_mem_save_info4_0;
10695 TALLOC_CTX *_mem_save_info6_0;
10696 TALLOC_CTX *_mem_save_info8_0;
10697 level = ndr_pull_get_switch_value(ndr, r);
10698 if (ndr_flags & NDR_SCALARS) {
10699 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
10700 if (_level != level) {
10701 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
10703 NDR_CHECK(ndr_pull_union_align(ndr, 5));
10704 switch (level) {
10705 case 1: {
10706 uint32_t _ptr_info1;
10707 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
10708 if (_ptr_info1) {
10709 NDR_PULL_ALLOC(ndr, r->info1);
10710 } else {
10711 r->info1 = NULL;
10713 break; }
10715 case 2: {
10716 uint32_t _ptr_info2;
10717 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
10718 if (_ptr_info2) {
10719 NDR_PULL_ALLOC(ndr, r->info2);
10720 } else {
10721 r->info2 = NULL;
10723 break; }
10725 case 3: {
10726 uint32_t _ptr_info3;
10727 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
10728 if (_ptr_info3) {
10729 NDR_PULL_ALLOC(ndr, r->info3);
10730 } else {
10731 r->info3 = NULL;
10733 break; }
10735 case 4: {
10736 uint32_t _ptr_info4;
10737 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
10738 if (_ptr_info4) {
10739 NDR_PULL_ALLOC(ndr, r->info4);
10740 } else {
10741 r->info4 = NULL;
10743 break; }
10745 case 6: {
10746 uint32_t _ptr_info6;
10747 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
10748 if (_ptr_info6) {
10749 NDR_PULL_ALLOC(ndr, r->info6);
10750 } else {
10751 r->info6 = NULL;
10753 break; }
10755 case 8: {
10756 uint32_t _ptr_info8;
10757 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
10758 if (_ptr_info8) {
10759 NDR_PULL_ALLOC(ndr, r->info8);
10760 } else {
10761 r->info8 = NULL;
10763 break; }
10765 default:
10766 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10769 if (ndr_flags & NDR_BUFFERS) {
10770 switch (level) {
10771 case 1:
10772 if (r->info1) {
10773 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
10774 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
10775 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
10776 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
10778 break;
10780 case 2:
10781 if (r->info2) {
10782 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
10783 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
10784 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
10785 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
10787 break;
10789 case 3:
10790 if (r->info3) {
10791 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
10792 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
10793 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
10794 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
10796 break;
10798 case 4:
10799 if (r->info4) {
10800 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
10801 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
10802 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
10803 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
10805 break;
10807 case 6:
10808 if (r->info6) {
10809 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
10810 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
10811 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
10812 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
10814 break;
10816 case 8:
10817 if (r->info8) {
10818 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
10819 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
10820 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
10821 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
10823 break;
10825 default:
10826 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10829 return NDR_ERR_SUCCESS;
10832 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddDriverInfo *r)
10834 int level;
10835 level = ndr_print_get_switch_value(ndr, r);
10836 ndr_print_union(ndr, name, level, "spoolss_AddDriverInfo");
10837 switch (level) {
10838 case 1:
10839 ndr_print_ptr(ndr, "info1", r->info1);
10840 ndr->depth++;
10841 if (r->info1) {
10842 ndr_print_spoolss_AddDriverInfo1(ndr, "info1", r->info1);
10844 ndr->depth--;
10845 break;
10847 case 2:
10848 ndr_print_ptr(ndr, "info2", r->info2);
10849 ndr->depth++;
10850 if (r->info2) {
10851 ndr_print_spoolss_AddDriverInfo2(ndr, "info2", r->info2);
10853 ndr->depth--;
10854 break;
10856 case 3:
10857 ndr_print_ptr(ndr, "info3", r->info3);
10858 ndr->depth++;
10859 if (r->info3) {
10860 ndr_print_spoolss_AddDriverInfo3(ndr, "info3", r->info3);
10862 ndr->depth--;
10863 break;
10865 case 4:
10866 ndr_print_ptr(ndr, "info4", r->info4);
10867 ndr->depth++;
10868 if (r->info4) {
10869 ndr_print_spoolss_AddDriverInfo4(ndr, "info4", r->info4);
10871 ndr->depth--;
10872 break;
10874 case 6:
10875 ndr_print_ptr(ndr, "info6", r->info6);
10876 ndr->depth++;
10877 if (r->info6) {
10878 ndr_print_spoolss_AddDriverInfo6(ndr, "info6", r->info6);
10880 ndr->depth--;
10881 break;
10883 case 8:
10884 ndr_print_ptr(ndr, "info8", r->info8);
10885 ndr->depth++;
10886 if (r->info8) {
10887 ndr_print_spoolss_AddDriverInfo8(ndr, "info8", r->info8);
10889 ndr->depth--;
10890 break;
10892 default:
10893 ndr_print_bad_level(ndr, name, level);
10897 static enum ndr_err_code ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfoCtr *r)
10899 if (ndr_flags & NDR_SCALARS) {
10900 NDR_CHECK(ndr_push_align(ndr, 5));
10901 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
10902 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
10903 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
10904 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10906 if (ndr_flags & NDR_BUFFERS) {
10907 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
10909 return NDR_ERR_SUCCESS;
10912 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfoCtr *r)
10914 if (ndr_flags & NDR_SCALARS) {
10915 NDR_CHECK(ndr_pull_align(ndr, 5));
10916 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
10917 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
10918 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
10919 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10921 if (ndr_flags & NDR_BUFFERS) {
10922 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
10924 return NDR_ERR_SUCCESS;
10927 _PUBLIC_ void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfoCtr *r)
10929 ndr_print_struct(ndr, name, "spoolss_AddDriverInfoCtr");
10930 ndr->depth++;
10931 ndr_print_uint32(ndr, "level", r->level);
10932 ndr_print_set_switch_value(ndr, &r->info, r->level);
10933 ndr_print_spoolss_AddDriverInfo(ndr, "info", &r->info);
10934 ndr->depth--;
10937 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo1 *r)
10939 if (ndr_flags & NDR_SCALARS) {
10940 NDR_CHECK(ndr_push_align(ndr, 5));
10942 uint32_t _flags_save_string = ndr->flags;
10943 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10944 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10945 ndr->flags = _flags_save_string;
10947 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10949 if (ndr_flags & NDR_BUFFERS) {
10951 uint32_t _flags_save_string = ndr->flags;
10952 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10953 if (r->driver_name) {
10954 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
10955 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10956 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
10958 ndr->flags = _flags_save_string;
10961 return NDR_ERR_SUCCESS;
10964 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo1 *r)
10966 uint32_t _ptr_driver_name;
10967 TALLOC_CTX *_mem_save_driver_name_0;
10968 if (ndr_flags & NDR_SCALARS) {
10969 NDR_CHECK(ndr_pull_align(ndr, 5));
10971 uint32_t _flags_save_string = ndr->flags;
10972 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10973 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10974 if (_ptr_driver_name) {
10975 NDR_PULL_ALLOC(ndr, r->driver_name);
10976 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10977 } else {
10978 r->driver_name = NULL;
10980 ndr->flags = _flags_save_string;
10982 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10984 if (ndr_flags & NDR_BUFFERS) {
10986 uint32_t _flags_save_string = ndr->flags;
10987 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10988 if (r->driver_name) {
10989 uint32_t _relative_save_offset;
10990 _relative_save_offset = ndr->offset;
10991 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10992 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10993 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10994 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10995 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10996 if (ndr->offset > ndr->relative_highest_offset) {
10997 ndr->relative_highest_offset = ndr->offset;
10999 ndr->offset = _relative_save_offset;
11001 ndr->flags = _flags_save_string;
11004 return NDR_ERR_SUCCESS;
11007 _PUBLIC_ void ndr_print_spoolss_DriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo1 *r)
11009 ndr_print_struct(ndr, name, "spoolss_DriverInfo1");
11010 ndr->depth++;
11011 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11012 ndr->depth++;
11013 if (r->driver_name) {
11014 ndr_print_string(ndr, "driver_name", r->driver_name);
11016 ndr->depth--;
11017 ndr->depth--;
11020 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1 *r, struct smb_iconv_convenience *ic, int flags)
11022 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo1, ic);
11025 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo2 *r)
11027 if (ndr_flags & NDR_SCALARS) {
11028 NDR_CHECK(ndr_push_align(ndr, 5));
11029 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11031 uint32_t _flags_save_string = ndr->flags;
11032 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11033 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11034 ndr->flags = _flags_save_string;
11037 uint32_t _flags_save_string = ndr->flags;
11038 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11039 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11040 ndr->flags = _flags_save_string;
11043 uint32_t _flags_save_string = ndr->flags;
11044 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11045 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11046 ndr->flags = _flags_save_string;
11049 uint32_t _flags_save_string = ndr->flags;
11050 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11051 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11052 ndr->flags = _flags_save_string;
11055 uint32_t _flags_save_string = ndr->flags;
11056 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11057 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11058 ndr->flags = _flags_save_string;
11060 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11062 if (ndr_flags & NDR_BUFFERS) {
11064 uint32_t _flags_save_string = ndr->flags;
11065 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11066 if (r->driver_name) {
11067 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
11068 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11069 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
11071 ndr->flags = _flags_save_string;
11074 uint32_t _flags_save_string = ndr->flags;
11075 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11076 if (r->architecture) {
11077 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
11078 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11079 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
11081 ndr->flags = _flags_save_string;
11084 uint32_t _flags_save_string = ndr->flags;
11085 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11086 if (r->driver_path) {
11087 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
11088 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11089 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
11091 ndr->flags = _flags_save_string;
11094 uint32_t _flags_save_string = ndr->flags;
11095 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11096 if (r->data_file) {
11097 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
11098 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11099 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
11101 ndr->flags = _flags_save_string;
11104 uint32_t _flags_save_string = ndr->flags;
11105 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11106 if (r->config_file) {
11107 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
11108 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11109 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
11111 ndr->flags = _flags_save_string;
11114 return NDR_ERR_SUCCESS;
11117 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo2 *r)
11119 uint32_t _ptr_driver_name;
11120 TALLOC_CTX *_mem_save_driver_name_0;
11121 uint32_t _ptr_architecture;
11122 TALLOC_CTX *_mem_save_architecture_0;
11123 uint32_t _ptr_driver_path;
11124 TALLOC_CTX *_mem_save_driver_path_0;
11125 uint32_t _ptr_data_file;
11126 TALLOC_CTX *_mem_save_data_file_0;
11127 uint32_t _ptr_config_file;
11128 TALLOC_CTX *_mem_save_config_file_0;
11129 if (ndr_flags & NDR_SCALARS) {
11130 NDR_CHECK(ndr_pull_align(ndr, 5));
11131 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11133 uint32_t _flags_save_string = ndr->flags;
11134 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11135 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11136 if (_ptr_driver_name) {
11137 NDR_PULL_ALLOC(ndr, r->driver_name);
11138 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11139 } else {
11140 r->driver_name = NULL;
11142 ndr->flags = _flags_save_string;
11145 uint32_t _flags_save_string = ndr->flags;
11146 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11147 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11148 if (_ptr_architecture) {
11149 NDR_PULL_ALLOC(ndr, r->architecture);
11150 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11151 } else {
11152 r->architecture = NULL;
11154 ndr->flags = _flags_save_string;
11157 uint32_t _flags_save_string = ndr->flags;
11158 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11159 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11160 if (_ptr_driver_path) {
11161 NDR_PULL_ALLOC(ndr, r->driver_path);
11162 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11163 } else {
11164 r->driver_path = NULL;
11166 ndr->flags = _flags_save_string;
11169 uint32_t _flags_save_string = ndr->flags;
11170 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11171 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11172 if (_ptr_data_file) {
11173 NDR_PULL_ALLOC(ndr, r->data_file);
11174 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11175 } else {
11176 r->data_file = NULL;
11178 ndr->flags = _flags_save_string;
11181 uint32_t _flags_save_string = ndr->flags;
11182 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11183 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11184 if (_ptr_config_file) {
11185 NDR_PULL_ALLOC(ndr, r->config_file);
11186 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11187 } else {
11188 r->config_file = NULL;
11190 ndr->flags = _flags_save_string;
11192 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11194 if (ndr_flags & NDR_BUFFERS) {
11196 uint32_t _flags_save_string = ndr->flags;
11197 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11198 if (r->driver_name) {
11199 uint32_t _relative_save_offset;
11200 _relative_save_offset = ndr->offset;
11201 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11202 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11203 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11204 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11205 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11206 if (ndr->offset > ndr->relative_highest_offset) {
11207 ndr->relative_highest_offset = ndr->offset;
11209 ndr->offset = _relative_save_offset;
11211 ndr->flags = _flags_save_string;
11214 uint32_t _flags_save_string = ndr->flags;
11215 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11216 if (r->architecture) {
11217 uint32_t _relative_save_offset;
11218 _relative_save_offset = ndr->offset;
11219 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11220 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11221 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11222 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11223 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11224 if (ndr->offset > ndr->relative_highest_offset) {
11225 ndr->relative_highest_offset = ndr->offset;
11227 ndr->offset = _relative_save_offset;
11229 ndr->flags = _flags_save_string;
11232 uint32_t _flags_save_string = ndr->flags;
11233 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11234 if (r->driver_path) {
11235 uint32_t _relative_save_offset;
11236 _relative_save_offset = ndr->offset;
11237 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11238 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11239 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11240 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11241 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11242 if (ndr->offset > ndr->relative_highest_offset) {
11243 ndr->relative_highest_offset = ndr->offset;
11245 ndr->offset = _relative_save_offset;
11247 ndr->flags = _flags_save_string;
11250 uint32_t _flags_save_string = ndr->flags;
11251 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11252 if (r->data_file) {
11253 uint32_t _relative_save_offset;
11254 _relative_save_offset = ndr->offset;
11255 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11256 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11257 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11258 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11259 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11260 if (ndr->offset > ndr->relative_highest_offset) {
11261 ndr->relative_highest_offset = ndr->offset;
11263 ndr->offset = _relative_save_offset;
11265 ndr->flags = _flags_save_string;
11268 uint32_t _flags_save_string = ndr->flags;
11269 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11270 if (r->config_file) {
11271 uint32_t _relative_save_offset;
11272 _relative_save_offset = ndr->offset;
11273 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11274 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11275 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11276 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11277 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11278 if (ndr->offset > ndr->relative_highest_offset) {
11279 ndr->relative_highest_offset = ndr->offset;
11281 ndr->offset = _relative_save_offset;
11283 ndr->flags = _flags_save_string;
11286 return NDR_ERR_SUCCESS;
11289 _PUBLIC_ void ndr_print_spoolss_DriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo2 *r)
11291 ndr_print_struct(ndr, name, "spoolss_DriverInfo2");
11292 ndr->depth++;
11293 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11294 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11295 ndr->depth++;
11296 if (r->driver_name) {
11297 ndr_print_string(ndr, "driver_name", r->driver_name);
11299 ndr->depth--;
11300 ndr_print_ptr(ndr, "architecture", r->architecture);
11301 ndr->depth++;
11302 if (r->architecture) {
11303 ndr_print_string(ndr, "architecture", r->architecture);
11305 ndr->depth--;
11306 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11307 ndr->depth++;
11308 if (r->driver_path) {
11309 ndr_print_string(ndr, "driver_path", r->driver_path);
11311 ndr->depth--;
11312 ndr_print_ptr(ndr, "data_file", r->data_file);
11313 ndr->depth++;
11314 if (r->data_file) {
11315 ndr_print_string(ndr, "data_file", r->data_file);
11317 ndr->depth--;
11318 ndr_print_ptr(ndr, "config_file", r->config_file);
11319 ndr->depth++;
11320 if (r->config_file) {
11321 ndr_print_string(ndr, "config_file", r->config_file);
11323 ndr->depth--;
11324 ndr->depth--;
11327 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2 *r, struct smb_iconv_convenience *ic, int flags)
11329 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo2, ic);
11332 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo3 *r)
11334 if (ndr_flags & NDR_SCALARS) {
11335 NDR_CHECK(ndr_push_align(ndr, 5));
11336 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11338 uint32_t _flags_save_string = ndr->flags;
11339 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11340 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11341 ndr->flags = _flags_save_string;
11344 uint32_t _flags_save_string = ndr->flags;
11345 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11346 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11347 ndr->flags = _flags_save_string;
11350 uint32_t _flags_save_string = ndr->flags;
11351 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11352 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11353 ndr->flags = _flags_save_string;
11356 uint32_t _flags_save_string = ndr->flags;
11357 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11358 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11359 ndr->flags = _flags_save_string;
11362 uint32_t _flags_save_string = ndr->flags;
11363 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11364 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11365 ndr->flags = _flags_save_string;
11368 uint32_t _flags_save_string = ndr->flags;
11369 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11370 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
11371 ndr->flags = _flags_save_string;
11374 uint32_t _flags_save_string_array = ndr->flags;
11375 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11376 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
11377 ndr->flags = _flags_save_string_array;
11380 uint32_t _flags_save_string = ndr->flags;
11381 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11382 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
11383 ndr->flags = _flags_save_string;
11386 uint32_t _flags_save_string = ndr->flags;
11387 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11388 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
11389 ndr->flags = _flags_save_string;
11391 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11393 if (ndr_flags & NDR_BUFFERS) {
11395 uint32_t _flags_save_string = ndr->flags;
11396 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11397 if (r->driver_name) {
11398 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
11399 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11400 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
11402 ndr->flags = _flags_save_string;
11405 uint32_t _flags_save_string = ndr->flags;
11406 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11407 if (r->architecture) {
11408 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
11409 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11410 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
11412 ndr->flags = _flags_save_string;
11415 uint32_t _flags_save_string = ndr->flags;
11416 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11417 if (r->driver_path) {
11418 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
11419 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11420 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
11422 ndr->flags = _flags_save_string;
11425 uint32_t _flags_save_string = ndr->flags;
11426 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11427 if (r->data_file) {
11428 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
11429 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11430 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
11432 ndr->flags = _flags_save_string;
11435 uint32_t _flags_save_string = ndr->flags;
11436 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11437 if (r->config_file) {
11438 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
11439 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11440 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
11442 ndr->flags = _flags_save_string;
11445 uint32_t _flags_save_string = ndr->flags;
11446 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11447 if (r->help_file) {
11448 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
11449 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
11450 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
11452 ndr->flags = _flags_save_string;
11455 uint32_t _flags_save_string_array = ndr->flags;
11456 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11457 if (r->dependent_files) {
11458 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
11459 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
11460 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
11462 ndr->flags = _flags_save_string_array;
11465 uint32_t _flags_save_string = ndr->flags;
11466 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11467 if (r->monitor_name) {
11468 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
11469 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
11470 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
11472 ndr->flags = _flags_save_string;
11475 uint32_t _flags_save_string = ndr->flags;
11476 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11477 if (r->default_datatype) {
11478 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
11479 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
11480 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
11482 ndr->flags = _flags_save_string;
11485 return NDR_ERR_SUCCESS;
11488 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo3 *r)
11490 uint32_t _ptr_driver_name;
11491 TALLOC_CTX *_mem_save_driver_name_0;
11492 uint32_t _ptr_architecture;
11493 TALLOC_CTX *_mem_save_architecture_0;
11494 uint32_t _ptr_driver_path;
11495 TALLOC_CTX *_mem_save_driver_path_0;
11496 uint32_t _ptr_data_file;
11497 TALLOC_CTX *_mem_save_data_file_0;
11498 uint32_t _ptr_config_file;
11499 TALLOC_CTX *_mem_save_config_file_0;
11500 uint32_t _ptr_help_file;
11501 TALLOC_CTX *_mem_save_help_file_0;
11502 uint32_t _ptr_dependent_files;
11503 TALLOC_CTX *_mem_save_dependent_files_0;
11504 uint32_t _ptr_monitor_name;
11505 TALLOC_CTX *_mem_save_monitor_name_0;
11506 uint32_t _ptr_default_datatype;
11507 TALLOC_CTX *_mem_save_default_datatype_0;
11508 if (ndr_flags & NDR_SCALARS) {
11509 NDR_CHECK(ndr_pull_align(ndr, 5));
11510 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11512 uint32_t _flags_save_string = ndr->flags;
11513 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11514 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11515 if (_ptr_driver_name) {
11516 NDR_PULL_ALLOC(ndr, r->driver_name);
11517 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11518 } else {
11519 r->driver_name = NULL;
11521 ndr->flags = _flags_save_string;
11524 uint32_t _flags_save_string = ndr->flags;
11525 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11526 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11527 if (_ptr_architecture) {
11528 NDR_PULL_ALLOC(ndr, r->architecture);
11529 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11530 } else {
11531 r->architecture = NULL;
11533 ndr->flags = _flags_save_string;
11536 uint32_t _flags_save_string = ndr->flags;
11537 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11538 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11539 if (_ptr_driver_path) {
11540 NDR_PULL_ALLOC(ndr, r->driver_path);
11541 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11542 } else {
11543 r->driver_path = NULL;
11545 ndr->flags = _flags_save_string;
11548 uint32_t _flags_save_string = ndr->flags;
11549 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11550 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11551 if (_ptr_data_file) {
11552 NDR_PULL_ALLOC(ndr, r->data_file);
11553 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11554 } else {
11555 r->data_file = NULL;
11557 ndr->flags = _flags_save_string;
11560 uint32_t _flags_save_string = ndr->flags;
11561 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11562 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11563 if (_ptr_config_file) {
11564 NDR_PULL_ALLOC(ndr, r->config_file);
11565 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11566 } else {
11567 r->config_file = NULL;
11569 ndr->flags = _flags_save_string;
11572 uint32_t _flags_save_string = ndr->flags;
11573 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11574 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
11575 if (_ptr_help_file) {
11576 NDR_PULL_ALLOC(ndr, r->help_file);
11577 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
11578 } else {
11579 r->help_file = NULL;
11581 ndr->flags = _flags_save_string;
11584 uint32_t _flags_save_string_array = ndr->flags;
11585 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11586 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
11587 if (_ptr_dependent_files) {
11588 NDR_PULL_ALLOC(ndr, r->dependent_files);
11589 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
11590 } else {
11591 r->dependent_files = NULL;
11593 ndr->flags = _flags_save_string_array;
11596 uint32_t _flags_save_string = ndr->flags;
11597 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11598 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
11599 if (_ptr_monitor_name) {
11600 NDR_PULL_ALLOC(ndr, r->monitor_name);
11601 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
11602 } else {
11603 r->monitor_name = NULL;
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 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
11611 if (_ptr_default_datatype) {
11612 NDR_PULL_ALLOC(ndr, r->default_datatype);
11613 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
11614 } else {
11615 r->default_datatype = NULL;
11617 ndr->flags = _flags_save_string;
11619 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11621 if (ndr_flags & NDR_BUFFERS) {
11623 uint32_t _flags_save_string = ndr->flags;
11624 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11625 if (r->driver_name) {
11626 uint32_t _relative_save_offset;
11627 _relative_save_offset = ndr->offset;
11628 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11629 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11630 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11631 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11632 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11633 if (ndr->offset > ndr->relative_highest_offset) {
11634 ndr->relative_highest_offset = ndr->offset;
11636 ndr->offset = _relative_save_offset;
11638 ndr->flags = _flags_save_string;
11641 uint32_t _flags_save_string = ndr->flags;
11642 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11643 if (r->architecture) {
11644 uint32_t _relative_save_offset;
11645 _relative_save_offset = ndr->offset;
11646 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11647 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11648 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11649 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11650 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11651 if (ndr->offset > ndr->relative_highest_offset) {
11652 ndr->relative_highest_offset = ndr->offset;
11654 ndr->offset = _relative_save_offset;
11656 ndr->flags = _flags_save_string;
11659 uint32_t _flags_save_string = ndr->flags;
11660 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11661 if (r->driver_path) {
11662 uint32_t _relative_save_offset;
11663 _relative_save_offset = ndr->offset;
11664 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11665 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11666 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11667 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11668 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11669 if (ndr->offset > ndr->relative_highest_offset) {
11670 ndr->relative_highest_offset = ndr->offset;
11672 ndr->offset = _relative_save_offset;
11674 ndr->flags = _flags_save_string;
11677 uint32_t _flags_save_string = ndr->flags;
11678 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11679 if (r->data_file) {
11680 uint32_t _relative_save_offset;
11681 _relative_save_offset = ndr->offset;
11682 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11683 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11684 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11685 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11686 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11687 if (ndr->offset > ndr->relative_highest_offset) {
11688 ndr->relative_highest_offset = ndr->offset;
11690 ndr->offset = _relative_save_offset;
11692 ndr->flags = _flags_save_string;
11695 uint32_t _flags_save_string = ndr->flags;
11696 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11697 if (r->config_file) {
11698 uint32_t _relative_save_offset;
11699 _relative_save_offset = ndr->offset;
11700 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11701 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11702 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11703 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11704 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11705 if (ndr->offset > ndr->relative_highest_offset) {
11706 ndr->relative_highest_offset = ndr->offset;
11708 ndr->offset = _relative_save_offset;
11710 ndr->flags = _flags_save_string;
11713 uint32_t _flags_save_string = ndr->flags;
11714 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11715 if (r->help_file) {
11716 uint32_t _relative_save_offset;
11717 _relative_save_offset = ndr->offset;
11718 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
11719 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11720 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
11721 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
11722 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
11723 if (ndr->offset > ndr->relative_highest_offset) {
11724 ndr->relative_highest_offset = ndr->offset;
11726 ndr->offset = _relative_save_offset;
11728 ndr->flags = _flags_save_string;
11731 uint32_t _flags_save_string_array = ndr->flags;
11732 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11733 if (r->dependent_files) {
11734 uint32_t _relative_save_offset;
11735 _relative_save_offset = ndr->offset;
11736 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
11737 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
11738 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
11739 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
11740 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
11741 if (ndr->offset > ndr->relative_highest_offset) {
11742 ndr->relative_highest_offset = ndr->offset;
11744 ndr->offset = _relative_save_offset;
11746 ndr->flags = _flags_save_string_array;
11749 uint32_t _flags_save_string = ndr->flags;
11750 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11751 if (r->monitor_name) {
11752 uint32_t _relative_save_offset;
11753 _relative_save_offset = ndr->offset;
11754 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
11755 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11756 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
11757 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
11758 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
11759 if (ndr->offset > ndr->relative_highest_offset) {
11760 ndr->relative_highest_offset = ndr->offset;
11762 ndr->offset = _relative_save_offset;
11764 ndr->flags = _flags_save_string;
11767 uint32_t _flags_save_string = ndr->flags;
11768 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11769 if (r->default_datatype) {
11770 uint32_t _relative_save_offset;
11771 _relative_save_offset = ndr->offset;
11772 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
11773 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11774 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
11775 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
11776 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
11777 if (ndr->offset > ndr->relative_highest_offset) {
11778 ndr->relative_highest_offset = ndr->offset;
11780 ndr->offset = _relative_save_offset;
11782 ndr->flags = _flags_save_string;
11785 return NDR_ERR_SUCCESS;
11788 _PUBLIC_ void ndr_print_spoolss_DriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo3 *r)
11790 ndr_print_struct(ndr, name, "spoolss_DriverInfo3");
11791 ndr->depth++;
11792 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11793 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11794 ndr->depth++;
11795 if (r->driver_name) {
11796 ndr_print_string(ndr, "driver_name", r->driver_name);
11798 ndr->depth--;
11799 ndr_print_ptr(ndr, "architecture", r->architecture);
11800 ndr->depth++;
11801 if (r->architecture) {
11802 ndr_print_string(ndr, "architecture", r->architecture);
11804 ndr->depth--;
11805 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11806 ndr->depth++;
11807 if (r->driver_path) {
11808 ndr_print_string(ndr, "driver_path", r->driver_path);
11810 ndr->depth--;
11811 ndr_print_ptr(ndr, "data_file", r->data_file);
11812 ndr->depth++;
11813 if (r->data_file) {
11814 ndr_print_string(ndr, "data_file", r->data_file);
11816 ndr->depth--;
11817 ndr_print_ptr(ndr, "config_file", r->config_file);
11818 ndr->depth++;
11819 if (r->config_file) {
11820 ndr_print_string(ndr, "config_file", r->config_file);
11822 ndr->depth--;
11823 ndr_print_ptr(ndr, "help_file", r->help_file);
11824 ndr->depth++;
11825 if (r->help_file) {
11826 ndr_print_string(ndr, "help_file", r->help_file);
11828 ndr->depth--;
11829 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
11830 ndr->depth++;
11831 if (r->dependent_files) {
11832 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
11834 ndr->depth--;
11835 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
11836 ndr->depth++;
11837 if (r->monitor_name) {
11838 ndr_print_string(ndr, "monitor_name", r->monitor_name);
11840 ndr->depth--;
11841 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
11842 ndr->depth++;
11843 if (r->default_datatype) {
11844 ndr_print_string(ndr, "default_datatype", r->default_datatype);
11846 ndr->depth--;
11847 ndr->depth--;
11850 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3 *r, struct smb_iconv_convenience *ic, int flags)
11852 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo3, ic);
11855 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo4 *r)
11857 if (ndr_flags & NDR_SCALARS) {
11858 NDR_CHECK(ndr_push_align(ndr, 5));
11859 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11861 uint32_t _flags_save_string = ndr->flags;
11862 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11863 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11864 ndr->flags = _flags_save_string;
11867 uint32_t _flags_save_string = ndr->flags;
11868 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11869 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11870 ndr->flags = _flags_save_string;
11873 uint32_t _flags_save_string = ndr->flags;
11874 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11875 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11876 ndr->flags = _flags_save_string;
11879 uint32_t _flags_save_string = ndr->flags;
11880 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11881 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11882 ndr->flags = _flags_save_string;
11885 uint32_t _flags_save_string = ndr->flags;
11886 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11887 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11888 ndr->flags = _flags_save_string;
11891 uint32_t _flags_save_string = ndr->flags;
11892 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11893 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
11894 ndr->flags = _flags_save_string;
11897 uint32_t _flags_save_string_array = ndr->flags;
11898 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11899 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
11900 ndr->flags = _flags_save_string_array;
11903 uint32_t _flags_save_string = ndr->flags;
11904 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11905 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
11906 ndr->flags = _flags_save_string;
11909 uint32_t _flags_save_string = ndr->flags;
11910 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11911 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
11912 ndr->flags = _flags_save_string;
11915 uint32_t _flags_save_string_array = ndr->flags;
11916 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11917 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
11918 ndr->flags = _flags_save_string_array;
11920 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11922 if (ndr_flags & NDR_BUFFERS) {
11924 uint32_t _flags_save_string = ndr->flags;
11925 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11926 if (r->driver_name) {
11927 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
11928 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11929 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
11931 ndr->flags = _flags_save_string;
11934 uint32_t _flags_save_string = ndr->flags;
11935 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11936 if (r->architecture) {
11937 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
11938 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11939 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
11941 ndr->flags = _flags_save_string;
11944 uint32_t _flags_save_string = ndr->flags;
11945 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11946 if (r->driver_path) {
11947 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
11948 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11949 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
11951 ndr->flags = _flags_save_string;
11954 uint32_t _flags_save_string = ndr->flags;
11955 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11956 if (r->data_file) {
11957 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
11958 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11959 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
11961 ndr->flags = _flags_save_string;
11964 uint32_t _flags_save_string = ndr->flags;
11965 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11966 if (r->config_file) {
11967 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
11968 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11969 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
11971 ndr->flags = _flags_save_string;
11974 uint32_t _flags_save_string = ndr->flags;
11975 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11976 if (r->help_file) {
11977 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
11978 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
11979 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
11981 ndr->flags = _flags_save_string;
11984 uint32_t _flags_save_string_array = ndr->flags;
11985 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11986 if (r->dependent_files) {
11987 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
11988 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
11989 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
11991 ndr->flags = _flags_save_string_array;
11994 uint32_t _flags_save_string = ndr->flags;
11995 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11996 if (r->monitor_name) {
11997 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
11998 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
11999 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
12001 ndr->flags = _flags_save_string;
12004 uint32_t _flags_save_string = ndr->flags;
12005 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12006 if (r->default_datatype) {
12007 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
12008 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
12009 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
12011 ndr->flags = _flags_save_string;
12014 uint32_t _flags_save_string_array = ndr->flags;
12015 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12016 if (r->previous_names) {
12017 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->previous_names));
12018 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
12019 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->previous_names));
12021 ndr->flags = _flags_save_string_array;
12024 return NDR_ERR_SUCCESS;
12027 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo4 *r)
12029 uint32_t _ptr_driver_name;
12030 TALLOC_CTX *_mem_save_driver_name_0;
12031 uint32_t _ptr_architecture;
12032 TALLOC_CTX *_mem_save_architecture_0;
12033 uint32_t _ptr_driver_path;
12034 TALLOC_CTX *_mem_save_driver_path_0;
12035 uint32_t _ptr_data_file;
12036 TALLOC_CTX *_mem_save_data_file_0;
12037 uint32_t _ptr_config_file;
12038 TALLOC_CTX *_mem_save_config_file_0;
12039 uint32_t _ptr_help_file;
12040 TALLOC_CTX *_mem_save_help_file_0;
12041 uint32_t _ptr_dependent_files;
12042 TALLOC_CTX *_mem_save_dependent_files_0;
12043 uint32_t _ptr_monitor_name;
12044 TALLOC_CTX *_mem_save_monitor_name_0;
12045 uint32_t _ptr_default_datatype;
12046 TALLOC_CTX *_mem_save_default_datatype_0;
12047 uint32_t _ptr_previous_names;
12048 TALLOC_CTX *_mem_save_previous_names_0;
12049 if (ndr_flags & NDR_SCALARS) {
12050 NDR_CHECK(ndr_pull_align(ndr, 5));
12051 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12053 uint32_t _flags_save_string = ndr->flags;
12054 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12055 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12056 if (_ptr_driver_name) {
12057 NDR_PULL_ALLOC(ndr, r->driver_name);
12058 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12059 } else {
12060 r->driver_name = NULL;
12062 ndr->flags = _flags_save_string;
12065 uint32_t _flags_save_string = ndr->flags;
12066 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12067 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
12068 if (_ptr_architecture) {
12069 NDR_PULL_ALLOC(ndr, r->architecture);
12070 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12071 } else {
12072 r->architecture = NULL;
12074 ndr->flags = _flags_save_string;
12077 uint32_t _flags_save_string = ndr->flags;
12078 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12079 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
12080 if (_ptr_driver_path) {
12081 NDR_PULL_ALLOC(ndr, r->driver_path);
12082 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
12083 } else {
12084 r->driver_path = NULL;
12086 ndr->flags = _flags_save_string;
12089 uint32_t _flags_save_string = ndr->flags;
12090 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12091 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
12092 if (_ptr_data_file) {
12093 NDR_PULL_ALLOC(ndr, r->data_file);
12094 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
12095 } else {
12096 r->data_file = NULL;
12098 ndr->flags = _flags_save_string;
12101 uint32_t _flags_save_string = ndr->flags;
12102 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12103 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
12104 if (_ptr_config_file) {
12105 NDR_PULL_ALLOC(ndr, r->config_file);
12106 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
12107 } else {
12108 r->config_file = NULL;
12110 ndr->flags = _flags_save_string;
12113 uint32_t _flags_save_string = ndr->flags;
12114 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12115 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
12116 if (_ptr_help_file) {
12117 NDR_PULL_ALLOC(ndr, r->help_file);
12118 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
12119 } else {
12120 r->help_file = NULL;
12122 ndr->flags = _flags_save_string;
12125 uint32_t _flags_save_string_array = ndr->flags;
12126 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12127 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
12128 if (_ptr_dependent_files) {
12129 NDR_PULL_ALLOC(ndr, r->dependent_files);
12130 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
12131 } else {
12132 r->dependent_files = NULL;
12134 ndr->flags = _flags_save_string_array;
12137 uint32_t _flags_save_string = ndr->flags;
12138 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12139 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12140 if (_ptr_monitor_name) {
12141 NDR_PULL_ALLOC(ndr, r->monitor_name);
12142 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12143 } else {
12144 r->monitor_name = NULL;
12146 ndr->flags = _flags_save_string;
12149 uint32_t _flags_save_string = ndr->flags;
12150 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12151 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
12152 if (_ptr_default_datatype) {
12153 NDR_PULL_ALLOC(ndr, r->default_datatype);
12154 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
12155 } else {
12156 r->default_datatype = NULL;
12158 ndr->flags = _flags_save_string;
12161 uint32_t _flags_save_string_array = ndr->flags;
12162 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12163 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
12164 if (_ptr_previous_names) {
12165 NDR_PULL_ALLOC(ndr, r->previous_names);
12166 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
12167 } else {
12168 r->previous_names = NULL;
12170 ndr->flags = _flags_save_string_array;
12172 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
12174 if (ndr_flags & NDR_BUFFERS) {
12176 uint32_t _flags_save_string = ndr->flags;
12177 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12178 if (r->driver_name) {
12179 uint32_t _relative_save_offset;
12180 _relative_save_offset = ndr->offset;
12181 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12182 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12183 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12184 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12185 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12186 if (ndr->offset > ndr->relative_highest_offset) {
12187 ndr->relative_highest_offset = ndr->offset;
12189 ndr->offset = _relative_save_offset;
12191 ndr->flags = _flags_save_string;
12194 uint32_t _flags_save_string = ndr->flags;
12195 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12196 if (r->architecture) {
12197 uint32_t _relative_save_offset;
12198 _relative_save_offset = ndr->offset;
12199 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12200 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12201 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12202 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12203 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12204 if (ndr->offset > ndr->relative_highest_offset) {
12205 ndr->relative_highest_offset = ndr->offset;
12207 ndr->offset = _relative_save_offset;
12209 ndr->flags = _flags_save_string;
12212 uint32_t _flags_save_string = ndr->flags;
12213 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12214 if (r->driver_path) {
12215 uint32_t _relative_save_offset;
12216 _relative_save_offset = ndr->offset;
12217 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12218 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12219 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12220 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12221 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
12222 if (ndr->offset > ndr->relative_highest_offset) {
12223 ndr->relative_highest_offset = ndr->offset;
12225 ndr->offset = _relative_save_offset;
12227 ndr->flags = _flags_save_string;
12230 uint32_t _flags_save_string = ndr->flags;
12231 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12232 if (r->data_file) {
12233 uint32_t _relative_save_offset;
12234 _relative_save_offset = ndr->offset;
12235 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12236 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12237 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12238 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12239 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12240 if (ndr->offset > ndr->relative_highest_offset) {
12241 ndr->relative_highest_offset = ndr->offset;
12243 ndr->offset = _relative_save_offset;
12245 ndr->flags = _flags_save_string;
12248 uint32_t _flags_save_string = ndr->flags;
12249 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12250 if (r->config_file) {
12251 uint32_t _relative_save_offset;
12252 _relative_save_offset = ndr->offset;
12253 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12254 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12255 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12256 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12257 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12258 if (ndr->offset > ndr->relative_highest_offset) {
12259 ndr->relative_highest_offset = ndr->offset;
12261 ndr->offset = _relative_save_offset;
12263 ndr->flags = _flags_save_string;
12266 uint32_t _flags_save_string = ndr->flags;
12267 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12268 if (r->help_file) {
12269 uint32_t _relative_save_offset;
12270 _relative_save_offset = ndr->offset;
12271 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
12272 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12273 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
12274 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
12275 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
12276 if (ndr->offset > ndr->relative_highest_offset) {
12277 ndr->relative_highest_offset = ndr->offset;
12279 ndr->offset = _relative_save_offset;
12281 ndr->flags = _flags_save_string;
12284 uint32_t _flags_save_string_array = ndr->flags;
12285 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12286 if (r->dependent_files) {
12287 uint32_t _relative_save_offset;
12288 _relative_save_offset = ndr->offset;
12289 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
12290 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
12291 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
12292 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
12293 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
12294 if (ndr->offset > ndr->relative_highest_offset) {
12295 ndr->relative_highest_offset = ndr->offset;
12297 ndr->offset = _relative_save_offset;
12299 ndr->flags = _flags_save_string_array;
12302 uint32_t _flags_save_string = ndr->flags;
12303 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12304 if (r->monitor_name) {
12305 uint32_t _relative_save_offset;
12306 _relative_save_offset = ndr->offset;
12307 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12308 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12309 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12310 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12311 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12312 if (ndr->offset > ndr->relative_highest_offset) {
12313 ndr->relative_highest_offset = ndr->offset;
12315 ndr->offset = _relative_save_offset;
12317 ndr->flags = _flags_save_string;
12320 uint32_t _flags_save_string = ndr->flags;
12321 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12322 if (r->default_datatype) {
12323 uint32_t _relative_save_offset;
12324 _relative_save_offset = ndr->offset;
12325 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
12326 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
12327 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
12328 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
12329 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
12330 if (ndr->offset > ndr->relative_highest_offset) {
12331 ndr->relative_highest_offset = ndr->offset;
12333 ndr->offset = _relative_save_offset;
12335 ndr->flags = _flags_save_string;
12338 uint32_t _flags_save_string_array = ndr->flags;
12339 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12340 if (r->previous_names) {
12341 uint32_t _relative_save_offset;
12342 _relative_save_offset = ndr->offset;
12343 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
12344 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
12345 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
12346 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
12347 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
12348 if (ndr->offset > ndr->relative_highest_offset) {
12349 ndr->relative_highest_offset = ndr->offset;
12351 ndr->offset = _relative_save_offset;
12353 ndr->flags = _flags_save_string_array;
12356 return NDR_ERR_SUCCESS;
12359 _PUBLIC_ void ndr_print_spoolss_DriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo4 *r)
12361 ndr_print_struct(ndr, name, "spoolss_DriverInfo4");
12362 ndr->depth++;
12363 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
12364 ndr_print_ptr(ndr, "driver_name", r->driver_name);
12365 ndr->depth++;
12366 if (r->driver_name) {
12367 ndr_print_string(ndr, "driver_name", r->driver_name);
12369 ndr->depth--;
12370 ndr_print_ptr(ndr, "architecture", r->architecture);
12371 ndr->depth++;
12372 if (r->architecture) {
12373 ndr_print_string(ndr, "architecture", r->architecture);
12375 ndr->depth--;
12376 ndr_print_ptr(ndr, "driver_path", r->driver_path);
12377 ndr->depth++;
12378 if (r->driver_path) {
12379 ndr_print_string(ndr, "driver_path", r->driver_path);
12381 ndr->depth--;
12382 ndr_print_ptr(ndr, "data_file", r->data_file);
12383 ndr->depth++;
12384 if (r->data_file) {
12385 ndr_print_string(ndr, "data_file", r->data_file);
12387 ndr->depth--;
12388 ndr_print_ptr(ndr, "config_file", r->config_file);
12389 ndr->depth++;
12390 if (r->config_file) {
12391 ndr_print_string(ndr, "config_file", r->config_file);
12393 ndr->depth--;
12394 ndr_print_ptr(ndr, "help_file", r->help_file);
12395 ndr->depth++;
12396 if (r->help_file) {
12397 ndr_print_string(ndr, "help_file", r->help_file);
12399 ndr->depth--;
12400 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
12401 ndr->depth++;
12402 if (r->dependent_files) {
12403 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
12405 ndr->depth--;
12406 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12407 ndr->depth++;
12408 if (r->monitor_name) {
12409 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12411 ndr->depth--;
12412 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
12413 ndr->depth++;
12414 if (r->default_datatype) {
12415 ndr_print_string(ndr, "default_datatype", r->default_datatype);
12417 ndr->depth--;
12418 ndr_print_ptr(ndr, "previous_names", r->previous_names);
12419 ndr->depth++;
12420 if (r->previous_names) {
12421 ndr_print_string_array(ndr, "previous_names", r->previous_names);
12423 ndr->depth--;
12424 ndr->depth--;
12427 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4 *r, struct smb_iconv_convenience *ic, int flags)
12429 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo4, ic);
12432 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo5 *r)
12434 if (ndr_flags & NDR_SCALARS) {
12435 NDR_CHECK(ndr_push_align(ndr, 5));
12436 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12438 uint32_t _flags_save_string = ndr->flags;
12439 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12440 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12441 ndr->flags = _flags_save_string;
12444 uint32_t _flags_save_string = ndr->flags;
12445 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12446 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12447 ndr->flags = _flags_save_string;
12450 uint32_t _flags_save_string = ndr->flags;
12451 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12452 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
12453 ndr->flags = _flags_save_string;
12456 uint32_t _flags_save_string = ndr->flags;
12457 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12458 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
12459 ndr->flags = _flags_save_string;
12462 uint32_t _flags_save_string = ndr->flags;
12463 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12464 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12465 ndr->flags = _flags_save_string;
12467 NDR_CHECK(ndr_push_spoolss_DriverAttributes(ndr, NDR_SCALARS, r->driver_attributes));
12468 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->config_version));
12469 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_version));
12470 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
12472 if (ndr_flags & NDR_BUFFERS) {
12474 uint32_t _flags_save_string = ndr->flags;
12475 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12476 if (r->driver_name) {
12477 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
12478 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12479 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
12481 ndr->flags = _flags_save_string;
12484 uint32_t _flags_save_string = ndr->flags;
12485 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12486 if (r->architecture) {
12487 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
12488 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
12489 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
12491 ndr->flags = _flags_save_string;
12494 uint32_t _flags_save_string = ndr->flags;
12495 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12496 if (r->driver_path) {
12497 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
12498 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
12499 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
12501 ndr->flags = _flags_save_string;
12504 uint32_t _flags_save_string = ndr->flags;
12505 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12506 if (r->data_file) {
12507 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
12508 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
12509 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
12511 ndr->flags = _flags_save_string;
12514 uint32_t _flags_save_string = ndr->flags;
12515 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12516 if (r->config_file) {
12517 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
12518 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
12519 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
12521 ndr->flags = _flags_save_string;
12524 return NDR_ERR_SUCCESS;
12527 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo5 *r)
12529 uint32_t _ptr_driver_name;
12530 TALLOC_CTX *_mem_save_driver_name_0;
12531 uint32_t _ptr_architecture;
12532 TALLOC_CTX *_mem_save_architecture_0;
12533 uint32_t _ptr_driver_path;
12534 TALLOC_CTX *_mem_save_driver_path_0;
12535 uint32_t _ptr_data_file;
12536 TALLOC_CTX *_mem_save_data_file_0;
12537 uint32_t _ptr_config_file;
12538 TALLOC_CTX *_mem_save_config_file_0;
12539 if (ndr_flags & NDR_SCALARS) {
12540 NDR_CHECK(ndr_pull_align(ndr, 5));
12541 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12543 uint32_t _flags_save_string = ndr->flags;
12544 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12545 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12546 if (_ptr_driver_name) {
12547 NDR_PULL_ALLOC(ndr, r->driver_name);
12548 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12549 } else {
12550 r->driver_name = NULL;
12552 ndr->flags = _flags_save_string;
12555 uint32_t _flags_save_string = ndr->flags;
12556 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12557 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
12558 if (_ptr_architecture) {
12559 NDR_PULL_ALLOC(ndr, r->architecture);
12560 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12561 } else {
12562 r->architecture = NULL;
12564 ndr->flags = _flags_save_string;
12567 uint32_t _flags_save_string = ndr->flags;
12568 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12569 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
12570 if (_ptr_driver_path) {
12571 NDR_PULL_ALLOC(ndr, r->driver_path);
12572 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
12573 } else {
12574 r->driver_path = NULL;
12576 ndr->flags = _flags_save_string;
12579 uint32_t _flags_save_string = ndr->flags;
12580 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12581 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
12582 if (_ptr_data_file) {
12583 NDR_PULL_ALLOC(ndr, r->data_file);
12584 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
12585 } else {
12586 r->data_file = NULL;
12588 ndr->flags = _flags_save_string;
12591 uint32_t _flags_save_string = ndr->flags;
12592 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12593 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
12594 if (_ptr_config_file) {
12595 NDR_PULL_ALLOC(ndr, r->config_file);
12596 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
12597 } else {
12598 r->config_file = NULL;
12600 ndr->flags = _flags_save_string;
12602 NDR_CHECK(ndr_pull_spoolss_DriverAttributes(ndr, NDR_SCALARS, &r->driver_attributes));
12603 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->config_version));
12604 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_version));
12605 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
12607 if (ndr_flags & NDR_BUFFERS) {
12609 uint32_t _flags_save_string = ndr->flags;
12610 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12611 if (r->driver_name) {
12612 uint32_t _relative_save_offset;
12613 _relative_save_offset = ndr->offset;
12614 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12615 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12616 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12617 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12618 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12619 if (ndr->offset > ndr->relative_highest_offset) {
12620 ndr->relative_highest_offset = ndr->offset;
12622 ndr->offset = _relative_save_offset;
12624 ndr->flags = _flags_save_string;
12627 uint32_t _flags_save_string = ndr->flags;
12628 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12629 if (r->architecture) {
12630 uint32_t _relative_save_offset;
12631 _relative_save_offset = ndr->offset;
12632 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12633 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12634 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12635 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12636 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12637 if (ndr->offset > ndr->relative_highest_offset) {
12638 ndr->relative_highest_offset = ndr->offset;
12640 ndr->offset = _relative_save_offset;
12642 ndr->flags = _flags_save_string;
12645 uint32_t _flags_save_string = ndr->flags;
12646 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12647 if (r->driver_path) {
12648 uint32_t _relative_save_offset;
12649 _relative_save_offset = ndr->offset;
12650 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12651 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12652 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12653 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12654 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
12655 if (ndr->offset > ndr->relative_highest_offset) {
12656 ndr->relative_highest_offset = ndr->offset;
12658 ndr->offset = _relative_save_offset;
12660 ndr->flags = _flags_save_string;
12663 uint32_t _flags_save_string = ndr->flags;
12664 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12665 if (r->data_file) {
12666 uint32_t _relative_save_offset;
12667 _relative_save_offset = ndr->offset;
12668 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12669 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12670 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12671 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12672 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12673 if (ndr->offset > ndr->relative_highest_offset) {
12674 ndr->relative_highest_offset = ndr->offset;
12676 ndr->offset = _relative_save_offset;
12678 ndr->flags = _flags_save_string;
12681 uint32_t _flags_save_string = ndr->flags;
12682 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12683 if (r->config_file) {
12684 uint32_t _relative_save_offset;
12685 _relative_save_offset = ndr->offset;
12686 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12687 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12688 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12689 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12690 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12691 if (ndr->offset > ndr->relative_highest_offset) {
12692 ndr->relative_highest_offset = ndr->offset;
12694 ndr->offset = _relative_save_offset;
12696 ndr->flags = _flags_save_string;
12699 return NDR_ERR_SUCCESS;
12702 _PUBLIC_ void ndr_print_spoolss_DriverInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo5 *r)
12704 ndr_print_struct(ndr, name, "spoolss_DriverInfo5");
12705 ndr->depth++;
12706 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
12707 ndr_print_ptr(ndr, "driver_name", r->driver_name);
12708 ndr->depth++;
12709 if (r->driver_name) {
12710 ndr_print_string(ndr, "driver_name", r->driver_name);
12712 ndr->depth--;
12713 ndr_print_ptr(ndr, "architecture", r->architecture);
12714 ndr->depth++;
12715 if (r->architecture) {
12716 ndr_print_string(ndr, "architecture", r->architecture);
12718 ndr->depth--;
12719 ndr_print_ptr(ndr, "driver_path", r->driver_path);
12720 ndr->depth++;
12721 if (r->driver_path) {
12722 ndr_print_string(ndr, "driver_path", r->driver_path);
12724 ndr->depth--;
12725 ndr_print_ptr(ndr, "data_file", r->data_file);
12726 ndr->depth++;
12727 if (r->data_file) {
12728 ndr_print_string(ndr, "data_file", r->data_file);
12730 ndr->depth--;
12731 ndr_print_ptr(ndr, "config_file", r->config_file);
12732 ndr->depth++;
12733 if (r->config_file) {
12734 ndr_print_string(ndr, "config_file", r->config_file);
12736 ndr->depth--;
12737 ndr_print_spoolss_DriverAttributes(ndr, "driver_attributes", r->driver_attributes);
12738 ndr_print_uint32(ndr, "config_version", r->config_version);
12739 ndr_print_uint32(ndr, "driver_version", r->driver_version);
12740 ndr->depth--;
12743 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5 *r, struct smb_iconv_convenience *ic, int flags)
12745 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo5, ic);
12748 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo6 *r)
12750 if (ndr_flags & NDR_SCALARS) {
12751 NDR_CHECK(ndr_push_align(ndr, 8));
12752 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12754 uint32_t _flags_save_string = ndr->flags;
12755 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12756 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12757 ndr->flags = _flags_save_string;
12760 uint32_t _flags_save_string = ndr->flags;
12761 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12762 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12763 ndr->flags = _flags_save_string;
12766 uint32_t _flags_save_string = ndr->flags;
12767 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12768 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
12769 ndr->flags = _flags_save_string;
12772 uint32_t _flags_save_string = ndr->flags;
12773 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12774 NDR_CHECK(ndr_push_relative_ptr1(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 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12781 ndr->flags = _flags_save_string;
12784 uint32_t _flags_save_string = ndr->flags;
12785 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12786 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
12787 ndr->flags = _flags_save_string;
12790 uint32_t _flags_save_string_array = ndr->flags;
12791 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12792 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
12793 ndr->flags = _flags_save_string_array;
12796 uint32_t _flags_save_string = ndr->flags;
12797 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12798 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12799 ndr->flags = _flags_save_string;
12802 uint32_t _flags_save_string = ndr->flags;
12803 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12804 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
12805 ndr->flags = _flags_save_string;
12808 uint32_t _flags_save_string_array = ndr->flags;
12809 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12810 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
12811 ndr->flags = _flags_save_string_array;
12813 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
12814 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
12816 uint32_t _flags_save_string = ndr->flags;
12817 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12818 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
12819 ndr->flags = _flags_save_string;
12822 uint32_t _flags_save_string = ndr->flags;
12823 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12824 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
12825 ndr->flags = _flags_save_string;
12828 uint32_t _flags_save_string = ndr->flags;
12829 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12830 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
12831 ndr->flags = _flags_save_string;
12834 uint32_t _flags_save_string = ndr->flags;
12835 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12836 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
12837 ndr->flags = _flags_save_string;
12839 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
12841 if (ndr_flags & NDR_BUFFERS) {
12843 uint32_t _flags_save_string = ndr->flags;
12844 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12845 if (r->driver_name) {
12846 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
12847 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12848 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
12850 ndr->flags = _flags_save_string;
12853 uint32_t _flags_save_string = ndr->flags;
12854 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12855 if (r->architecture) {
12856 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
12857 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
12858 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
12860 ndr->flags = _flags_save_string;
12863 uint32_t _flags_save_string = ndr->flags;
12864 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12865 if (r->driver_path) {
12866 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
12867 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
12868 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
12870 ndr->flags = _flags_save_string;
12873 uint32_t _flags_save_string = ndr->flags;
12874 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12875 if (r->data_file) {
12876 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
12877 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
12878 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
12880 ndr->flags = _flags_save_string;
12883 uint32_t _flags_save_string = ndr->flags;
12884 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12885 if (r->config_file) {
12886 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
12887 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
12888 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
12890 ndr->flags = _flags_save_string;
12893 uint32_t _flags_save_string = ndr->flags;
12894 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12895 if (r->help_file) {
12896 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
12897 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
12898 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
12900 ndr->flags = _flags_save_string;
12903 uint32_t _flags_save_string_array = ndr->flags;
12904 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12905 if (r->dependent_files) {
12906 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
12907 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
12908 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
12910 ndr->flags = _flags_save_string_array;
12913 uint32_t _flags_save_string = ndr->flags;
12914 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12915 if (r->monitor_name) {
12916 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
12917 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12918 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
12920 ndr->flags = _flags_save_string;
12923 uint32_t _flags_save_string = ndr->flags;
12924 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12925 if (r->default_datatype) {
12926 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
12927 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
12928 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
12930 ndr->flags = _flags_save_string;
12933 uint32_t _flags_save_string_array = ndr->flags;
12934 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12935 if (r->previous_names) {
12936 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->previous_names));
12937 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
12938 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->previous_names));
12940 ndr->flags = _flags_save_string_array;
12943 uint32_t _flags_save_string = ndr->flags;
12944 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12945 if (r->manufacturer_name) {
12946 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_name));
12947 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
12948 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_name));
12950 ndr->flags = _flags_save_string;
12953 uint32_t _flags_save_string = ndr->flags;
12954 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12955 if (r->manufacturer_url) {
12956 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_url));
12957 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
12958 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_url));
12960 ndr->flags = _flags_save_string;
12963 uint32_t _flags_save_string = ndr->flags;
12964 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12965 if (r->hardware_id) {
12966 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->hardware_id));
12967 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
12968 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->hardware_id));
12970 ndr->flags = _flags_save_string;
12973 uint32_t _flags_save_string = ndr->flags;
12974 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12975 if (r->provider) {
12976 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->provider));
12977 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
12978 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->provider));
12980 ndr->flags = _flags_save_string;
12983 return NDR_ERR_SUCCESS;
12986 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo6 *r)
12988 uint32_t _ptr_driver_name;
12989 TALLOC_CTX *_mem_save_driver_name_0;
12990 uint32_t _ptr_architecture;
12991 TALLOC_CTX *_mem_save_architecture_0;
12992 uint32_t _ptr_driver_path;
12993 TALLOC_CTX *_mem_save_driver_path_0;
12994 uint32_t _ptr_data_file;
12995 TALLOC_CTX *_mem_save_data_file_0;
12996 uint32_t _ptr_config_file;
12997 TALLOC_CTX *_mem_save_config_file_0;
12998 uint32_t _ptr_help_file;
12999 TALLOC_CTX *_mem_save_help_file_0;
13000 uint32_t _ptr_dependent_files;
13001 TALLOC_CTX *_mem_save_dependent_files_0;
13002 uint32_t _ptr_monitor_name;
13003 TALLOC_CTX *_mem_save_monitor_name_0;
13004 uint32_t _ptr_default_datatype;
13005 TALLOC_CTX *_mem_save_default_datatype_0;
13006 uint32_t _ptr_previous_names;
13007 TALLOC_CTX *_mem_save_previous_names_0;
13008 uint32_t _ptr_manufacturer_name;
13009 TALLOC_CTX *_mem_save_manufacturer_name_0;
13010 uint32_t _ptr_manufacturer_url;
13011 TALLOC_CTX *_mem_save_manufacturer_url_0;
13012 uint32_t _ptr_hardware_id;
13013 TALLOC_CTX *_mem_save_hardware_id_0;
13014 uint32_t _ptr_provider;
13015 TALLOC_CTX *_mem_save_provider_0;
13016 if (ndr_flags & NDR_SCALARS) {
13017 NDR_CHECK(ndr_pull_align(ndr, 8));
13018 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
13020 uint32_t _flags_save_string = ndr->flags;
13021 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13022 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
13023 if (_ptr_driver_name) {
13024 NDR_PULL_ALLOC(ndr, r->driver_name);
13025 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
13026 } else {
13027 r->driver_name = NULL;
13029 ndr->flags = _flags_save_string;
13032 uint32_t _flags_save_string = ndr->flags;
13033 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13034 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
13035 if (_ptr_architecture) {
13036 NDR_PULL_ALLOC(ndr, r->architecture);
13037 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
13038 } else {
13039 r->architecture = NULL;
13041 ndr->flags = _flags_save_string;
13044 uint32_t _flags_save_string = ndr->flags;
13045 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13046 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
13047 if (_ptr_driver_path) {
13048 NDR_PULL_ALLOC(ndr, r->driver_path);
13049 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
13050 } else {
13051 r->driver_path = NULL;
13053 ndr->flags = _flags_save_string;
13056 uint32_t _flags_save_string = ndr->flags;
13057 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13058 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
13059 if (_ptr_data_file) {
13060 NDR_PULL_ALLOC(ndr, r->data_file);
13061 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
13062 } else {
13063 r->data_file = NULL;
13065 ndr->flags = _flags_save_string;
13068 uint32_t _flags_save_string = ndr->flags;
13069 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13070 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
13071 if (_ptr_config_file) {
13072 NDR_PULL_ALLOC(ndr, r->config_file);
13073 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
13074 } else {
13075 r->config_file = NULL;
13077 ndr->flags = _flags_save_string;
13080 uint32_t _flags_save_string = ndr->flags;
13081 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13082 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
13083 if (_ptr_help_file) {
13084 NDR_PULL_ALLOC(ndr, r->help_file);
13085 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
13086 } else {
13087 r->help_file = NULL;
13089 ndr->flags = _flags_save_string;
13092 uint32_t _flags_save_string_array = ndr->flags;
13093 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13094 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
13095 if (_ptr_dependent_files) {
13096 NDR_PULL_ALLOC(ndr, r->dependent_files);
13097 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
13098 } else {
13099 r->dependent_files = NULL;
13101 ndr->flags = _flags_save_string_array;
13104 uint32_t _flags_save_string = ndr->flags;
13105 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13106 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
13107 if (_ptr_monitor_name) {
13108 NDR_PULL_ALLOC(ndr, r->monitor_name);
13109 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
13110 } else {
13111 r->monitor_name = NULL;
13113 ndr->flags = _flags_save_string;
13116 uint32_t _flags_save_string = ndr->flags;
13117 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13118 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
13119 if (_ptr_default_datatype) {
13120 NDR_PULL_ALLOC(ndr, r->default_datatype);
13121 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
13122 } else {
13123 r->default_datatype = NULL;
13125 ndr->flags = _flags_save_string;
13128 uint32_t _flags_save_string_array = ndr->flags;
13129 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13130 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
13131 if (_ptr_previous_names) {
13132 NDR_PULL_ALLOC(ndr, r->previous_names);
13133 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
13134 } else {
13135 r->previous_names = NULL;
13137 ndr->flags = _flags_save_string_array;
13139 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
13140 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
13142 uint32_t _flags_save_string = ndr->flags;
13143 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13144 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
13145 if (_ptr_manufacturer_name) {
13146 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
13147 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
13148 } else {
13149 r->manufacturer_name = NULL;
13151 ndr->flags = _flags_save_string;
13154 uint32_t _flags_save_string = ndr->flags;
13155 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13156 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
13157 if (_ptr_manufacturer_url) {
13158 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
13159 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
13160 } else {
13161 r->manufacturer_url = NULL;
13163 ndr->flags = _flags_save_string;
13166 uint32_t _flags_save_string = ndr->flags;
13167 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13168 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
13169 if (_ptr_hardware_id) {
13170 NDR_PULL_ALLOC(ndr, r->hardware_id);
13171 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
13172 } else {
13173 r->hardware_id = NULL;
13175 ndr->flags = _flags_save_string;
13178 uint32_t _flags_save_string = ndr->flags;
13179 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13180 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
13181 if (_ptr_provider) {
13182 NDR_PULL_ALLOC(ndr, r->provider);
13183 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
13184 } else {
13185 r->provider = NULL;
13187 ndr->flags = _flags_save_string;
13189 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
13191 if (ndr_flags & NDR_BUFFERS) {
13193 uint32_t _flags_save_string = ndr->flags;
13194 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13195 if (r->driver_name) {
13196 uint32_t _relative_save_offset;
13197 _relative_save_offset = ndr->offset;
13198 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
13199 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13200 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
13201 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
13202 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
13203 if (ndr->offset > ndr->relative_highest_offset) {
13204 ndr->relative_highest_offset = ndr->offset;
13206 ndr->offset = _relative_save_offset;
13208 ndr->flags = _flags_save_string;
13211 uint32_t _flags_save_string = ndr->flags;
13212 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13213 if (r->architecture) {
13214 uint32_t _relative_save_offset;
13215 _relative_save_offset = ndr->offset;
13216 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
13217 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
13218 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
13219 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
13220 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
13221 if (ndr->offset > ndr->relative_highest_offset) {
13222 ndr->relative_highest_offset = ndr->offset;
13224 ndr->offset = _relative_save_offset;
13226 ndr->flags = _flags_save_string;
13229 uint32_t _flags_save_string = ndr->flags;
13230 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13231 if (r->driver_path) {
13232 uint32_t _relative_save_offset;
13233 _relative_save_offset = ndr->offset;
13234 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
13235 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
13236 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
13237 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
13238 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
13239 if (ndr->offset > ndr->relative_highest_offset) {
13240 ndr->relative_highest_offset = ndr->offset;
13242 ndr->offset = _relative_save_offset;
13244 ndr->flags = _flags_save_string;
13247 uint32_t _flags_save_string = ndr->flags;
13248 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13249 if (r->data_file) {
13250 uint32_t _relative_save_offset;
13251 _relative_save_offset = ndr->offset;
13252 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
13253 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13254 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
13255 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
13256 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
13257 if (ndr->offset > ndr->relative_highest_offset) {
13258 ndr->relative_highest_offset = ndr->offset;
13260 ndr->offset = _relative_save_offset;
13262 ndr->flags = _flags_save_string;
13265 uint32_t _flags_save_string = ndr->flags;
13266 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13267 if (r->config_file) {
13268 uint32_t _relative_save_offset;
13269 _relative_save_offset = ndr->offset;
13270 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
13271 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13272 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
13273 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
13274 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
13275 if (ndr->offset > ndr->relative_highest_offset) {
13276 ndr->relative_highest_offset = ndr->offset;
13278 ndr->offset = _relative_save_offset;
13280 ndr->flags = _flags_save_string;
13283 uint32_t _flags_save_string = ndr->flags;
13284 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13285 if (r->help_file) {
13286 uint32_t _relative_save_offset;
13287 _relative_save_offset = ndr->offset;
13288 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
13289 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13290 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
13291 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
13292 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
13293 if (ndr->offset > ndr->relative_highest_offset) {
13294 ndr->relative_highest_offset = ndr->offset;
13296 ndr->offset = _relative_save_offset;
13298 ndr->flags = _flags_save_string;
13301 uint32_t _flags_save_string_array = ndr->flags;
13302 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13303 if (r->dependent_files) {
13304 uint32_t _relative_save_offset;
13305 _relative_save_offset = ndr->offset;
13306 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
13307 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
13308 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
13309 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
13310 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
13311 if (ndr->offset > ndr->relative_highest_offset) {
13312 ndr->relative_highest_offset = ndr->offset;
13314 ndr->offset = _relative_save_offset;
13316 ndr->flags = _flags_save_string_array;
13319 uint32_t _flags_save_string = ndr->flags;
13320 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13321 if (r->monitor_name) {
13322 uint32_t _relative_save_offset;
13323 _relative_save_offset = ndr->offset;
13324 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
13325 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13326 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
13327 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
13328 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
13329 if (ndr->offset > ndr->relative_highest_offset) {
13330 ndr->relative_highest_offset = ndr->offset;
13332 ndr->offset = _relative_save_offset;
13334 ndr->flags = _flags_save_string;
13337 uint32_t _flags_save_string = ndr->flags;
13338 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13339 if (r->default_datatype) {
13340 uint32_t _relative_save_offset;
13341 _relative_save_offset = ndr->offset;
13342 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
13343 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
13344 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
13345 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
13346 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
13347 if (ndr->offset > ndr->relative_highest_offset) {
13348 ndr->relative_highest_offset = ndr->offset;
13350 ndr->offset = _relative_save_offset;
13352 ndr->flags = _flags_save_string;
13355 uint32_t _flags_save_string_array = ndr->flags;
13356 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13357 if (r->previous_names) {
13358 uint32_t _relative_save_offset;
13359 _relative_save_offset = ndr->offset;
13360 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
13361 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
13362 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
13363 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
13364 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
13365 if (ndr->offset > ndr->relative_highest_offset) {
13366 ndr->relative_highest_offset = ndr->offset;
13368 ndr->offset = _relative_save_offset;
13370 ndr->flags = _flags_save_string_array;
13373 uint32_t _flags_save_string = ndr->flags;
13374 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13375 if (r->manufacturer_name) {
13376 uint32_t _relative_save_offset;
13377 _relative_save_offset = ndr->offset;
13378 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
13379 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13380 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
13381 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
13382 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
13383 if (ndr->offset > ndr->relative_highest_offset) {
13384 ndr->relative_highest_offset = ndr->offset;
13386 ndr->offset = _relative_save_offset;
13388 ndr->flags = _flags_save_string;
13391 uint32_t _flags_save_string = ndr->flags;
13392 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13393 if (r->manufacturer_url) {
13394 uint32_t _relative_save_offset;
13395 _relative_save_offset = ndr->offset;
13396 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
13397 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
13398 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
13399 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
13400 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
13401 if (ndr->offset > ndr->relative_highest_offset) {
13402 ndr->relative_highest_offset = ndr->offset;
13404 ndr->offset = _relative_save_offset;
13406 ndr->flags = _flags_save_string;
13409 uint32_t _flags_save_string = ndr->flags;
13410 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13411 if (r->hardware_id) {
13412 uint32_t _relative_save_offset;
13413 _relative_save_offset = ndr->offset;
13414 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
13415 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
13416 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
13417 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
13418 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
13419 if (ndr->offset > ndr->relative_highest_offset) {
13420 ndr->relative_highest_offset = ndr->offset;
13422 ndr->offset = _relative_save_offset;
13424 ndr->flags = _flags_save_string;
13427 uint32_t _flags_save_string = ndr->flags;
13428 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13429 if (r->provider) {
13430 uint32_t _relative_save_offset;
13431 _relative_save_offset = ndr->offset;
13432 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
13433 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
13434 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
13435 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
13436 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
13437 if (ndr->offset > ndr->relative_highest_offset) {
13438 ndr->relative_highest_offset = ndr->offset;
13440 ndr->offset = _relative_save_offset;
13442 ndr->flags = _flags_save_string;
13445 return NDR_ERR_SUCCESS;
13448 _PUBLIC_ void ndr_print_spoolss_DriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo6 *r)
13450 ndr_print_struct(ndr, name, "spoolss_DriverInfo6");
13451 ndr->depth++;
13452 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13453 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13454 ndr->depth++;
13455 if (r->driver_name) {
13456 ndr_print_string(ndr, "driver_name", r->driver_name);
13458 ndr->depth--;
13459 ndr_print_ptr(ndr, "architecture", r->architecture);
13460 ndr->depth++;
13461 if (r->architecture) {
13462 ndr_print_string(ndr, "architecture", r->architecture);
13464 ndr->depth--;
13465 ndr_print_ptr(ndr, "driver_path", r->driver_path);
13466 ndr->depth++;
13467 if (r->driver_path) {
13468 ndr_print_string(ndr, "driver_path", r->driver_path);
13470 ndr->depth--;
13471 ndr_print_ptr(ndr, "data_file", r->data_file);
13472 ndr->depth++;
13473 if (r->data_file) {
13474 ndr_print_string(ndr, "data_file", r->data_file);
13476 ndr->depth--;
13477 ndr_print_ptr(ndr, "config_file", r->config_file);
13478 ndr->depth++;
13479 if (r->config_file) {
13480 ndr_print_string(ndr, "config_file", r->config_file);
13482 ndr->depth--;
13483 ndr_print_ptr(ndr, "help_file", r->help_file);
13484 ndr->depth++;
13485 if (r->help_file) {
13486 ndr_print_string(ndr, "help_file", r->help_file);
13488 ndr->depth--;
13489 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
13490 ndr->depth++;
13491 if (r->dependent_files) {
13492 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
13494 ndr->depth--;
13495 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13496 ndr->depth++;
13497 if (r->monitor_name) {
13498 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13500 ndr->depth--;
13501 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
13502 ndr->depth++;
13503 if (r->default_datatype) {
13504 ndr_print_string(ndr, "default_datatype", r->default_datatype);
13506 ndr->depth--;
13507 ndr_print_ptr(ndr, "previous_names", r->previous_names);
13508 ndr->depth++;
13509 if (r->previous_names) {
13510 ndr_print_string_array(ndr, "previous_names", r->previous_names);
13512 ndr->depth--;
13513 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
13514 ndr_print_hyper(ndr, "driver_version", r->driver_version);
13515 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
13516 ndr->depth++;
13517 if (r->manufacturer_name) {
13518 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
13520 ndr->depth--;
13521 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
13522 ndr->depth++;
13523 if (r->manufacturer_url) {
13524 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
13526 ndr->depth--;
13527 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
13528 ndr->depth++;
13529 if (r->hardware_id) {
13530 ndr_print_string(ndr, "hardware_id", r->hardware_id);
13532 ndr->depth--;
13533 ndr_print_ptr(ndr, "provider", r->provider);
13534 ndr->depth++;
13535 if (r->provider) {
13536 ndr_print_string(ndr, "provider", r->provider);
13538 ndr->depth--;
13539 ndr->depth--;
13542 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6 *r, struct smb_iconv_convenience *ic, int flags)
13544 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo6, ic);
13547 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo7 *r)
13549 if (ndr_flags & NDR_SCALARS) {
13550 NDR_CHECK(ndr_push_align(ndr, 5));
13551 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
13552 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
13554 uint32_t _flags_save_string = ndr->flags;
13555 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13556 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
13557 ndr->flags = _flags_save_string;
13560 uint32_t _flags_save_string = ndr->flags;
13561 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13562 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_name));
13563 ndr->flags = _flags_save_string;
13566 uint32_t _flags_save_string = ndr->flags;
13567 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13568 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->install_source_root));
13569 ndr->flags = _flags_save_string;
13571 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
13573 if (ndr_flags & NDR_BUFFERS) {
13575 uint32_t _flags_save_string = ndr->flags;
13576 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13577 if (r->driver_name) {
13578 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
13579 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
13580 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
13582 ndr->flags = _flags_save_string;
13585 uint32_t _flags_save_string = ndr->flags;
13586 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13587 if (r->inf_name) {
13588 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->inf_name));
13589 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_name));
13590 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->inf_name));
13592 ndr->flags = _flags_save_string;
13595 uint32_t _flags_save_string = ndr->flags;
13596 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13597 if (r->install_source_root) {
13598 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->install_source_root));
13599 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->install_source_root));
13600 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->install_source_root));
13602 ndr->flags = _flags_save_string;
13605 return NDR_ERR_SUCCESS;
13608 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo7 *r)
13610 uint32_t _ptr_driver_name;
13611 TALLOC_CTX *_mem_save_driver_name_0;
13612 uint32_t _ptr_inf_name;
13613 TALLOC_CTX *_mem_save_inf_name_0;
13614 uint32_t _ptr_install_source_root;
13615 TALLOC_CTX *_mem_save_install_source_root_0;
13616 if (ndr_flags & NDR_SCALARS) {
13617 NDR_CHECK(ndr_pull_align(ndr, 5));
13618 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
13619 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
13621 uint32_t _flags_save_string = ndr->flags;
13622 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13623 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
13624 if (_ptr_driver_name) {
13625 NDR_PULL_ALLOC(ndr, r->driver_name);
13626 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
13627 } else {
13628 r->driver_name = NULL;
13630 ndr->flags = _flags_save_string;
13633 uint32_t _flags_save_string = ndr->flags;
13634 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13635 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_name));
13636 if (_ptr_inf_name) {
13637 NDR_PULL_ALLOC(ndr, r->inf_name);
13638 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_name, _ptr_inf_name));
13639 } else {
13640 r->inf_name = NULL;
13642 ndr->flags = _flags_save_string;
13645 uint32_t _flags_save_string = ndr->flags;
13646 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13647 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_install_source_root));
13648 if (_ptr_install_source_root) {
13649 NDR_PULL_ALLOC(ndr, r->install_source_root);
13650 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->install_source_root, _ptr_install_source_root));
13651 } else {
13652 r->install_source_root = NULL;
13654 ndr->flags = _flags_save_string;
13656 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
13658 if (ndr_flags & NDR_BUFFERS) {
13660 uint32_t _flags_save_string = ndr->flags;
13661 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13662 if (r->driver_name) {
13663 uint32_t _relative_save_offset;
13664 _relative_save_offset = ndr->offset;
13665 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
13666 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13667 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
13668 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
13669 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
13670 if (ndr->offset > ndr->relative_highest_offset) {
13671 ndr->relative_highest_offset = ndr->offset;
13673 ndr->offset = _relative_save_offset;
13675 ndr->flags = _flags_save_string;
13678 uint32_t _flags_save_string = ndr->flags;
13679 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13680 if (r->inf_name) {
13681 uint32_t _relative_save_offset;
13682 _relative_save_offset = ndr->offset;
13683 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_name));
13684 _mem_save_inf_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13685 NDR_PULL_SET_MEM_CTX(ndr, r->inf_name, 0);
13686 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_name));
13687 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_name_0, 0);
13688 if (ndr->offset > ndr->relative_highest_offset) {
13689 ndr->relative_highest_offset = ndr->offset;
13691 ndr->offset = _relative_save_offset;
13693 ndr->flags = _flags_save_string;
13696 uint32_t _flags_save_string = ndr->flags;
13697 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13698 if (r->install_source_root) {
13699 uint32_t _relative_save_offset;
13700 _relative_save_offset = ndr->offset;
13701 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->install_source_root));
13702 _mem_save_install_source_root_0 = NDR_PULL_GET_MEM_CTX(ndr);
13703 NDR_PULL_SET_MEM_CTX(ndr, r->install_source_root, 0);
13704 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->install_source_root));
13705 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_install_source_root_0, 0);
13706 if (ndr->offset > ndr->relative_highest_offset) {
13707 ndr->relative_highest_offset = ndr->offset;
13709 ndr->offset = _relative_save_offset;
13711 ndr->flags = _flags_save_string;
13714 return NDR_ERR_SUCCESS;
13717 _PUBLIC_ void ndr_print_spoolss_DriverInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo7 *r)
13719 ndr_print_struct(ndr, name, "spoolss_DriverInfo7");
13720 ndr->depth++;
13721 ndr_print_uint32(ndr, "size", r->size);
13722 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13723 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13724 ndr->depth++;
13725 if (r->driver_name) {
13726 ndr_print_string(ndr, "driver_name", r->driver_name);
13728 ndr->depth--;
13729 ndr_print_ptr(ndr, "inf_name", r->inf_name);
13730 ndr->depth++;
13731 if (r->inf_name) {
13732 ndr_print_string(ndr, "inf_name", r->inf_name);
13734 ndr->depth--;
13735 ndr_print_ptr(ndr, "install_source_root", r->install_source_root);
13736 ndr->depth++;
13737 if (r->install_source_root) {
13738 ndr_print_string(ndr, "install_source_root", r->install_source_root);
13740 ndr->depth--;
13741 ndr->depth--;
13744 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo7(const struct spoolss_DriverInfo7 *r, struct smb_iconv_convenience *ic, int flags)
13746 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo7, ic);
13749 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo8 *r)
13751 if (ndr_flags & NDR_SCALARS) {
13752 NDR_CHECK(ndr_push_align(ndr, 8));
13753 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
13755 uint32_t _flags_save_string = ndr->flags;
13756 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13757 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
13758 ndr->flags = _flags_save_string;
13761 uint32_t _flags_save_string = ndr->flags;
13762 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13763 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
13764 ndr->flags = _flags_save_string;
13767 uint32_t _flags_save_string = ndr->flags;
13768 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13769 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
13770 ndr->flags = _flags_save_string;
13773 uint32_t _flags_save_string = ndr->flags;
13774 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13775 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
13776 ndr->flags = _flags_save_string;
13779 uint32_t _flags_save_string = ndr->flags;
13780 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13781 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
13782 ndr->flags = _flags_save_string;
13785 uint32_t _flags_save_string = ndr->flags;
13786 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13787 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
13788 ndr->flags = _flags_save_string;
13791 uint32_t _flags_save_string_array = ndr->flags;
13792 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13793 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
13794 ndr->flags = _flags_save_string_array;
13797 uint32_t _flags_save_string = ndr->flags;
13798 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13799 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
13800 ndr->flags = _flags_save_string;
13803 uint32_t _flags_save_string = ndr->flags;
13804 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13805 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
13806 ndr->flags = _flags_save_string;
13809 uint32_t _flags_save_string_array = ndr->flags;
13810 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13811 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
13812 ndr->flags = _flags_save_string_array;
13814 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
13815 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
13817 uint32_t _flags_save_string = ndr->flags;
13818 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13819 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
13820 ndr->flags = _flags_save_string;
13823 uint32_t _flags_save_string = ndr->flags;
13824 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13825 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
13826 ndr->flags = _flags_save_string;
13829 uint32_t _flags_save_string = ndr->flags;
13830 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13831 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
13832 ndr->flags = _flags_save_string;
13835 uint32_t _flags_save_string = ndr->flags;
13836 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13837 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
13838 ndr->flags = _flags_save_string;
13841 uint32_t _flags_save_string = ndr->flags;
13842 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13843 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
13844 ndr->flags = _flags_save_string;
13847 uint32_t _flags_save_string = ndr->flags;
13848 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13849 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->vendor_setup));
13850 ndr->flags = _flags_save_string;
13853 uint32_t _flags_save_string_array = ndr->flags;
13854 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13855 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->color_profiles));
13856 ndr->flags = _flags_save_string_array;
13859 uint32_t _flags_save_string = ndr->flags;
13860 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13861 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_path));
13862 ndr->flags = _flags_save_string;
13864 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
13866 uint32_t _flags_save_string_array = ndr->flags;
13867 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13868 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->core_driver_dependencies));
13869 ndr->flags = _flags_save_string_array;
13871 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
13872 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
13873 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
13875 if (ndr_flags & NDR_BUFFERS) {
13877 uint32_t _flags_save_string = ndr->flags;
13878 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13879 if (r->driver_name) {
13880 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
13881 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
13882 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
13884 ndr->flags = _flags_save_string;
13887 uint32_t _flags_save_string = ndr->flags;
13888 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13889 if (r->architecture) {
13890 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
13891 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
13892 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
13894 ndr->flags = _flags_save_string;
13897 uint32_t _flags_save_string = ndr->flags;
13898 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13899 if (r->driver_path) {
13900 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
13901 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
13902 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
13904 ndr->flags = _flags_save_string;
13907 uint32_t _flags_save_string = ndr->flags;
13908 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13909 if (r->data_file) {
13910 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
13911 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
13912 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
13914 ndr->flags = _flags_save_string;
13917 uint32_t _flags_save_string = ndr->flags;
13918 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13919 if (r->config_file) {
13920 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
13921 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
13922 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
13924 ndr->flags = _flags_save_string;
13927 uint32_t _flags_save_string = ndr->flags;
13928 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13929 if (r->help_file) {
13930 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
13931 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
13932 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
13934 ndr->flags = _flags_save_string;
13937 uint32_t _flags_save_string_array = ndr->flags;
13938 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13939 if (r->dependent_files) {
13940 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
13941 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
13942 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
13944 ndr->flags = _flags_save_string_array;
13947 uint32_t _flags_save_string = ndr->flags;
13948 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13949 if (r->monitor_name) {
13950 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
13951 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
13952 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
13954 ndr->flags = _flags_save_string;
13957 uint32_t _flags_save_string = ndr->flags;
13958 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13959 if (r->default_datatype) {
13960 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
13961 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
13962 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
13964 ndr->flags = _flags_save_string;
13967 uint32_t _flags_save_string_array = ndr->flags;
13968 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13969 if (r->previous_names) {
13970 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->previous_names));
13971 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
13972 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->previous_names));
13974 ndr->flags = _flags_save_string_array;
13977 uint32_t _flags_save_string = ndr->flags;
13978 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13979 if (r->manufacturer_name) {
13980 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_name));
13981 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
13982 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_name));
13984 ndr->flags = _flags_save_string;
13987 uint32_t _flags_save_string = ndr->flags;
13988 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13989 if (r->manufacturer_url) {
13990 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_url));
13991 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
13992 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_url));
13994 ndr->flags = _flags_save_string;
13997 uint32_t _flags_save_string = ndr->flags;
13998 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13999 if (r->hardware_id) {
14000 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->hardware_id));
14001 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
14002 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->hardware_id));
14004 ndr->flags = _flags_save_string;
14007 uint32_t _flags_save_string = ndr->flags;
14008 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14009 if (r->provider) {
14010 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->provider));
14011 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
14012 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->provider));
14014 ndr->flags = _flags_save_string;
14017 uint32_t _flags_save_string = ndr->flags;
14018 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14019 if (r->print_processor) {
14020 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor));
14021 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
14022 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor));
14024 ndr->flags = _flags_save_string;
14027 uint32_t _flags_save_string = ndr->flags;
14028 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14029 if (r->vendor_setup) {
14030 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->vendor_setup));
14031 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->vendor_setup));
14032 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->vendor_setup));
14034 ndr->flags = _flags_save_string;
14037 uint32_t _flags_save_string_array = ndr->flags;
14038 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14039 if (r->color_profiles) {
14040 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->color_profiles));
14041 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->color_profiles));
14042 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->color_profiles));
14044 ndr->flags = _flags_save_string_array;
14047 uint32_t _flags_save_string = ndr->flags;
14048 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14049 if (r->inf_path) {
14050 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->inf_path));
14051 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_path));
14052 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->inf_path));
14054 ndr->flags = _flags_save_string;
14057 uint32_t _flags_save_string_array = ndr->flags;
14058 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14059 if (r->core_driver_dependencies) {
14060 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->core_driver_dependencies));
14061 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->core_driver_dependencies));
14062 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->core_driver_dependencies));
14064 ndr->flags = _flags_save_string_array;
14067 return NDR_ERR_SUCCESS;
14070 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo8 *r)
14072 uint32_t _ptr_driver_name;
14073 TALLOC_CTX *_mem_save_driver_name_0;
14074 uint32_t _ptr_architecture;
14075 TALLOC_CTX *_mem_save_architecture_0;
14076 uint32_t _ptr_driver_path;
14077 TALLOC_CTX *_mem_save_driver_path_0;
14078 uint32_t _ptr_data_file;
14079 TALLOC_CTX *_mem_save_data_file_0;
14080 uint32_t _ptr_config_file;
14081 TALLOC_CTX *_mem_save_config_file_0;
14082 uint32_t _ptr_help_file;
14083 TALLOC_CTX *_mem_save_help_file_0;
14084 uint32_t _ptr_dependent_files;
14085 TALLOC_CTX *_mem_save_dependent_files_0;
14086 uint32_t _ptr_monitor_name;
14087 TALLOC_CTX *_mem_save_monitor_name_0;
14088 uint32_t _ptr_default_datatype;
14089 TALLOC_CTX *_mem_save_default_datatype_0;
14090 uint32_t _ptr_previous_names;
14091 TALLOC_CTX *_mem_save_previous_names_0;
14092 uint32_t _ptr_manufacturer_name;
14093 TALLOC_CTX *_mem_save_manufacturer_name_0;
14094 uint32_t _ptr_manufacturer_url;
14095 TALLOC_CTX *_mem_save_manufacturer_url_0;
14096 uint32_t _ptr_hardware_id;
14097 TALLOC_CTX *_mem_save_hardware_id_0;
14098 uint32_t _ptr_provider;
14099 TALLOC_CTX *_mem_save_provider_0;
14100 uint32_t _ptr_print_processor;
14101 TALLOC_CTX *_mem_save_print_processor_0;
14102 uint32_t _ptr_vendor_setup;
14103 TALLOC_CTX *_mem_save_vendor_setup_0;
14104 uint32_t _ptr_color_profiles;
14105 TALLOC_CTX *_mem_save_color_profiles_0;
14106 uint32_t _ptr_inf_path;
14107 TALLOC_CTX *_mem_save_inf_path_0;
14108 uint32_t _ptr_core_driver_dependencies;
14109 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
14110 if (ndr_flags & NDR_SCALARS) {
14111 NDR_CHECK(ndr_pull_align(ndr, 8));
14112 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
14114 uint32_t _flags_save_string = ndr->flags;
14115 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14116 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
14117 if (_ptr_driver_name) {
14118 NDR_PULL_ALLOC(ndr, r->driver_name);
14119 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
14120 } else {
14121 r->driver_name = NULL;
14123 ndr->flags = _flags_save_string;
14126 uint32_t _flags_save_string = ndr->flags;
14127 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14128 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
14129 if (_ptr_architecture) {
14130 NDR_PULL_ALLOC(ndr, r->architecture);
14131 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
14132 } else {
14133 r->architecture = NULL;
14135 ndr->flags = _flags_save_string;
14138 uint32_t _flags_save_string = ndr->flags;
14139 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14140 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
14141 if (_ptr_driver_path) {
14142 NDR_PULL_ALLOC(ndr, r->driver_path);
14143 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
14144 } else {
14145 r->driver_path = NULL;
14147 ndr->flags = _flags_save_string;
14150 uint32_t _flags_save_string = ndr->flags;
14151 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14152 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
14153 if (_ptr_data_file) {
14154 NDR_PULL_ALLOC(ndr, r->data_file);
14155 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
14156 } else {
14157 r->data_file = NULL;
14159 ndr->flags = _flags_save_string;
14162 uint32_t _flags_save_string = ndr->flags;
14163 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14164 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
14165 if (_ptr_config_file) {
14166 NDR_PULL_ALLOC(ndr, r->config_file);
14167 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
14168 } else {
14169 r->config_file = NULL;
14171 ndr->flags = _flags_save_string;
14174 uint32_t _flags_save_string = ndr->flags;
14175 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14176 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
14177 if (_ptr_help_file) {
14178 NDR_PULL_ALLOC(ndr, r->help_file);
14179 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
14180 } else {
14181 r->help_file = NULL;
14183 ndr->flags = _flags_save_string;
14186 uint32_t _flags_save_string_array = ndr->flags;
14187 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14188 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
14189 if (_ptr_dependent_files) {
14190 NDR_PULL_ALLOC(ndr, r->dependent_files);
14191 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
14192 } else {
14193 r->dependent_files = NULL;
14195 ndr->flags = _flags_save_string_array;
14198 uint32_t _flags_save_string = ndr->flags;
14199 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14200 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
14201 if (_ptr_monitor_name) {
14202 NDR_PULL_ALLOC(ndr, r->monitor_name);
14203 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
14204 } else {
14205 r->monitor_name = NULL;
14207 ndr->flags = _flags_save_string;
14210 uint32_t _flags_save_string = ndr->flags;
14211 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14212 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
14213 if (_ptr_default_datatype) {
14214 NDR_PULL_ALLOC(ndr, r->default_datatype);
14215 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
14216 } else {
14217 r->default_datatype = NULL;
14219 ndr->flags = _flags_save_string;
14222 uint32_t _flags_save_string_array = ndr->flags;
14223 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14224 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
14225 if (_ptr_previous_names) {
14226 NDR_PULL_ALLOC(ndr, r->previous_names);
14227 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
14228 } else {
14229 r->previous_names = NULL;
14231 ndr->flags = _flags_save_string_array;
14233 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
14234 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
14236 uint32_t _flags_save_string = ndr->flags;
14237 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14238 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
14239 if (_ptr_manufacturer_name) {
14240 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
14241 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
14242 } else {
14243 r->manufacturer_name = NULL;
14245 ndr->flags = _flags_save_string;
14248 uint32_t _flags_save_string = ndr->flags;
14249 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14250 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
14251 if (_ptr_manufacturer_url) {
14252 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
14253 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
14254 } else {
14255 r->manufacturer_url = NULL;
14257 ndr->flags = _flags_save_string;
14260 uint32_t _flags_save_string = ndr->flags;
14261 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14262 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
14263 if (_ptr_hardware_id) {
14264 NDR_PULL_ALLOC(ndr, r->hardware_id);
14265 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
14266 } else {
14267 r->hardware_id = NULL;
14269 ndr->flags = _flags_save_string;
14272 uint32_t _flags_save_string = ndr->flags;
14273 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14274 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
14275 if (_ptr_provider) {
14276 NDR_PULL_ALLOC(ndr, r->provider);
14277 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
14278 } else {
14279 r->provider = NULL;
14281 ndr->flags = _flags_save_string;
14284 uint32_t _flags_save_string = ndr->flags;
14285 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14286 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
14287 if (_ptr_print_processor) {
14288 NDR_PULL_ALLOC(ndr, r->print_processor);
14289 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
14290 } else {
14291 r->print_processor = NULL;
14293 ndr->flags = _flags_save_string;
14296 uint32_t _flags_save_string = ndr->flags;
14297 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14298 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
14299 if (_ptr_vendor_setup) {
14300 NDR_PULL_ALLOC(ndr, r->vendor_setup);
14301 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->vendor_setup, _ptr_vendor_setup));
14302 } else {
14303 r->vendor_setup = NULL;
14305 ndr->flags = _flags_save_string;
14308 uint32_t _flags_save_string_array = ndr->flags;
14309 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14310 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
14311 if (_ptr_color_profiles) {
14312 NDR_PULL_ALLOC(ndr, r->color_profiles);
14313 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->color_profiles, _ptr_color_profiles));
14314 } else {
14315 r->color_profiles = NULL;
14317 ndr->flags = _flags_save_string_array;
14320 uint32_t _flags_save_string = ndr->flags;
14321 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14322 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
14323 if (_ptr_inf_path) {
14324 NDR_PULL_ALLOC(ndr, r->inf_path);
14325 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_path, _ptr_inf_path));
14326 } else {
14327 r->inf_path = NULL;
14329 ndr->flags = _flags_save_string;
14331 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
14333 uint32_t _flags_save_string_array = ndr->flags;
14334 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14335 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
14336 if (_ptr_core_driver_dependencies) {
14337 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
14338 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->core_driver_dependencies, _ptr_core_driver_dependencies));
14339 } else {
14340 r->core_driver_dependencies = NULL;
14342 ndr->flags = _flags_save_string_array;
14344 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
14345 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
14346 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
14348 if (ndr_flags & NDR_BUFFERS) {
14350 uint32_t _flags_save_string = ndr->flags;
14351 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14352 if (r->driver_name) {
14353 uint32_t _relative_save_offset;
14354 _relative_save_offset = ndr->offset;
14355 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
14356 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14357 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
14358 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
14359 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
14360 if (ndr->offset > ndr->relative_highest_offset) {
14361 ndr->relative_highest_offset = ndr->offset;
14363 ndr->offset = _relative_save_offset;
14365 ndr->flags = _flags_save_string;
14368 uint32_t _flags_save_string = ndr->flags;
14369 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14370 if (r->architecture) {
14371 uint32_t _relative_save_offset;
14372 _relative_save_offset = ndr->offset;
14373 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
14374 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
14375 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
14376 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
14377 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
14378 if (ndr->offset > ndr->relative_highest_offset) {
14379 ndr->relative_highest_offset = ndr->offset;
14381 ndr->offset = _relative_save_offset;
14383 ndr->flags = _flags_save_string;
14386 uint32_t _flags_save_string = ndr->flags;
14387 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14388 if (r->driver_path) {
14389 uint32_t _relative_save_offset;
14390 _relative_save_offset = ndr->offset;
14391 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
14392 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
14393 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
14394 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
14395 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
14396 if (ndr->offset > ndr->relative_highest_offset) {
14397 ndr->relative_highest_offset = ndr->offset;
14399 ndr->offset = _relative_save_offset;
14401 ndr->flags = _flags_save_string;
14404 uint32_t _flags_save_string = ndr->flags;
14405 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14406 if (r->data_file) {
14407 uint32_t _relative_save_offset;
14408 _relative_save_offset = ndr->offset;
14409 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
14410 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
14411 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
14412 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
14413 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
14414 if (ndr->offset > ndr->relative_highest_offset) {
14415 ndr->relative_highest_offset = ndr->offset;
14417 ndr->offset = _relative_save_offset;
14419 ndr->flags = _flags_save_string;
14422 uint32_t _flags_save_string = ndr->flags;
14423 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14424 if (r->config_file) {
14425 uint32_t _relative_save_offset;
14426 _relative_save_offset = ndr->offset;
14427 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
14428 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
14429 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
14430 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
14431 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
14432 if (ndr->offset > ndr->relative_highest_offset) {
14433 ndr->relative_highest_offset = ndr->offset;
14435 ndr->offset = _relative_save_offset;
14437 ndr->flags = _flags_save_string;
14440 uint32_t _flags_save_string = ndr->flags;
14441 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14442 if (r->help_file) {
14443 uint32_t _relative_save_offset;
14444 _relative_save_offset = ndr->offset;
14445 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
14446 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
14447 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
14448 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
14449 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
14450 if (ndr->offset > ndr->relative_highest_offset) {
14451 ndr->relative_highest_offset = ndr->offset;
14453 ndr->offset = _relative_save_offset;
14455 ndr->flags = _flags_save_string;
14458 uint32_t _flags_save_string_array = ndr->flags;
14459 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14460 if (r->dependent_files) {
14461 uint32_t _relative_save_offset;
14462 _relative_save_offset = ndr->offset;
14463 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
14464 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
14465 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
14466 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
14467 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
14468 if (ndr->offset > ndr->relative_highest_offset) {
14469 ndr->relative_highest_offset = ndr->offset;
14471 ndr->offset = _relative_save_offset;
14473 ndr->flags = _flags_save_string_array;
14476 uint32_t _flags_save_string = ndr->flags;
14477 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14478 if (r->monitor_name) {
14479 uint32_t _relative_save_offset;
14480 _relative_save_offset = ndr->offset;
14481 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
14482 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14483 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
14484 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
14485 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
14486 if (ndr->offset > ndr->relative_highest_offset) {
14487 ndr->relative_highest_offset = ndr->offset;
14489 ndr->offset = _relative_save_offset;
14491 ndr->flags = _flags_save_string;
14494 uint32_t _flags_save_string = ndr->flags;
14495 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14496 if (r->default_datatype) {
14497 uint32_t _relative_save_offset;
14498 _relative_save_offset = ndr->offset;
14499 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
14500 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
14501 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
14502 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
14503 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
14504 if (ndr->offset > ndr->relative_highest_offset) {
14505 ndr->relative_highest_offset = ndr->offset;
14507 ndr->offset = _relative_save_offset;
14509 ndr->flags = _flags_save_string;
14512 uint32_t _flags_save_string_array = ndr->flags;
14513 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14514 if (r->previous_names) {
14515 uint32_t _relative_save_offset;
14516 _relative_save_offset = ndr->offset;
14517 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
14518 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
14519 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
14520 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
14521 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
14522 if (ndr->offset > ndr->relative_highest_offset) {
14523 ndr->relative_highest_offset = ndr->offset;
14525 ndr->offset = _relative_save_offset;
14527 ndr->flags = _flags_save_string_array;
14530 uint32_t _flags_save_string = ndr->flags;
14531 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14532 if (r->manufacturer_name) {
14533 uint32_t _relative_save_offset;
14534 _relative_save_offset = ndr->offset;
14535 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
14536 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14537 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
14538 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
14539 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
14540 if (ndr->offset > ndr->relative_highest_offset) {
14541 ndr->relative_highest_offset = ndr->offset;
14543 ndr->offset = _relative_save_offset;
14545 ndr->flags = _flags_save_string;
14548 uint32_t _flags_save_string = ndr->flags;
14549 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14550 if (r->manufacturer_url) {
14551 uint32_t _relative_save_offset;
14552 _relative_save_offset = ndr->offset;
14553 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
14554 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
14555 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
14556 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
14557 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
14558 if (ndr->offset > ndr->relative_highest_offset) {
14559 ndr->relative_highest_offset = ndr->offset;
14561 ndr->offset = _relative_save_offset;
14563 ndr->flags = _flags_save_string;
14566 uint32_t _flags_save_string = ndr->flags;
14567 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14568 if (r->hardware_id) {
14569 uint32_t _relative_save_offset;
14570 _relative_save_offset = ndr->offset;
14571 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
14572 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
14573 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
14574 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
14575 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
14576 if (ndr->offset > ndr->relative_highest_offset) {
14577 ndr->relative_highest_offset = ndr->offset;
14579 ndr->offset = _relative_save_offset;
14581 ndr->flags = _flags_save_string;
14584 uint32_t _flags_save_string = ndr->flags;
14585 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14586 if (r->provider) {
14587 uint32_t _relative_save_offset;
14588 _relative_save_offset = ndr->offset;
14589 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
14590 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
14591 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
14592 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
14593 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
14594 if (ndr->offset > ndr->relative_highest_offset) {
14595 ndr->relative_highest_offset = ndr->offset;
14597 ndr->offset = _relative_save_offset;
14599 ndr->flags = _flags_save_string;
14602 uint32_t _flags_save_string = ndr->flags;
14603 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14604 if (r->print_processor) {
14605 uint32_t _relative_save_offset;
14606 _relative_save_offset = ndr->offset;
14607 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
14608 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
14609 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
14610 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
14611 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
14612 if (ndr->offset > ndr->relative_highest_offset) {
14613 ndr->relative_highest_offset = ndr->offset;
14615 ndr->offset = _relative_save_offset;
14617 ndr->flags = _flags_save_string;
14620 uint32_t _flags_save_string = ndr->flags;
14621 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14622 if (r->vendor_setup) {
14623 uint32_t _relative_save_offset;
14624 _relative_save_offset = ndr->offset;
14625 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->vendor_setup));
14626 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
14627 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
14628 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->vendor_setup));
14629 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
14630 if (ndr->offset > ndr->relative_highest_offset) {
14631 ndr->relative_highest_offset = ndr->offset;
14633 ndr->offset = _relative_save_offset;
14635 ndr->flags = _flags_save_string;
14638 uint32_t _flags_save_string_array = ndr->flags;
14639 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14640 if (r->color_profiles) {
14641 uint32_t _relative_save_offset;
14642 _relative_save_offset = ndr->offset;
14643 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->color_profiles));
14644 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
14645 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
14646 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->color_profiles));
14647 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
14648 if (ndr->offset > ndr->relative_highest_offset) {
14649 ndr->relative_highest_offset = ndr->offset;
14651 ndr->offset = _relative_save_offset;
14653 ndr->flags = _flags_save_string_array;
14656 uint32_t _flags_save_string = ndr->flags;
14657 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14658 if (r->inf_path) {
14659 uint32_t _relative_save_offset;
14660 _relative_save_offset = ndr->offset;
14661 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_path));
14662 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
14663 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
14664 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_path));
14665 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
14666 if (ndr->offset > ndr->relative_highest_offset) {
14667 ndr->relative_highest_offset = ndr->offset;
14669 ndr->offset = _relative_save_offset;
14671 ndr->flags = _flags_save_string;
14674 uint32_t _flags_save_string_array = ndr->flags;
14675 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14676 if (r->core_driver_dependencies) {
14677 uint32_t _relative_save_offset;
14678 _relative_save_offset = ndr->offset;
14679 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->core_driver_dependencies));
14680 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
14681 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
14682 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->core_driver_dependencies));
14683 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
14684 if (ndr->offset > ndr->relative_highest_offset) {
14685 ndr->relative_highest_offset = ndr->offset;
14687 ndr->offset = _relative_save_offset;
14689 ndr->flags = _flags_save_string_array;
14692 return NDR_ERR_SUCCESS;
14695 _PUBLIC_ void ndr_print_spoolss_DriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo8 *r)
14697 ndr_print_struct(ndr, name, "spoolss_DriverInfo8");
14698 ndr->depth++;
14699 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
14700 ndr_print_ptr(ndr, "driver_name", r->driver_name);
14701 ndr->depth++;
14702 if (r->driver_name) {
14703 ndr_print_string(ndr, "driver_name", r->driver_name);
14705 ndr->depth--;
14706 ndr_print_ptr(ndr, "architecture", r->architecture);
14707 ndr->depth++;
14708 if (r->architecture) {
14709 ndr_print_string(ndr, "architecture", r->architecture);
14711 ndr->depth--;
14712 ndr_print_ptr(ndr, "driver_path", r->driver_path);
14713 ndr->depth++;
14714 if (r->driver_path) {
14715 ndr_print_string(ndr, "driver_path", r->driver_path);
14717 ndr->depth--;
14718 ndr_print_ptr(ndr, "data_file", r->data_file);
14719 ndr->depth++;
14720 if (r->data_file) {
14721 ndr_print_string(ndr, "data_file", r->data_file);
14723 ndr->depth--;
14724 ndr_print_ptr(ndr, "config_file", r->config_file);
14725 ndr->depth++;
14726 if (r->config_file) {
14727 ndr_print_string(ndr, "config_file", r->config_file);
14729 ndr->depth--;
14730 ndr_print_ptr(ndr, "help_file", r->help_file);
14731 ndr->depth++;
14732 if (r->help_file) {
14733 ndr_print_string(ndr, "help_file", r->help_file);
14735 ndr->depth--;
14736 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
14737 ndr->depth++;
14738 if (r->dependent_files) {
14739 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
14741 ndr->depth--;
14742 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
14743 ndr->depth++;
14744 if (r->monitor_name) {
14745 ndr_print_string(ndr, "monitor_name", r->monitor_name);
14747 ndr->depth--;
14748 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
14749 ndr->depth++;
14750 if (r->default_datatype) {
14751 ndr_print_string(ndr, "default_datatype", r->default_datatype);
14753 ndr->depth--;
14754 ndr_print_ptr(ndr, "previous_names", r->previous_names);
14755 ndr->depth++;
14756 if (r->previous_names) {
14757 ndr_print_string_array(ndr, "previous_names", r->previous_names);
14759 ndr->depth--;
14760 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
14761 ndr_print_hyper(ndr, "driver_version", r->driver_version);
14762 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
14763 ndr->depth++;
14764 if (r->manufacturer_name) {
14765 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
14767 ndr->depth--;
14768 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
14769 ndr->depth++;
14770 if (r->manufacturer_url) {
14771 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
14773 ndr->depth--;
14774 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
14775 ndr->depth++;
14776 if (r->hardware_id) {
14777 ndr_print_string(ndr, "hardware_id", r->hardware_id);
14779 ndr->depth--;
14780 ndr_print_ptr(ndr, "provider", r->provider);
14781 ndr->depth++;
14782 if (r->provider) {
14783 ndr_print_string(ndr, "provider", r->provider);
14785 ndr->depth--;
14786 ndr_print_ptr(ndr, "print_processor", r->print_processor);
14787 ndr->depth++;
14788 if (r->print_processor) {
14789 ndr_print_string(ndr, "print_processor", r->print_processor);
14791 ndr->depth--;
14792 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
14793 ndr->depth++;
14794 if (r->vendor_setup) {
14795 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
14797 ndr->depth--;
14798 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
14799 ndr->depth++;
14800 if (r->color_profiles) {
14801 ndr_print_string_array(ndr, "color_profiles", r->color_profiles);
14803 ndr->depth--;
14804 ndr_print_ptr(ndr, "inf_path", r->inf_path);
14805 ndr->depth++;
14806 if (r->inf_path) {
14807 ndr_print_string(ndr, "inf_path", r->inf_path);
14809 ndr->depth--;
14810 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
14811 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
14812 ndr->depth++;
14813 if (r->core_driver_dependencies) {
14814 ndr_print_string_array(ndr, "core_driver_dependencies", r->core_driver_dependencies);
14816 ndr->depth--;
14817 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
14818 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
14819 ndr->depth--;
14822 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8 *r, struct smb_iconv_convenience *ic, int flags)
14824 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo8, ic);
14827 static enum ndr_err_code ndr_push_spoolss_DriverFileType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverFileType r)
14829 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
14830 return NDR_ERR_SUCCESS;
14833 static enum ndr_err_code ndr_pull_spoolss_DriverFileType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverFileType *r)
14835 uint32_t v;
14836 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
14837 *r = v;
14838 return NDR_ERR_SUCCESS;
14841 _PUBLIC_ void ndr_print_spoolss_DriverFileType(struct ndr_print *ndr, const char *name, enum spoolss_DriverFileType r)
14843 const char *val = NULL;
14845 switch (r) {
14846 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING: val = "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
14847 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION: val = "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
14848 case SPOOLSS_DRIVER_FILE_TYPE_DATA: val = "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
14849 case SPOOLSS_DRIVER_FILE_TYPE_HELP: val = "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
14850 case SPOOLSS_DRIVER_FILE_TYPE_OTHER: val = "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
14852 ndr_print_enum(ndr, name, "ENUM", val, r);
14855 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverFileInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverFileInfo *r)
14857 if (ndr_flags & NDR_SCALARS) {
14858 NDR_CHECK(ndr_push_align(ndr, 5));
14860 uint32_t _flags_save_string = ndr->flags;
14861 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14862 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->file_name));
14863 ndr->flags = _flags_save_string;
14865 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr, NDR_SCALARS, r->file_type));
14866 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->file_version));
14867 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
14869 if (ndr_flags & NDR_BUFFERS) {
14871 uint32_t _flags_save_string = ndr->flags;
14872 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14873 if (r->file_name) {
14874 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->file_name));
14875 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->file_name));
14876 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->file_name));
14878 ndr->flags = _flags_save_string;
14881 return NDR_ERR_SUCCESS;
14884 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverFileInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverFileInfo *r)
14886 uint32_t _ptr_file_name;
14887 TALLOC_CTX *_mem_save_file_name_0;
14888 if (ndr_flags & NDR_SCALARS) {
14889 NDR_CHECK(ndr_pull_align(ndr, 5));
14891 uint32_t _flags_save_string = ndr->flags;
14892 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14893 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_file_name));
14894 if (_ptr_file_name) {
14895 NDR_PULL_ALLOC(ndr, r->file_name);
14896 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->file_name, _ptr_file_name));
14897 } else {
14898 r->file_name = NULL;
14900 ndr->flags = _flags_save_string;
14902 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr, NDR_SCALARS, &r->file_type));
14903 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->file_version));
14904 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
14906 if (ndr_flags & NDR_BUFFERS) {
14908 uint32_t _flags_save_string = ndr->flags;
14909 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14910 if (r->file_name) {
14911 uint32_t _relative_save_offset;
14912 _relative_save_offset = ndr->offset;
14913 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->file_name));
14914 _mem_save_file_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14915 NDR_PULL_SET_MEM_CTX(ndr, r->file_name, 0);
14916 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->file_name));
14917 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_file_name_0, 0);
14918 if (ndr->offset > ndr->relative_highest_offset) {
14919 ndr->relative_highest_offset = ndr->offset;
14921 ndr->offset = _relative_save_offset;
14923 ndr->flags = _flags_save_string;
14926 return NDR_ERR_SUCCESS;
14929 _PUBLIC_ void ndr_print_spoolss_DriverFileInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DriverFileInfo *r)
14931 ndr_print_struct(ndr, name, "spoolss_DriverFileInfo");
14932 ndr->depth++;
14933 ndr_print_ptr(ndr, "file_name", r->file_name);
14934 ndr->depth++;
14935 if (r->file_name) {
14936 ndr_print_string(ndr, "file_name", r->file_name);
14938 ndr->depth--;
14939 ndr_print_spoolss_DriverFileType(ndr, "file_type", r->file_type);
14940 ndr_print_uint32(ndr, "file_version", r->file_version);
14941 ndr->depth--;
14944 _PUBLIC_ void ndr_print_spoolss_DriverInfo101(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo101 *r)
14946 uint32_t cntr_file_info_1;
14947 ndr_print_struct(ndr, name, "spoolss_DriverInfo101");
14948 ndr->depth++;
14949 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
14950 ndr_print_ptr(ndr, "driver_name", r->driver_name);
14951 ndr->depth++;
14952 if (r->driver_name) {
14953 ndr_print_string(ndr, "driver_name", r->driver_name);
14955 ndr->depth--;
14956 ndr_print_ptr(ndr, "architecture", r->architecture);
14957 ndr->depth++;
14958 if (r->architecture) {
14959 ndr_print_string(ndr, "architecture", r->architecture);
14961 ndr->depth--;
14962 ndr_print_ptr(ndr, "file_info", r->file_info);
14963 ndr->depth++;
14964 if (r->file_info) {
14965 ndr->print(ndr, "%s: ARRAY(%d)", "file_info", (int)r->file_count);
14966 ndr->depth++;
14967 for (cntr_file_info_1=0;cntr_file_info_1<r->file_count;cntr_file_info_1++) {
14968 char *idx_1=NULL;
14969 if (asprintf(&idx_1, "[%d]", cntr_file_info_1) != -1) {
14970 ndr_print_spoolss_DriverFileInfo(ndr, "file_info", &r->file_info[cntr_file_info_1]);
14971 free(idx_1);
14974 ndr->depth--;
14976 ndr->depth--;
14977 ndr_print_uint32(ndr, "file_count", r->file_count);
14978 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
14979 ndr->depth++;
14980 if (r->monitor_name) {
14981 ndr_print_string(ndr, "monitor_name", r->monitor_name);
14983 ndr->depth--;
14984 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
14985 ndr->depth++;
14986 if (r->default_datatype) {
14987 ndr_print_string(ndr, "default_datatype", r->default_datatype);
14989 ndr->depth--;
14990 ndr_print_ptr(ndr, "previous_names", r->previous_names);
14991 ndr->depth++;
14992 if (r->previous_names) {
14993 ndr_print_string_array(ndr, "previous_names", r->previous_names);
14995 ndr->depth--;
14996 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
14997 ndr_print_hyper(ndr, "driver_version", r->driver_version);
14998 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
14999 ndr->depth++;
15000 if (r->manufacturer_name) {
15001 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
15003 ndr->depth--;
15004 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
15005 ndr->depth++;
15006 if (r->manufacturer_url) {
15007 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
15009 ndr->depth--;
15010 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
15011 ndr->depth++;
15012 if (r->hardware_id) {
15013 ndr_print_string(ndr, "hardware_id", r->hardware_id);
15015 ndr->depth--;
15016 ndr_print_ptr(ndr, "provider", r->provider);
15017 ndr->depth++;
15018 if (r->provider) {
15019 ndr_print_string(ndr, "provider", r->provider);
15021 ndr->depth--;
15022 ndr->depth--;
15025 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101 *r, struct smb_iconv_convenience *ic, int flags)
15027 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo101, ic);
15030 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverInfo *r)
15032 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
15034 uint32_t _flags_save_UNION = ndr->flags;
15035 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15036 if (ndr_flags & NDR_SCALARS) {
15037 int level = ndr_push_get_switch_value(ndr, r);
15038 NDR_CHECK(ndr_push_union_align(ndr, 8));
15039 switch (level) {
15040 case 1: {
15041 NDR_CHECK(ndr_push_align(ndr, 5));
15042 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15043 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
15044 break; }
15046 case 2: {
15047 NDR_CHECK(ndr_push_align(ndr, 5));
15048 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15049 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
15050 break; }
15052 case 3: {
15053 NDR_CHECK(ndr_push_align(ndr, 5));
15054 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15055 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
15056 break; }
15058 case 4: {
15059 NDR_CHECK(ndr_push_align(ndr, 5));
15060 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15061 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
15062 break; }
15064 case 5: {
15065 NDR_CHECK(ndr_push_align(ndr, 5));
15066 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15067 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
15068 break; }
15070 case 6: {
15071 NDR_CHECK(ndr_push_align(ndr, 8));
15072 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15073 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
15074 break; }
15076 case 7: {
15077 NDR_CHECK(ndr_push_align(ndr, 5));
15078 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15079 NDR_CHECK(ndr_push_spoolss_DriverInfo7(ndr, NDR_SCALARS, &r->info7));
15080 break; }
15082 case 8: {
15083 NDR_CHECK(ndr_push_align(ndr, 8));
15084 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15085 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
15086 break; }
15088 case 101: {
15089 NDR_CHECK(ndr_push_align(ndr, 8));
15090 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15091 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
15092 break; }
15094 default: {
15095 break; }
15099 if (ndr_flags & NDR_BUFFERS) {
15100 int level = ndr_push_get_switch_value(ndr, r);
15101 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
15102 switch (level) {
15103 case 1:
15104 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
15105 break;
15107 case 2:
15108 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
15109 break;
15111 case 3:
15112 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
15113 break;
15115 case 4:
15116 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
15117 break;
15119 case 5:
15120 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
15121 break;
15123 case 6:
15124 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
15125 break;
15127 case 7:
15128 NDR_CHECK(ndr_push_spoolss_DriverInfo7(ndr, NDR_BUFFERS, &r->info7));
15129 break;
15131 case 8:
15132 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
15133 break;
15135 case 101:
15136 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
15137 break;
15139 default:
15140 break;
15144 ndr->flags = _flags_save_UNION;
15146 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
15147 return NDR_ERR_SUCCESS;
15150 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverInfo *r)
15152 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
15153 int level;
15155 uint32_t _flags_save_UNION = ndr->flags;
15156 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15157 level = ndr_pull_get_switch_value(ndr, r);
15158 if (ndr_flags & NDR_SCALARS) {
15159 NDR_CHECK(ndr_pull_union_align(ndr, 8));
15160 switch (level) {
15161 case 1: {
15162 NDR_CHECK(ndr_pull_align(ndr, 5));
15163 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15164 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
15165 break; }
15167 case 2: {
15168 NDR_CHECK(ndr_pull_align(ndr, 5));
15169 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15170 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
15171 break; }
15173 case 3: {
15174 NDR_CHECK(ndr_pull_align(ndr, 5));
15175 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15176 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
15177 break; }
15179 case 4: {
15180 NDR_CHECK(ndr_pull_align(ndr, 5));
15181 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15182 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
15183 break; }
15185 case 5: {
15186 NDR_CHECK(ndr_pull_align(ndr, 5));
15187 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15188 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
15189 break; }
15191 case 6: {
15192 NDR_CHECK(ndr_pull_align(ndr, 8));
15193 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15194 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
15195 break; }
15197 case 7: {
15198 NDR_CHECK(ndr_pull_align(ndr, 5));
15199 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15200 NDR_CHECK(ndr_pull_spoolss_DriverInfo7(ndr, NDR_SCALARS, &r->info7));
15201 break; }
15203 case 8: {
15204 NDR_CHECK(ndr_pull_align(ndr, 8));
15205 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15206 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
15207 break; }
15209 case 101: {
15210 NDR_CHECK(ndr_pull_align(ndr, 8));
15211 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15212 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
15213 break; }
15215 default: {
15216 break; }
15220 if (ndr_flags & NDR_BUFFERS) {
15221 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15222 switch (level) {
15223 case 1:
15224 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
15225 break;
15227 case 2:
15228 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
15229 break;
15231 case 3:
15232 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
15233 break;
15235 case 4:
15236 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
15237 break;
15239 case 5:
15240 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
15241 break;
15243 case 6:
15244 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
15245 break;
15247 case 7:
15248 NDR_CHECK(ndr_pull_spoolss_DriverInfo7(ndr, NDR_BUFFERS, &r->info7));
15249 break;
15251 case 8:
15252 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
15253 break;
15255 case 101:
15256 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
15257 break;
15259 default:
15260 break;
15264 ndr->flags = _flags_save_UNION;
15266 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15267 return NDR_ERR_SUCCESS;
15270 _PUBLIC_ void ndr_print_spoolss_DriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverInfo *r)
15272 int level;
15274 uint32_t _flags_save_UNION = ndr->flags;
15275 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15276 level = ndr_print_get_switch_value(ndr, r);
15277 ndr_print_union(ndr, name, level, "spoolss_DriverInfo");
15278 switch (level) {
15279 case 1:
15280 ndr_print_spoolss_DriverInfo1(ndr, "info1", &r->info1);
15281 break;
15283 case 2:
15284 ndr_print_spoolss_DriverInfo2(ndr, "info2", &r->info2);
15285 break;
15287 case 3:
15288 ndr_print_spoolss_DriverInfo3(ndr, "info3", &r->info3);
15289 break;
15291 case 4:
15292 ndr_print_spoolss_DriverInfo4(ndr, "info4", &r->info4);
15293 break;
15295 case 5:
15296 ndr_print_spoolss_DriverInfo5(ndr, "info5", &r->info5);
15297 break;
15299 case 6:
15300 ndr_print_spoolss_DriverInfo6(ndr, "info6", &r->info6);
15301 break;
15303 case 7:
15304 ndr_print_spoolss_DriverInfo7(ndr, "info7", &r->info7);
15305 break;
15307 case 8:
15308 ndr_print_spoolss_DriverInfo8(ndr, "info8", &r->info8);
15309 break;
15311 case 101:
15312 ndr_print_spoolss_DriverInfo101(ndr, "info101", &r->info101);
15313 break;
15315 default:
15316 break;
15319 ndr->flags = _flags_save_UNION;
15323 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo(const union spoolss_DriverInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15325 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
15326 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo, ic);
15329 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverDirectoryInfo1 *r)
15331 if (ndr_flags & NDR_SCALARS) {
15332 NDR_CHECK(ndr_push_align(ndr, 4));
15334 uint32_t _flags_save_string = ndr->flags;
15335 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15336 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
15337 ndr->flags = _flags_save_string;
15339 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15341 if (ndr_flags & NDR_BUFFERS) {
15343 return NDR_ERR_SUCCESS;
15346 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverDirectoryInfo1 *r)
15348 if (ndr_flags & NDR_SCALARS) {
15349 NDR_CHECK(ndr_pull_align(ndr, 4));
15351 uint32_t _flags_save_string = ndr->flags;
15352 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15353 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
15354 ndr->flags = _flags_save_string;
15356 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15358 if (ndr_flags & NDR_BUFFERS) {
15360 return NDR_ERR_SUCCESS;
15363 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverDirectoryInfo1 *r)
15365 ndr_print_struct(ndr, name, "spoolss_DriverDirectoryInfo1");
15366 ndr->depth++;
15367 ndr_print_string(ndr, "directory_name", r->directory_name);
15368 ndr->depth--;
15371 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
15373 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo1, ic);
15376 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverDirectoryInfo *r)
15378 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
15380 uint32_t _flags_save_UNION = ndr->flags;
15381 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15382 if (ndr_flags & NDR_SCALARS) {
15383 int level = ndr_push_get_switch_value(ndr, r);
15384 NDR_CHECK(ndr_push_union_align(ndr, 4));
15385 switch (level) {
15386 case 1: {
15387 NDR_CHECK(ndr_push_align(ndr, 4));
15388 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15389 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15390 break; }
15392 default: {
15393 NDR_CHECK(ndr_push_align(ndr, 4));
15394 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15395 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15396 break; }
15400 if (ndr_flags & NDR_BUFFERS) {
15401 int level = ndr_push_get_switch_value(ndr, r);
15402 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
15403 switch (level) {
15404 case 1:
15405 break;
15407 default:
15408 break;
15412 ndr->flags = _flags_save_UNION;
15414 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
15415 return NDR_ERR_SUCCESS;
15418 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverDirectoryInfo *r)
15420 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
15421 int level;
15423 uint32_t _flags_save_UNION = ndr->flags;
15424 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15425 level = ndr_pull_get_switch_value(ndr, r);
15426 if (ndr_flags & NDR_SCALARS) {
15427 NDR_CHECK(ndr_pull_union_align(ndr, 4));
15428 switch (level) {
15429 case 1: {
15430 NDR_CHECK(ndr_pull_align(ndr, 4));
15431 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15432 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15433 break; }
15435 default: {
15436 NDR_CHECK(ndr_pull_align(ndr, 4));
15437 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15438 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15439 break; }
15443 if (ndr_flags & NDR_BUFFERS) {
15444 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15445 switch (level) {
15446 case 1:
15447 break;
15449 default:
15450 break;
15454 ndr->flags = _flags_save_UNION;
15456 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15457 return NDR_ERR_SUCCESS;
15460 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverDirectoryInfo *r)
15462 int level;
15464 uint32_t _flags_save_UNION = ndr->flags;
15465 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15466 level = ndr_print_get_switch_value(ndr, r);
15467 ndr_print_union(ndr, name, level, "spoolss_DriverDirectoryInfo");
15468 switch (level) {
15469 case 1:
15470 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
15471 break;
15473 default:
15474 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
15475 break;
15478 ndr->flags = _flags_save_UNION;
15482 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15484 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
15485 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo, ic);
15488 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorInfo1 *r)
15490 if (ndr_flags & NDR_SCALARS) {
15491 NDR_CHECK(ndr_push_align(ndr, 5));
15493 uint32_t _flags_save_string = ndr->flags;
15494 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15495 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor_name));
15496 ndr->flags = _flags_save_string;
15498 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
15500 if (ndr_flags & NDR_BUFFERS) {
15502 uint32_t _flags_save_string = ndr->flags;
15503 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15504 if (r->print_processor_name) {
15505 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor_name));
15506 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor_name));
15507 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor_name));
15509 ndr->flags = _flags_save_string;
15512 return NDR_ERR_SUCCESS;
15515 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorInfo1 *r)
15517 uint32_t _ptr_print_processor_name;
15518 TALLOC_CTX *_mem_save_print_processor_name_0;
15519 if (ndr_flags & NDR_SCALARS) {
15520 NDR_CHECK(ndr_pull_align(ndr, 5));
15522 uint32_t _flags_save_string = ndr->flags;
15523 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15524 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
15525 if (_ptr_print_processor_name) {
15526 NDR_PULL_ALLOC(ndr, r->print_processor_name);
15527 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor_name, _ptr_print_processor_name));
15528 } else {
15529 r->print_processor_name = NULL;
15531 ndr->flags = _flags_save_string;
15533 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
15535 if (ndr_flags & NDR_BUFFERS) {
15537 uint32_t _flags_save_string = ndr->flags;
15538 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15539 if (r->print_processor_name) {
15540 uint32_t _relative_save_offset;
15541 _relative_save_offset = ndr->offset;
15542 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor_name));
15543 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15544 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor_name, 0);
15545 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor_name));
15546 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
15547 if (ndr->offset > ndr->relative_highest_offset) {
15548 ndr->relative_highest_offset = ndr->offset;
15550 ndr->offset = _relative_save_offset;
15552 ndr->flags = _flags_save_string;
15555 return NDR_ERR_SUCCESS;
15558 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorInfo1 *r)
15560 ndr_print_struct(ndr, name, "spoolss_PrintProcessorInfo1");
15561 ndr->depth++;
15562 ndr_print_ptr(ndr, "print_processor_name", r->print_processor_name);
15563 ndr->depth++;
15564 if (r->print_processor_name) {
15565 ndr_print_string(ndr, "print_processor_name", r->print_processor_name);
15567 ndr->depth--;
15568 ndr->depth--;
15571 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorInfo1(const struct spoolss_PrintProcessorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
15573 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorInfo1, ic);
15576 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorInfo *r)
15578 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
15580 uint32_t _flags_save_UNION = ndr->flags;
15581 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15582 if (ndr_flags & NDR_SCALARS) {
15583 int level = ndr_push_get_switch_value(ndr, r);
15584 NDR_CHECK(ndr_push_union_align(ndr, 5));
15585 switch (level) {
15586 case 1: {
15587 NDR_CHECK(ndr_push_align(ndr, 5));
15588 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15589 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
15590 break; }
15592 default: {
15593 break; }
15597 if (ndr_flags & NDR_BUFFERS) {
15598 int level = ndr_push_get_switch_value(ndr, r);
15599 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
15600 switch (level) {
15601 case 1:
15602 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
15603 break;
15605 default:
15606 break;
15610 ndr->flags = _flags_save_UNION;
15612 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
15613 return NDR_ERR_SUCCESS;
15616 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorInfo *r)
15618 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
15619 int level;
15621 uint32_t _flags_save_UNION = ndr->flags;
15622 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15623 level = ndr_pull_get_switch_value(ndr, r);
15624 if (ndr_flags & NDR_SCALARS) {
15625 NDR_CHECK(ndr_pull_union_align(ndr, 5));
15626 switch (level) {
15627 case 1: {
15628 NDR_CHECK(ndr_pull_align(ndr, 5));
15629 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15630 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
15631 break; }
15633 default: {
15634 break; }
15638 if (ndr_flags & NDR_BUFFERS) {
15639 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15640 switch (level) {
15641 case 1:
15642 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
15643 break;
15645 default:
15646 break;
15650 ndr->flags = _flags_save_UNION;
15652 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15653 return NDR_ERR_SUCCESS;
15656 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorInfo *r)
15658 int level;
15660 uint32_t _flags_save_UNION = ndr->flags;
15661 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15662 level = ndr_print_get_switch_value(ndr, r);
15663 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorInfo");
15664 switch (level) {
15665 case 1:
15666 ndr_print_spoolss_PrintProcessorInfo1(ndr, "info1", &r->info1);
15667 break;
15669 default:
15670 break;
15673 ndr->flags = _flags_save_UNION;
15677 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
15679 if (ndr_flags & NDR_SCALARS) {
15680 NDR_CHECK(ndr_push_align(ndr, 4));
15682 uint32_t _flags_save_string = ndr->flags;
15683 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15684 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
15685 ndr->flags = _flags_save_string;
15687 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15689 if (ndr_flags & NDR_BUFFERS) {
15691 return NDR_ERR_SUCCESS;
15694 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorDirectoryInfo1 *r)
15696 if (ndr_flags & NDR_SCALARS) {
15697 NDR_CHECK(ndr_pull_align(ndr, 4));
15699 uint32_t _flags_save_string = ndr->flags;
15700 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15701 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
15702 ndr->flags = _flags_save_string;
15704 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15706 if (ndr_flags & NDR_BUFFERS) {
15708 return NDR_ERR_SUCCESS;
15711 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
15713 ndr_print_struct(ndr, name, "spoolss_PrintProcessorDirectoryInfo1");
15714 ndr->depth++;
15715 ndr_print_string(ndr, "directory_name", r->directory_name);
15716 ndr->depth--;
15719 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
15721 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo1, ic);
15724 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorDirectoryInfo *r)
15726 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
15728 uint32_t _flags_save_UNION = ndr->flags;
15729 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15730 if (ndr_flags & NDR_SCALARS) {
15731 int level = ndr_push_get_switch_value(ndr, r);
15732 NDR_CHECK(ndr_push_union_align(ndr, 4));
15733 switch (level) {
15734 case 1: {
15735 NDR_CHECK(ndr_push_align(ndr, 4));
15736 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15737 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15738 break; }
15740 default: {
15741 NDR_CHECK(ndr_push_align(ndr, 4));
15742 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15743 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15744 break; }
15748 if (ndr_flags & NDR_BUFFERS) {
15749 int level = ndr_push_get_switch_value(ndr, r);
15750 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
15751 switch (level) {
15752 case 1:
15753 break;
15755 default:
15756 break;
15760 ndr->flags = _flags_save_UNION;
15762 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
15763 return NDR_ERR_SUCCESS;
15766 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorDirectoryInfo *r)
15768 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
15769 int level;
15771 uint32_t _flags_save_UNION = ndr->flags;
15772 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15773 level = ndr_pull_get_switch_value(ndr, r);
15774 if (ndr_flags & NDR_SCALARS) {
15775 NDR_CHECK(ndr_pull_union_align(ndr, 4));
15776 switch (level) {
15777 case 1: {
15778 NDR_CHECK(ndr_pull_align(ndr, 4));
15779 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15780 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15781 break; }
15783 default: {
15784 NDR_CHECK(ndr_pull_align(ndr, 4));
15785 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15786 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15787 break; }
15791 if (ndr_flags & NDR_BUFFERS) {
15792 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15793 switch (level) {
15794 case 1:
15795 break;
15797 default:
15798 break;
15802 ndr->flags = _flags_save_UNION;
15804 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15805 return NDR_ERR_SUCCESS;
15808 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorDirectoryInfo *r)
15810 int level;
15812 uint32_t _flags_save_UNION = ndr->flags;
15813 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15814 level = ndr_print_get_switch_value(ndr, r);
15815 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorDirectoryInfo");
15816 switch (level) {
15817 case 1:
15818 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
15819 break;
15821 default:
15822 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
15823 break;
15826 ndr->flags = _flags_save_UNION;
15830 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15832 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
15833 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo, ic);
15836 static enum ndr_err_code ndr_push_spoolss_DocumentInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DocumentInfo1 *r)
15838 if (ndr_flags & NDR_SCALARS) {
15839 NDR_CHECK(ndr_push_align(ndr, 5));
15840 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
15841 NDR_CHECK(ndr_push_unique_ptr(ndr, r->output_file));
15842 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
15843 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
15845 if (ndr_flags & NDR_BUFFERS) {
15846 if (r->document_name) {
15847 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
15848 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15849 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
15850 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15852 if (r->output_file) {
15853 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
15854 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15855 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
15856 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->output_file, ndr_charset_length(r->output_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15858 if (r->datatype) {
15859 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
15860 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15861 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
15862 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15865 return NDR_ERR_SUCCESS;
15868 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DocumentInfo1 *r)
15870 uint32_t _ptr_document_name;
15871 TALLOC_CTX *_mem_save_document_name_0;
15872 uint32_t _ptr_output_file;
15873 TALLOC_CTX *_mem_save_output_file_0;
15874 uint32_t _ptr_datatype;
15875 TALLOC_CTX *_mem_save_datatype_0;
15876 if (ndr_flags & NDR_SCALARS) {
15877 NDR_CHECK(ndr_pull_align(ndr, 5));
15878 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
15879 if (_ptr_document_name) {
15880 NDR_PULL_ALLOC(ndr, r->document_name);
15881 } else {
15882 r->document_name = NULL;
15884 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_output_file));
15885 if (_ptr_output_file) {
15886 NDR_PULL_ALLOC(ndr, r->output_file);
15887 } else {
15888 r->output_file = NULL;
15890 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
15891 if (_ptr_datatype) {
15892 NDR_PULL_ALLOC(ndr, r->datatype);
15893 } else {
15894 r->datatype = NULL;
15896 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
15898 if (ndr_flags & NDR_BUFFERS) {
15899 if (r->document_name) {
15900 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15901 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
15902 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
15903 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
15904 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
15905 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));
15907 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
15908 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
15909 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
15911 if (r->output_file) {
15912 _mem_save_output_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
15913 NDR_PULL_SET_MEM_CTX(ndr, r->output_file, 0);
15914 NDR_CHECK(ndr_pull_array_size(ndr, &r->output_file));
15915 NDR_CHECK(ndr_pull_array_length(ndr, &r->output_file));
15916 if (ndr_get_array_length(ndr, &r->output_file) > ndr_get_array_size(ndr, &r->output_file)) {
15917 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));
15919 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t)));
15920 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->output_file, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t), CH_UTF16));
15921 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_output_file_0, 0);
15923 if (r->datatype) {
15924 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
15925 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
15926 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
15927 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
15928 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
15929 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));
15931 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
15932 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
15933 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
15936 return NDR_ERR_SUCCESS;
15939 _PUBLIC_ void ndr_print_spoolss_DocumentInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DocumentInfo1 *r)
15941 ndr_print_struct(ndr, name, "spoolss_DocumentInfo1");
15942 ndr->depth++;
15943 ndr_print_ptr(ndr, "document_name", r->document_name);
15944 ndr->depth++;
15945 if (r->document_name) {
15946 ndr_print_string(ndr, "document_name", r->document_name);
15948 ndr->depth--;
15949 ndr_print_ptr(ndr, "output_file", r->output_file);
15950 ndr->depth++;
15951 if (r->output_file) {
15952 ndr_print_string(ndr, "output_file", r->output_file);
15954 ndr->depth--;
15955 ndr_print_ptr(ndr, "datatype", r->datatype);
15956 ndr->depth++;
15957 if (r->datatype) {
15958 ndr_print_string(ndr, "datatype", r->datatype);
15960 ndr->depth--;
15961 ndr->depth--;
15964 static enum ndr_err_code ndr_push_spoolss_DocumentInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DocumentInfo *r)
15966 if (ndr_flags & NDR_SCALARS) {
15967 int level = ndr_push_get_switch_value(ndr, r);
15968 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
15969 NDR_CHECK(ndr_push_union_align(ndr, 5));
15970 switch (level) {
15971 case 1: {
15972 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
15973 break; }
15975 case 2: {
15976 break; }
15978 case 3: {
15979 break; }
15981 default: {
15982 break; }
15986 if (ndr_flags & NDR_BUFFERS) {
15987 int level = ndr_push_get_switch_value(ndr, r);
15988 switch (level) {
15989 case 1:
15990 if (r->info1) {
15991 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
15993 break;
15995 case 2:
15996 break;
15998 case 3:
15999 break;
16001 default:
16002 break;
16006 return NDR_ERR_SUCCESS;
16009 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DocumentInfo *r)
16011 int level;
16012 uint32_t _level;
16013 TALLOC_CTX *_mem_save_info1_0;
16014 level = ndr_pull_get_switch_value(ndr, r);
16015 if (ndr_flags & NDR_SCALARS) {
16016 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
16017 if (_level != level) {
16018 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
16020 NDR_CHECK(ndr_pull_union_align(ndr, 5));
16021 switch (level) {
16022 case 1: {
16023 uint32_t _ptr_info1;
16024 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
16025 if (_ptr_info1) {
16026 NDR_PULL_ALLOC(ndr, r->info1);
16027 } else {
16028 r->info1 = NULL;
16030 break; }
16032 case 2: {
16033 break; }
16035 case 3: {
16036 break; }
16038 default: {
16039 break; }
16043 if (ndr_flags & NDR_BUFFERS) {
16044 switch (level) {
16045 case 1:
16046 if (r->info1) {
16047 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
16048 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
16049 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
16050 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
16052 break;
16054 case 2:
16055 break;
16057 case 3:
16058 break;
16060 default:
16061 break;
16065 return NDR_ERR_SUCCESS;
16068 _PUBLIC_ void ndr_print_spoolss_DocumentInfo(struct ndr_print *ndr, const char *name, const union spoolss_DocumentInfo *r)
16070 int level;
16071 level = ndr_print_get_switch_value(ndr, r);
16072 ndr_print_union(ndr, name, level, "spoolss_DocumentInfo");
16073 switch (level) {
16074 case 1:
16075 ndr_print_ptr(ndr, "info1", r->info1);
16076 ndr->depth++;
16077 if (r->info1) {
16078 ndr_print_spoolss_DocumentInfo1(ndr, "info1", r->info1);
16080 ndr->depth--;
16081 break;
16083 case 2:
16084 break;
16086 case 3:
16087 break;
16089 default:
16090 break;
16095 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersion(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersion *r)
16097 if (ndr_flags & NDR_SCALARS) {
16098 NDR_CHECK(ndr_push_align(ndr, 4));
16099 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersion(r, ndr->iconv_convenience, ndr->flags)));
16100 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
16101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
16102 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
16103 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
16105 uint32_t _flags_save_string = ndr->flags;
16106 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16108 struct ndr_push *_ndr_extra_string;
16109 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
16110 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
16111 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
16113 ndr->flags = _flags_save_string;
16115 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
16117 if (ndr_flags & NDR_BUFFERS) {
16119 return NDR_ERR_SUCCESS;
16122 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersion(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersion *r)
16124 if (ndr_flags & NDR_SCALARS) {
16125 NDR_CHECK(ndr_pull_align(ndr, 4));
16126 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
16127 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
16128 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
16129 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
16130 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->platform_id));
16132 uint32_t _flags_save_string = ndr->flags;
16133 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16135 struct ndr_pull *_ndr_extra_string;
16136 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
16137 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
16138 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
16140 ndr->flags = _flags_save_string;
16142 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
16144 if (ndr_flags & NDR_BUFFERS) {
16146 return NDR_ERR_SUCCESS;
16149 _PUBLIC_ void ndr_print_spoolss_OSVersion(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersion *r)
16151 ndr_print_struct(ndr, name, "spoolss_OSVersion");
16152 ndr->depth++;
16153 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);
16154 ndr_print_uint32(ndr, "major", r->major);
16155 ndr_print_uint32(ndr, "minor", r->minor);
16156 ndr_print_uint32(ndr, "build", r->build);
16157 ndr_print_uint32(ndr, "platform_id", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->platform_id);
16158 ndr_print_string(ndr, "extra_string", r->extra_string);
16159 ndr->depth--;
16162 _PUBLIC_ size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion *r, struct smb_iconv_convenience *ic, int flags)
16164 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion, ic);
16167 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersionEx(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersionEx *r)
16169 if (ndr_flags & NDR_SCALARS) {
16170 NDR_CHECK(ndr_push_align(ndr, 4));
16171 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersionEx(r, ndr->iconv_convenience, ndr->flags)));
16172 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
16173 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
16174 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
16175 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
16177 uint32_t _flags_save_string = ndr->flags;
16178 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16180 struct ndr_push *_ndr_extra_string;
16181 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
16182 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
16183 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
16185 ndr->flags = _flags_save_string;
16187 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->service_pack_major));
16188 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->service_pack_minor));
16189 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->suite_mask));
16190 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->product_type));
16191 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->reserved));
16192 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
16194 if (ndr_flags & NDR_BUFFERS) {
16196 return NDR_ERR_SUCCESS;
16199 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersionEx(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersionEx *r)
16201 if (ndr_flags & NDR_SCALARS) {
16202 NDR_CHECK(ndr_pull_align(ndr, 4));
16203 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
16204 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
16205 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
16206 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
16207 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->platform_id));
16209 uint32_t _flags_save_string = ndr->flags;
16210 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16212 struct ndr_pull *_ndr_extra_string;
16213 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
16214 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
16215 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
16217 ndr->flags = _flags_save_string;
16219 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->service_pack_major));
16220 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->service_pack_minor));
16221 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->suite_mask));
16222 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->product_type));
16223 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->reserved));
16224 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
16226 if (ndr_flags & NDR_BUFFERS) {
16228 return NDR_ERR_SUCCESS;
16231 _PUBLIC_ void ndr_print_spoolss_OSVersionEx(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersionEx *r)
16233 ndr_print_struct(ndr, name, "spoolss_OSVersionEx");
16234 ndr->depth++;
16235 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);
16236 ndr_print_uint32(ndr, "major", r->major);
16237 ndr_print_uint32(ndr, "minor", r->minor);
16238 ndr_print_uint32(ndr, "build", r->build);
16239 ndr_print_uint32(ndr, "platform_id", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->platform_id);
16240 ndr_print_string(ndr, "extra_string", r->extra_string);
16241 ndr_print_uint16(ndr, "service_pack_major", r->service_pack_major);
16242 ndr_print_uint16(ndr, "service_pack_minor", r->service_pack_minor);
16243 ndr_print_uint16(ndr, "suite_mask", r->suite_mask);
16244 ndr_print_uint8(ndr, "product_type", r->product_type);
16245 ndr_print_uint8(ndr, "reserved", r->reserved);
16246 ndr->depth--;
16249 _PUBLIC_ size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx *r, struct smb_iconv_convenience *ic, int flags)
16251 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx, ic);
16254 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterData *r)
16256 if (ndr_flags & NDR_SCALARS) {
16257 int level = ndr_push_get_switch_value(ndr, r);
16258 NDR_CHECK(ndr_push_union_align(ndr, 4));
16259 switch (level) {
16260 case REG_NONE: {
16261 break; }
16263 case REG_SZ: {
16265 uint32_t _flags_save_string = ndr->flags;
16266 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16267 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
16268 ndr->flags = _flags_save_string;
16270 break; }
16272 case REG_BINARY: {
16274 uint32_t _flags_save_DATA_BLOB = ndr->flags;
16275 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
16276 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
16277 ndr->flags = _flags_save_DATA_BLOB;
16279 break; }
16281 case REG_DWORD: {
16282 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
16283 break; }
16285 case REG_MULTI_SZ: {
16287 uint32_t _flags_save_string_array = ndr->flags;
16288 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16289 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
16290 ndr->flags = _flags_save_string_array;
16292 break; }
16294 default: {
16296 uint32_t _flags_save_DATA_BLOB = ndr->flags;
16297 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
16298 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
16299 ndr->flags = _flags_save_DATA_BLOB;
16301 break; }
16305 if (ndr_flags & NDR_BUFFERS) {
16306 int level = ndr_push_get_switch_value(ndr, r);
16307 switch (level) {
16308 case REG_NONE:
16309 break;
16311 case REG_SZ:
16312 break;
16314 case REG_BINARY:
16315 break;
16317 case REG_DWORD:
16318 break;
16320 case REG_MULTI_SZ:
16321 break;
16323 default:
16324 break;
16328 return NDR_ERR_SUCCESS;
16331 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterData *r)
16333 int level;
16334 level = ndr_pull_get_switch_value(ndr, r);
16335 if (ndr_flags & NDR_SCALARS) {
16336 NDR_CHECK(ndr_pull_union_align(ndr, 4));
16337 switch (level) {
16338 case REG_NONE: {
16339 break; }
16341 case REG_SZ: {
16343 uint32_t _flags_save_string = ndr->flags;
16344 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16345 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
16346 ndr->flags = _flags_save_string;
16348 break; }
16350 case REG_BINARY: {
16352 uint32_t _flags_save_DATA_BLOB = ndr->flags;
16353 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
16354 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
16355 ndr->flags = _flags_save_DATA_BLOB;
16357 break; }
16359 case REG_DWORD: {
16360 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
16361 break; }
16363 case REG_MULTI_SZ: {
16365 uint32_t _flags_save_string_array = ndr->flags;
16366 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16367 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
16368 ndr->flags = _flags_save_string_array;
16370 break; }
16372 default: {
16374 uint32_t _flags_save_DATA_BLOB = ndr->flags;
16375 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
16376 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
16377 ndr->flags = _flags_save_DATA_BLOB;
16379 break; }
16383 if (ndr_flags & NDR_BUFFERS) {
16384 switch (level) {
16385 case REG_NONE:
16386 break;
16388 case REG_SZ:
16389 break;
16391 case REG_BINARY:
16392 break;
16394 case REG_DWORD:
16395 break;
16397 case REG_MULTI_SZ:
16398 break;
16400 default:
16401 break;
16405 return NDR_ERR_SUCCESS;
16408 _PUBLIC_ void ndr_print_spoolss_PrinterData(struct ndr_print *ndr, const char *name, const union spoolss_PrinterData *r)
16410 int level;
16411 level = ndr_print_get_switch_value(ndr, r);
16412 ndr_print_union(ndr, name, level, "spoolss_PrinterData");
16413 switch (level) {
16414 case REG_NONE:
16415 break;
16417 case REG_SZ:
16418 ndr_print_string(ndr, "string", r->string);
16419 break;
16421 case REG_BINARY:
16422 ndr_print_DATA_BLOB(ndr, "binary", r->binary);
16423 break;
16425 case REG_DWORD:
16426 ndr_print_uint32(ndr, "value", r->value);
16427 break;
16429 case REG_MULTI_SZ:
16430 ndr_print_string_array(ndr, "string_array", r->string_array);
16431 break;
16433 default:
16434 ndr_print_DATA_BLOB(ndr, "data", r->data);
16435 break;
16440 static enum ndr_err_code ndr_push_spoolss_FormFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_FormFlags r)
16442 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
16443 return NDR_ERR_SUCCESS;
16446 static enum ndr_err_code ndr_pull_spoolss_FormFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_FormFlags *r)
16448 uint32_t v;
16449 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
16450 *r = v;
16451 return NDR_ERR_SUCCESS;
16454 _PUBLIC_ void ndr_print_spoolss_FormFlags(struct ndr_print *ndr, const char *name, enum spoolss_FormFlags r)
16456 const char *val = NULL;
16458 switch (r) {
16459 case SPOOLSS_FORM_USER: val = "SPOOLSS_FORM_USER"; break;
16460 case SPOOLSS_FORM_BUILTIN: val = "SPOOLSS_FORM_BUILTIN"; break;
16461 case SPOOLSS_FORM_PRINTER: val = "SPOOLSS_FORM_PRINTER"; break;
16463 ndr_print_enum(ndr, name, "ENUM", val, r);
16466 static enum ndr_err_code ndr_push_spoolss_FormSize(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormSize *r)
16468 if (ndr_flags & NDR_SCALARS) {
16469 NDR_CHECK(ndr_push_align(ndr, 4));
16470 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->width));
16471 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->height));
16472 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
16474 if (ndr_flags & NDR_BUFFERS) {
16476 return NDR_ERR_SUCCESS;
16479 static enum ndr_err_code ndr_pull_spoolss_FormSize(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormSize *r)
16481 if (ndr_flags & NDR_SCALARS) {
16482 NDR_CHECK(ndr_pull_align(ndr, 4));
16483 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->width));
16484 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->height));
16485 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
16487 if (ndr_flags & NDR_BUFFERS) {
16489 return NDR_ERR_SUCCESS;
16492 _PUBLIC_ void ndr_print_spoolss_FormSize(struct ndr_print *ndr, const char *name, const struct spoolss_FormSize *r)
16494 ndr_print_struct(ndr, name, "spoolss_FormSize");
16495 ndr->depth++;
16496 ndr_print_uint32(ndr, "width", r->width);
16497 ndr_print_uint32(ndr, "height", r->height);
16498 ndr->depth--;
16501 static enum ndr_err_code ndr_push_spoolss_FormArea(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormArea *r)
16503 if (ndr_flags & NDR_SCALARS) {
16504 NDR_CHECK(ndr_push_align(ndr, 4));
16505 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->left));
16506 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->top));
16507 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->right));
16508 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bottom));
16509 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
16511 if (ndr_flags & NDR_BUFFERS) {
16513 return NDR_ERR_SUCCESS;
16516 static enum ndr_err_code ndr_pull_spoolss_FormArea(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormArea *r)
16518 if (ndr_flags & NDR_SCALARS) {
16519 NDR_CHECK(ndr_pull_align(ndr, 4));
16520 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->left));
16521 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->top));
16522 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->right));
16523 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bottom));
16524 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
16526 if (ndr_flags & NDR_BUFFERS) {
16528 return NDR_ERR_SUCCESS;
16531 _PUBLIC_ void ndr_print_spoolss_FormArea(struct ndr_print *ndr, const char *name, const struct spoolss_FormArea *r)
16533 ndr_print_struct(ndr, name, "spoolss_FormArea");
16534 ndr->depth++;
16535 ndr_print_uint32(ndr, "left", r->left);
16536 ndr_print_uint32(ndr, "top", r->top);
16537 ndr_print_uint32(ndr, "right", r->right);
16538 ndr_print_uint32(ndr, "bottom", r->bottom);
16539 ndr->depth--;
16542 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo1 *r)
16544 if (ndr_flags & NDR_SCALARS) {
16545 NDR_CHECK(ndr_push_align(ndr, 5));
16546 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
16548 uint32_t _flags_save_string = ndr->flags;
16549 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16550 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
16551 ndr->flags = _flags_save_string;
16553 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16554 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16555 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16557 if (ndr_flags & NDR_BUFFERS) {
16559 uint32_t _flags_save_string = ndr->flags;
16560 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16561 if (r->form_name) {
16562 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->form_name));
16563 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
16564 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->form_name));
16566 ndr->flags = _flags_save_string;
16569 return NDR_ERR_SUCCESS;
16572 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo1 *r)
16574 uint32_t _ptr_form_name;
16575 TALLOC_CTX *_mem_save_form_name_0;
16576 if (ndr_flags & NDR_SCALARS) {
16577 NDR_CHECK(ndr_pull_align(ndr, 5));
16578 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16580 uint32_t _flags_save_string = ndr->flags;
16581 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16582 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16583 if (_ptr_form_name) {
16584 NDR_PULL_ALLOC(ndr, r->form_name);
16585 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
16586 } else {
16587 r->form_name = NULL;
16589 ndr->flags = _flags_save_string;
16591 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16592 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16593 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16595 if (ndr_flags & NDR_BUFFERS) {
16597 uint32_t _flags_save_string = ndr->flags;
16598 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16599 if (r->form_name) {
16600 uint32_t _relative_save_offset;
16601 _relative_save_offset = ndr->offset;
16602 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
16603 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16604 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16605 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
16606 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16607 if (ndr->offset > ndr->relative_highest_offset) {
16608 ndr->relative_highest_offset = ndr->offset;
16610 ndr->offset = _relative_save_offset;
16612 ndr->flags = _flags_save_string;
16615 return NDR_ERR_SUCCESS;
16618 _PUBLIC_ void ndr_print_spoolss_FormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo1 *r)
16620 ndr_print_struct(ndr, name, "spoolss_FormInfo1");
16621 ndr->depth++;
16622 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16623 ndr_print_ptr(ndr, "form_name", r->form_name);
16624 ndr->depth++;
16625 if (r->form_name) {
16626 ndr_print_string(ndr, "form_name", r->form_name);
16628 ndr->depth--;
16629 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16630 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16631 ndr->depth--;
16634 _PUBLIC_ size_t ndr_size_spoolss_FormInfo1(const struct spoolss_FormInfo1 *r, struct smb_iconv_convenience *ic, int flags)
16636 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo1, ic);
16639 static enum ndr_err_code ndr_push_spoolss_FormStringType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
16641 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16642 return NDR_ERR_SUCCESS;
16645 static enum ndr_err_code ndr_pull_spoolss_FormStringType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
16647 uint32_t v;
16648 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16649 *r = v;
16650 return NDR_ERR_SUCCESS;
16653 _PUBLIC_ void ndr_print_spoolss_FormStringType(struct ndr_print *ndr, const char *name, uint32_t r)
16655 ndr_print_uint32(ndr, name, r);
16656 ndr->depth++;
16657 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE, r);
16658 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL, r);
16659 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR, r);
16660 ndr->depth--;
16663 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo2 *r)
16665 if (ndr_flags & NDR_SCALARS) {
16666 NDR_CHECK(ndr_push_align(ndr, 5));
16667 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
16669 uint32_t _flags_save_string = ndr->flags;
16670 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16671 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
16672 ndr->flags = _flags_save_string;
16674 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16675 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16677 uint32_t _flags_save_string = ndr->flags;
16678 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16679 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->keyword));
16680 ndr->flags = _flags_save_string;
16682 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
16684 uint32_t _flags_save_string = ndr->flags;
16685 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16686 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->mui_dll));
16687 ndr->flags = _flags_save_string;
16689 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
16691 uint32_t _flags_save_string = ndr->flags;
16692 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16693 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->display_name));
16694 ndr->flags = _flags_save_string;
16696 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lang_id));
16697 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unused));
16698 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16700 if (ndr_flags & NDR_BUFFERS) {
16702 uint32_t _flags_save_string = ndr->flags;
16703 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16704 if (r->form_name) {
16705 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->form_name));
16706 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
16707 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->form_name));
16709 ndr->flags = _flags_save_string;
16712 uint32_t _flags_save_string = ndr->flags;
16713 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16714 if (r->keyword) {
16715 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->keyword));
16716 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->keyword));
16717 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->keyword));
16719 ndr->flags = _flags_save_string;
16722 uint32_t _flags_save_string = ndr->flags;
16723 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16724 if (r->mui_dll) {
16725 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->mui_dll));
16726 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mui_dll));
16727 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->mui_dll));
16729 ndr->flags = _flags_save_string;
16732 uint32_t _flags_save_string = ndr->flags;
16733 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16734 if (r->display_name) {
16735 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->display_name));
16736 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->display_name));
16737 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->display_name));
16739 ndr->flags = _flags_save_string;
16742 return NDR_ERR_SUCCESS;
16745 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo2 *r)
16747 uint32_t _ptr_form_name;
16748 TALLOC_CTX *_mem_save_form_name_0;
16749 uint32_t _ptr_keyword;
16750 TALLOC_CTX *_mem_save_keyword_0;
16751 uint32_t _ptr_mui_dll;
16752 TALLOC_CTX *_mem_save_mui_dll_0;
16753 uint32_t _ptr_display_name;
16754 TALLOC_CTX *_mem_save_display_name_0;
16755 if (ndr_flags & NDR_SCALARS) {
16756 NDR_CHECK(ndr_pull_align(ndr, 5));
16757 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16759 uint32_t _flags_save_string = ndr->flags;
16760 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16761 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16762 if (_ptr_form_name) {
16763 NDR_PULL_ALLOC(ndr, r->form_name);
16764 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
16765 } else {
16766 r->form_name = NULL;
16768 ndr->flags = _flags_save_string;
16770 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16771 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16773 uint32_t _flags_save_string = ndr->flags;
16774 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16775 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
16776 if (_ptr_keyword) {
16777 NDR_PULL_ALLOC(ndr, r->keyword);
16778 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->keyword, _ptr_keyword));
16779 } else {
16780 r->keyword = NULL;
16782 ndr->flags = _flags_save_string;
16784 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
16786 uint32_t _flags_save_string = ndr->flags;
16787 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16788 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
16789 if (_ptr_mui_dll) {
16790 NDR_PULL_ALLOC(ndr, r->mui_dll);
16791 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->mui_dll, _ptr_mui_dll));
16792 } else {
16793 r->mui_dll = NULL;
16795 ndr->flags = _flags_save_string;
16797 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
16799 uint32_t _flags_save_string = ndr->flags;
16800 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16801 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
16802 if (_ptr_display_name) {
16803 NDR_PULL_ALLOC(ndr, r->display_name);
16804 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->display_name, _ptr_display_name));
16805 } else {
16806 r->display_name = NULL;
16808 ndr->flags = _flags_save_string;
16810 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lang_id));
16811 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unused));
16812 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16814 if (ndr_flags & NDR_BUFFERS) {
16816 uint32_t _flags_save_string = ndr->flags;
16817 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16818 if (r->form_name) {
16819 uint32_t _relative_save_offset;
16820 _relative_save_offset = ndr->offset;
16821 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
16822 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16823 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16824 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
16825 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16826 if (ndr->offset > ndr->relative_highest_offset) {
16827 ndr->relative_highest_offset = ndr->offset;
16829 ndr->offset = _relative_save_offset;
16831 ndr->flags = _flags_save_string;
16834 uint32_t _flags_save_string = ndr->flags;
16835 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16836 if (r->keyword) {
16837 uint32_t _relative_save_offset;
16838 _relative_save_offset = ndr->offset;
16839 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->keyword));
16840 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
16841 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
16842 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->keyword));
16843 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
16844 if (ndr->offset > ndr->relative_highest_offset) {
16845 ndr->relative_highest_offset = ndr->offset;
16847 ndr->offset = _relative_save_offset;
16849 ndr->flags = _flags_save_string;
16852 uint32_t _flags_save_string = ndr->flags;
16853 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16854 if (r->mui_dll) {
16855 uint32_t _relative_save_offset;
16856 _relative_save_offset = ndr->offset;
16857 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->mui_dll));
16858 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
16859 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
16860 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mui_dll));
16861 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
16862 if (ndr->offset > ndr->relative_highest_offset) {
16863 ndr->relative_highest_offset = ndr->offset;
16865 ndr->offset = _relative_save_offset;
16867 ndr->flags = _flags_save_string;
16870 uint32_t _flags_save_string = ndr->flags;
16871 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16872 if (r->display_name) {
16873 uint32_t _relative_save_offset;
16874 _relative_save_offset = ndr->offset;
16875 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->display_name));
16876 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16877 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
16878 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->display_name));
16879 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
16880 if (ndr->offset > ndr->relative_highest_offset) {
16881 ndr->relative_highest_offset = ndr->offset;
16883 ndr->offset = _relative_save_offset;
16885 ndr->flags = _flags_save_string;
16888 return NDR_ERR_SUCCESS;
16891 _PUBLIC_ void ndr_print_spoolss_FormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo2 *r)
16893 ndr_print_struct(ndr, name, "spoolss_FormInfo2");
16894 ndr->depth++;
16895 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16896 ndr_print_ptr(ndr, "form_name", r->form_name);
16897 ndr->depth++;
16898 if (r->form_name) {
16899 ndr_print_string(ndr, "form_name", r->form_name);
16901 ndr->depth--;
16902 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16903 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16904 ndr_print_ptr(ndr, "keyword", r->keyword);
16905 ndr->depth++;
16906 if (r->keyword) {
16907 ndr_print_string(ndr, "keyword", r->keyword);
16909 ndr->depth--;
16910 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
16911 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
16912 ndr->depth++;
16913 if (r->mui_dll) {
16914 ndr_print_string(ndr, "mui_dll", r->mui_dll);
16916 ndr->depth--;
16917 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
16918 ndr_print_ptr(ndr, "display_name", r->display_name);
16919 ndr->depth++;
16920 if (r->display_name) {
16921 ndr_print_string(ndr, "display_name", r->display_name);
16923 ndr->depth--;
16924 ndr_print_uint16(ndr, "lang_id", r->lang_id);
16925 ndr_print_uint16(ndr, "unused", r->unused);
16926 ndr->depth--;
16929 _PUBLIC_ size_t ndr_size_spoolss_FormInfo2(const struct spoolss_FormInfo2 *r, struct smb_iconv_convenience *ic, int flags)
16931 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo2, ic);
16934 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_FormInfo *r)
16936 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16938 uint32_t _flags_save_UNION = ndr->flags;
16939 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
16940 if (ndr_flags & NDR_SCALARS) {
16941 int level = ndr_push_get_switch_value(ndr, r);
16942 NDR_CHECK(ndr_push_union_align(ndr, 5));
16943 switch (level) {
16944 case 1: {
16945 NDR_CHECK(ndr_push_align(ndr, 5));
16946 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16947 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
16948 break; }
16950 case 2: {
16951 NDR_CHECK(ndr_push_align(ndr, 5));
16952 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16953 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
16954 break; }
16956 default: {
16957 break; }
16961 if (ndr_flags & NDR_BUFFERS) {
16962 int level = ndr_push_get_switch_value(ndr, r);
16963 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16964 switch (level) {
16965 case 1:
16966 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
16967 break;
16969 case 2:
16970 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
16971 break;
16973 default:
16974 break;
16978 ndr->flags = _flags_save_UNION;
16980 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16981 return NDR_ERR_SUCCESS;
16984 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_FormInfo *r)
16986 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16987 int level;
16989 uint32_t _flags_save_UNION = ndr->flags;
16990 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
16991 level = ndr_pull_get_switch_value(ndr, r);
16992 if (ndr_flags & NDR_SCALARS) {
16993 NDR_CHECK(ndr_pull_union_align(ndr, 5));
16994 switch (level) {
16995 case 1: {
16996 NDR_CHECK(ndr_pull_align(ndr, 5));
16997 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16998 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
16999 break; }
17001 case 2: {
17002 NDR_CHECK(ndr_pull_align(ndr, 5));
17003 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17004 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
17005 break; }
17007 default: {
17008 break; }
17012 if (ndr_flags & NDR_BUFFERS) {
17013 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
17014 switch (level) {
17015 case 1:
17016 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
17017 break;
17019 case 2:
17020 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
17021 break;
17023 default:
17024 break;
17028 ndr->flags = _flags_save_UNION;
17030 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17031 return NDR_ERR_SUCCESS;
17034 _PUBLIC_ void ndr_print_spoolss_FormInfo(struct ndr_print *ndr, const char *name, const union spoolss_FormInfo *r)
17036 int level;
17038 uint32_t _flags_save_UNION = ndr->flags;
17039 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
17040 level = ndr_print_get_switch_value(ndr, r);
17041 ndr_print_union(ndr, name, level, "spoolss_FormInfo");
17042 switch (level) {
17043 case 1:
17044 ndr_print_spoolss_FormInfo1(ndr, "info1", &r->info1);
17045 break;
17047 case 2:
17048 ndr_print_spoolss_FormInfo2(ndr, "info2", &r->info2);
17049 break;
17051 default:
17052 break;
17055 ndr->flags = _flags_save_UNION;
17059 _PUBLIC_ size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
17061 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
17062 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo, ic);
17065 static enum ndr_err_code ndr_push_spoolss_AddFormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo1 *r)
17067 if (ndr_flags & NDR_SCALARS) {
17068 NDR_CHECK(ndr_push_align(ndr, 5));
17069 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
17070 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
17071 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
17072 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
17073 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17075 if (ndr_flags & NDR_BUFFERS) {
17076 if (r->form_name) {
17077 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
17078 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
17079 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
17080 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17083 return NDR_ERR_SUCCESS;
17086 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo1 *r)
17088 uint32_t _ptr_form_name;
17089 TALLOC_CTX *_mem_save_form_name_0;
17090 if (ndr_flags & NDR_SCALARS) {
17091 NDR_CHECK(ndr_pull_align(ndr, 5));
17092 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
17093 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
17094 if (_ptr_form_name) {
17095 NDR_PULL_ALLOC(ndr, r->form_name);
17096 } else {
17097 r->form_name = NULL;
17099 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
17100 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
17101 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17103 if (ndr_flags & NDR_BUFFERS) {
17104 if (r->form_name) {
17105 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17106 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
17107 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
17108 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
17109 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
17110 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));
17112 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
17113 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
17114 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
17117 return NDR_ERR_SUCCESS;
17120 _PUBLIC_ void ndr_print_spoolss_AddFormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo1 *r)
17122 ndr_print_struct(ndr, name, "spoolss_AddFormInfo1");
17123 ndr->depth++;
17124 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
17125 ndr_print_ptr(ndr, "form_name", r->form_name);
17126 ndr->depth++;
17127 if (r->form_name) {
17128 ndr_print_string(ndr, "form_name", r->form_name);
17130 ndr->depth--;
17131 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
17132 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
17133 ndr->depth--;
17136 static enum ndr_err_code ndr_push_spoolss_AddFormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo2 *r)
17138 if (ndr_flags & NDR_SCALARS) {
17139 NDR_CHECK(ndr_push_align(ndr, 5));
17140 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
17141 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
17142 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
17143 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
17144 NDR_CHECK(ndr_push_unique_ptr(ndr, r->keyword));
17145 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
17146 NDR_CHECK(ndr_push_unique_ptr(ndr, r->mui_dll));
17147 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
17148 NDR_CHECK(ndr_push_unique_ptr(ndr, r->display_name));
17149 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
17150 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17152 if (ndr_flags & NDR_BUFFERS) {
17153 if (r->form_name) {
17154 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
17155 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
17156 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
17157 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17159 if (r->keyword) {
17160 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
17161 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
17162 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
17163 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->keyword, ndr_charset_length(r->keyword, CH_DOS), sizeof(uint8_t), CH_DOS));
17165 if (r->mui_dll) {
17166 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
17167 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
17168 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
17169 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->mui_dll, ndr_charset_length(r->mui_dll, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17171 if (r->display_name) {
17172 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
17173 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
17174 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
17175 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->display_name, ndr_charset_length(r->display_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17178 return NDR_ERR_SUCCESS;
17181 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo2 *r)
17183 uint32_t _ptr_form_name;
17184 TALLOC_CTX *_mem_save_form_name_0;
17185 uint32_t _ptr_keyword;
17186 TALLOC_CTX *_mem_save_keyword_0;
17187 uint32_t _ptr_mui_dll;
17188 TALLOC_CTX *_mem_save_mui_dll_0;
17189 uint32_t _ptr_display_name;
17190 TALLOC_CTX *_mem_save_display_name_0;
17191 if (ndr_flags & NDR_SCALARS) {
17192 NDR_CHECK(ndr_pull_align(ndr, 5));
17193 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
17194 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
17195 if (_ptr_form_name) {
17196 NDR_PULL_ALLOC(ndr, r->form_name);
17197 } else {
17198 r->form_name = NULL;
17200 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
17201 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
17202 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
17203 if (_ptr_keyword) {
17204 NDR_PULL_ALLOC(ndr, r->keyword);
17205 } else {
17206 r->keyword = NULL;
17208 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
17209 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
17210 if (_ptr_mui_dll) {
17211 NDR_PULL_ALLOC(ndr, r->mui_dll);
17212 } else {
17213 r->mui_dll = NULL;
17215 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
17216 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
17217 if (_ptr_display_name) {
17218 NDR_PULL_ALLOC(ndr, r->display_name);
17219 } else {
17220 r->display_name = NULL;
17222 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
17223 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17225 if (ndr_flags & NDR_BUFFERS) {
17226 if (r->form_name) {
17227 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17228 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
17229 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
17230 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
17231 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
17232 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));
17234 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
17235 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
17236 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
17238 if (r->keyword) {
17239 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
17240 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
17241 NDR_CHECK(ndr_pull_array_size(ndr, &r->keyword));
17242 NDR_CHECK(ndr_pull_array_length(ndr, &r->keyword));
17243 if (ndr_get_array_length(ndr, &r->keyword) > ndr_get_array_size(ndr, &r->keyword)) {
17244 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));
17246 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t)));
17247 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->keyword, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t), CH_DOS));
17248 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
17250 if (r->mui_dll) {
17251 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
17252 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
17253 NDR_CHECK(ndr_pull_array_size(ndr, &r->mui_dll));
17254 NDR_CHECK(ndr_pull_array_length(ndr, &r->mui_dll));
17255 if (ndr_get_array_length(ndr, &r->mui_dll) > ndr_get_array_size(ndr, &r->mui_dll)) {
17256 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));
17258 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t)));
17259 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->mui_dll, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t), CH_UTF16));
17260 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
17262 if (r->display_name) {
17263 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17264 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
17265 NDR_CHECK(ndr_pull_array_size(ndr, &r->display_name));
17266 NDR_CHECK(ndr_pull_array_length(ndr, &r->display_name));
17267 if (ndr_get_array_length(ndr, &r->display_name) > ndr_get_array_size(ndr, &r->display_name)) {
17268 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));
17270 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t)));
17271 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->display_name, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t), CH_UTF16));
17272 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
17275 return NDR_ERR_SUCCESS;
17278 _PUBLIC_ void ndr_print_spoolss_AddFormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo2 *r)
17280 ndr_print_struct(ndr, name, "spoolss_AddFormInfo2");
17281 ndr->depth++;
17282 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
17283 ndr_print_ptr(ndr, "form_name", r->form_name);
17284 ndr->depth++;
17285 if (r->form_name) {
17286 ndr_print_string(ndr, "form_name", r->form_name);
17288 ndr->depth--;
17289 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
17290 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
17291 ndr_print_ptr(ndr, "keyword", r->keyword);
17292 ndr->depth++;
17293 if (r->keyword) {
17294 ndr_print_string(ndr, "keyword", r->keyword);
17296 ndr->depth--;
17297 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
17298 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
17299 ndr->depth++;
17300 if (r->mui_dll) {
17301 ndr_print_string(ndr, "mui_dll", r->mui_dll);
17303 ndr->depth--;
17304 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
17305 ndr_print_ptr(ndr, "display_name", r->display_name);
17306 ndr->depth++;
17307 if (r->display_name) {
17308 ndr_print_string(ndr, "display_name", r->display_name);
17310 ndr->depth--;
17311 ndr_print_uint32(ndr, "lang_id", r->lang_id);
17312 ndr->depth--;
17315 static enum ndr_err_code ndr_push_spoolss_AddFormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddFormInfo *r)
17317 if (ndr_flags & NDR_SCALARS) {
17318 int level = ndr_push_get_switch_value(ndr, r);
17319 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
17320 NDR_CHECK(ndr_push_union_align(ndr, 5));
17321 switch (level) {
17322 case 1: {
17323 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
17324 break; }
17326 case 2: {
17327 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
17328 break; }
17330 default:
17331 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
17334 if (ndr_flags & NDR_BUFFERS) {
17335 int level = ndr_push_get_switch_value(ndr, r);
17336 switch (level) {
17337 case 1:
17338 if (r->info1) {
17339 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
17341 break;
17343 case 2:
17344 if (r->info2) {
17345 NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
17347 break;
17349 default:
17350 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
17353 return NDR_ERR_SUCCESS;
17356 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddFormInfo *r)
17358 int level;
17359 uint32_t _level;
17360 TALLOC_CTX *_mem_save_info1_0;
17361 TALLOC_CTX *_mem_save_info2_0;
17362 level = ndr_pull_get_switch_value(ndr, r);
17363 if (ndr_flags & NDR_SCALARS) {
17364 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
17365 if (_level != level) {
17366 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
17368 NDR_CHECK(ndr_pull_union_align(ndr, 5));
17369 switch (level) {
17370 case 1: {
17371 uint32_t _ptr_info1;
17372 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
17373 if (_ptr_info1) {
17374 NDR_PULL_ALLOC(ndr, r->info1);
17375 } else {
17376 r->info1 = NULL;
17378 break; }
17380 case 2: {
17381 uint32_t _ptr_info2;
17382 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
17383 if (_ptr_info2) {
17384 NDR_PULL_ALLOC(ndr, r->info2);
17385 } else {
17386 r->info2 = NULL;
17388 break; }
17390 default:
17391 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
17394 if (ndr_flags & NDR_BUFFERS) {
17395 switch (level) {
17396 case 1:
17397 if (r->info1) {
17398 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
17399 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
17400 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
17401 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
17403 break;
17405 case 2:
17406 if (r->info2) {
17407 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
17408 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
17409 NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
17410 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
17412 break;
17414 default:
17415 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
17418 return NDR_ERR_SUCCESS;
17421 _PUBLIC_ void ndr_print_spoolss_AddFormInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddFormInfo *r)
17423 int level;
17424 level = ndr_print_get_switch_value(ndr, r);
17425 ndr_print_union(ndr, name, level, "spoolss_AddFormInfo");
17426 switch (level) {
17427 case 1:
17428 ndr_print_ptr(ndr, "info1", r->info1);
17429 ndr->depth++;
17430 if (r->info1) {
17431 ndr_print_spoolss_AddFormInfo1(ndr, "info1", r->info1);
17433 ndr->depth--;
17434 break;
17436 case 2:
17437 ndr_print_ptr(ndr, "info2", r->info2);
17438 ndr->depth++;
17439 if (r->info2) {
17440 ndr_print_spoolss_AddFormInfo2(ndr, "info2", r->info2);
17442 ndr->depth--;
17443 break;
17445 default:
17446 ndr_print_bad_level(ndr, name, level);
17450 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo1 *r)
17452 if (ndr_flags & NDR_SCALARS) {
17453 NDR_CHECK(ndr_push_align(ndr, 5));
17455 uint32_t _flags_save_string = ndr->flags;
17456 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17457 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
17458 ndr->flags = _flags_save_string;
17460 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17462 if (ndr_flags & NDR_BUFFERS) {
17464 uint32_t _flags_save_string = ndr->flags;
17465 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17466 if (r->port_name) {
17467 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->port_name));
17468 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
17469 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->port_name));
17471 ndr->flags = _flags_save_string;
17474 return NDR_ERR_SUCCESS;
17477 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo1 *r)
17479 uint32_t _ptr_port_name;
17480 TALLOC_CTX *_mem_save_port_name_0;
17481 if (ndr_flags & NDR_SCALARS) {
17482 NDR_CHECK(ndr_pull_align(ndr, 5));
17484 uint32_t _flags_save_string = ndr->flags;
17485 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17486 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
17487 if (_ptr_port_name) {
17488 NDR_PULL_ALLOC(ndr, r->port_name);
17489 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
17490 } else {
17491 r->port_name = NULL;
17493 ndr->flags = _flags_save_string;
17495 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17497 if (ndr_flags & NDR_BUFFERS) {
17499 uint32_t _flags_save_string = ndr->flags;
17500 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17501 if (r->port_name) {
17502 uint32_t _relative_save_offset;
17503 _relative_save_offset = ndr->offset;
17504 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
17505 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17506 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
17507 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
17508 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
17509 if (ndr->offset > ndr->relative_highest_offset) {
17510 ndr->relative_highest_offset = ndr->offset;
17512 ndr->offset = _relative_save_offset;
17514 ndr->flags = _flags_save_string;
17517 return NDR_ERR_SUCCESS;
17520 _PUBLIC_ void ndr_print_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo1 *r)
17522 ndr_print_struct(ndr, name, "spoolss_PortInfo1");
17523 ndr->depth++;
17524 ndr_print_ptr(ndr, "port_name", r->port_name);
17525 ndr->depth++;
17526 if (r->port_name) {
17527 ndr_print_string(ndr, "port_name", r->port_name);
17529 ndr->depth--;
17530 ndr->depth--;
17533 _PUBLIC_ size_t ndr_size_spoolss_PortInfo1(const struct spoolss_PortInfo1 *r, struct smb_iconv_convenience *ic, int flags)
17535 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo1, ic);
17538 static enum ndr_err_code ndr_push_spoolss_PortType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
17540 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17541 return NDR_ERR_SUCCESS;
17544 static enum ndr_err_code ndr_pull_spoolss_PortType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17546 uint32_t v;
17547 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17548 *r = v;
17549 return NDR_ERR_SUCCESS;
17552 _PUBLIC_ void ndr_print_spoolss_PortType(struct ndr_print *ndr, const char *name, uint32_t r)
17554 ndr_print_uint32(ndr, name, r);
17555 ndr->depth++;
17556 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE, r);
17557 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ, r);
17558 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED, r);
17559 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED, r);
17560 ndr->depth--;
17563 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo2 *r)
17565 if (ndr_flags & NDR_SCALARS) {
17566 NDR_CHECK(ndr_push_align(ndr, 5));
17568 uint32_t _flags_save_string = ndr->flags;
17569 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17570 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
17571 ndr->flags = _flags_save_string;
17574 uint32_t _flags_save_string = ndr->flags;
17575 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17576 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
17577 ndr->flags = _flags_save_string;
17580 uint32_t _flags_save_string = ndr->flags;
17581 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17582 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
17583 ndr->flags = _flags_save_string;
17585 NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
17586 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
17587 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17589 if (ndr_flags & NDR_BUFFERS) {
17591 uint32_t _flags_save_string = ndr->flags;
17592 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17593 if (r->port_name) {
17594 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->port_name));
17595 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
17596 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->port_name));
17598 ndr->flags = _flags_save_string;
17601 uint32_t _flags_save_string = ndr->flags;
17602 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17603 if (r->monitor_name) {
17604 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
17605 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
17606 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
17608 ndr->flags = _flags_save_string;
17611 uint32_t _flags_save_string = ndr->flags;
17612 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17613 if (r->description) {
17614 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->description));
17615 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
17616 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->description));
17618 ndr->flags = _flags_save_string;
17621 return NDR_ERR_SUCCESS;
17624 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo2 *r)
17626 uint32_t _ptr_port_name;
17627 TALLOC_CTX *_mem_save_port_name_0;
17628 uint32_t _ptr_monitor_name;
17629 TALLOC_CTX *_mem_save_monitor_name_0;
17630 uint32_t _ptr_description;
17631 TALLOC_CTX *_mem_save_description_0;
17632 if (ndr_flags & NDR_SCALARS) {
17633 NDR_CHECK(ndr_pull_align(ndr, 5));
17635 uint32_t _flags_save_string = ndr->flags;
17636 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17637 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
17638 if (_ptr_port_name) {
17639 NDR_PULL_ALLOC(ndr, r->port_name);
17640 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
17641 } else {
17642 r->port_name = NULL;
17644 ndr->flags = _flags_save_string;
17647 uint32_t _flags_save_string = ndr->flags;
17648 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17649 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
17650 if (_ptr_monitor_name) {
17651 NDR_PULL_ALLOC(ndr, r->monitor_name);
17652 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
17653 } else {
17654 r->monitor_name = NULL;
17656 ndr->flags = _flags_save_string;
17659 uint32_t _flags_save_string = ndr->flags;
17660 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17661 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
17662 if (_ptr_description) {
17663 NDR_PULL_ALLOC(ndr, r->description);
17664 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
17665 } else {
17666 r->description = NULL;
17668 ndr->flags = _flags_save_string;
17670 NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
17671 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
17672 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17674 if (ndr_flags & NDR_BUFFERS) {
17676 uint32_t _flags_save_string = ndr->flags;
17677 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17678 if (r->port_name) {
17679 uint32_t _relative_save_offset;
17680 _relative_save_offset = ndr->offset;
17681 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
17682 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17683 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
17684 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
17685 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
17686 if (ndr->offset > ndr->relative_highest_offset) {
17687 ndr->relative_highest_offset = ndr->offset;
17689 ndr->offset = _relative_save_offset;
17691 ndr->flags = _flags_save_string;
17694 uint32_t _flags_save_string = ndr->flags;
17695 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17696 if (r->monitor_name) {
17697 uint32_t _relative_save_offset;
17698 _relative_save_offset = ndr->offset;
17699 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
17700 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17701 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
17702 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
17703 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
17704 if (ndr->offset > ndr->relative_highest_offset) {
17705 ndr->relative_highest_offset = ndr->offset;
17707 ndr->offset = _relative_save_offset;
17709 ndr->flags = _flags_save_string;
17712 uint32_t _flags_save_string = ndr->flags;
17713 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17714 if (r->description) {
17715 uint32_t _relative_save_offset;
17716 _relative_save_offset = ndr->offset;
17717 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
17718 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
17719 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
17720 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
17721 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
17722 if (ndr->offset > ndr->relative_highest_offset) {
17723 ndr->relative_highest_offset = ndr->offset;
17725 ndr->offset = _relative_save_offset;
17727 ndr->flags = _flags_save_string;
17730 return NDR_ERR_SUCCESS;
17733 _PUBLIC_ void ndr_print_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo2 *r)
17735 ndr_print_struct(ndr, name, "spoolss_PortInfo2");
17736 ndr->depth++;
17737 ndr_print_ptr(ndr, "port_name", r->port_name);
17738 ndr->depth++;
17739 if (r->port_name) {
17740 ndr_print_string(ndr, "port_name", r->port_name);
17742 ndr->depth--;
17743 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
17744 ndr->depth++;
17745 if (r->monitor_name) {
17746 ndr_print_string(ndr, "monitor_name", r->monitor_name);
17748 ndr->depth--;
17749 ndr_print_ptr(ndr, "description", r->description);
17750 ndr->depth++;
17751 if (r->description) {
17752 ndr_print_string(ndr, "description", r->description);
17754 ndr->depth--;
17755 ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
17756 ndr_print_uint32(ndr, "reserved", r->reserved);
17757 ndr->depth--;
17760 _PUBLIC_ size_t ndr_size_spoolss_PortInfo2(const struct spoolss_PortInfo2 *r, struct smb_iconv_convenience *ic, int flags)
17762 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo2, ic);
17765 static enum ndr_err_code ndr_push_spoolss_PortStatus(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortStatus r)
17767 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
17768 return NDR_ERR_SUCCESS;
17771 static enum ndr_err_code ndr_pull_spoolss_PortStatus(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortStatus *r)
17773 uint32_t v;
17774 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
17775 *r = v;
17776 return NDR_ERR_SUCCESS;
17779 _PUBLIC_ void ndr_print_spoolss_PortStatus(struct ndr_print *ndr, const char *name, enum spoolss_PortStatus r)
17781 const char *val = NULL;
17783 switch (r) {
17784 case PORT_STATUS_CLEAR: val = "PORT_STATUS_CLEAR"; break;
17785 case PORT_STATUS_OFFLINE: val = "PORT_STATUS_OFFLINE"; break;
17786 case PORT_STATUS_PAPER_JAM: val = "PORT_STATUS_PAPER_JAM"; break;
17787 case PORT_STATUS_PAPER_OUT: val = "PORT_STATUS_PAPER_OUT"; break;
17788 case PORT_STATUS_OUTPUT_BIN_FULL: val = "PORT_STATUS_OUTPUT_BIN_FULL"; break;
17789 case PORT_STATUS_PAPER_PROBLEM: val = "PORT_STATUS_PAPER_PROBLEM"; break;
17790 case PORT_STATUS_NO_TONER: val = "PORT_STATUS_NO_TONER"; break;
17791 case PORT_STATUS_DOOR_OPEN: val = "PORT_STATUS_DOOR_OPEN"; break;
17792 case PORT_STATUS_USER_INTERVENTION: val = "PORT_STATUS_USER_INTERVENTION"; break;
17793 case PORT_STATUS_OUT_OF_MEMORY: val = "PORT_STATUS_OUT_OF_MEMORY"; break;
17794 case PORT_STATUS_TONER_LOW: val = "PORT_STATUS_TONER_LOW"; break;
17795 case PORT_STATUS_WARMING_UP: val = "PORT_STATUS_WARMING_UP"; break;
17796 case PORT_STATUS_POWER_SAVE: val = "PORT_STATUS_POWER_SAVE"; break;
17798 ndr_print_enum(ndr, name, "ENUM", val, r);
17801 static enum ndr_err_code ndr_push_spoolss_PortSeverity(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortSeverity r)
17803 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
17804 return NDR_ERR_SUCCESS;
17807 static enum ndr_err_code ndr_pull_spoolss_PortSeverity(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortSeverity *r)
17809 uint32_t v;
17810 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
17811 *r = v;
17812 return NDR_ERR_SUCCESS;
17815 _PUBLIC_ void ndr_print_spoolss_PortSeverity(struct ndr_print *ndr, const char *name, enum spoolss_PortSeverity r)
17817 const char *val = NULL;
17819 switch (r) {
17820 case PORT_STATUS_TYPE_ERROR: val = "PORT_STATUS_TYPE_ERROR"; break;
17821 case PORT_STATUS_TYPE_WARNING: val = "PORT_STATUS_TYPE_WARNING"; break;
17822 case PORT_STATUS_TYPE_INFO: val = "PORT_STATUS_TYPE_INFO"; break;
17824 ndr_print_enum(ndr, name, "ENUM", val, r);
17827 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo3 *r)
17829 if (ndr_flags & NDR_SCALARS) {
17830 NDR_CHECK(ndr_push_align(ndr, 5));
17831 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr, NDR_SCALARS, r->status));
17833 uint32_t _flags_save_string = ndr->flags;
17834 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17835 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->status_string));
17836 ndr->flags = _flags_save_string;
17838 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr, NDR_SCALARS, r->severity));
17839 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17841 if (ndr_flags & NDR_BUFFERS) {
17843 uint32_t _flags_save_string = ndr->flags;
17844 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17845 if (r->status_string) {
17846 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->status_string));
17847 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->status_string));
17848 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->status_string));
17850 ndr->flags = _flags_save_string;
17853 return NDR_ERR_SUCCESS;
17856 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo3 *r)
17858 uint32_t _ptr_status_string;
17859 TALLOC_CTX *_mem_save_status_string_0;
17860 if (ndr_flags & NDR_SCALARS) {
17861 NDR_CHECK(ndr_pull_align(ndr, 5));
17862 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr, NDR_SCALARS, &r->status));
17864 uint32_t _flags_save_string = ndr->flags;
17865 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17866 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_status_string));
17867 if (_ptr_status_string) {
17868 NDR_PULL_ALLOC(ndr, r->status_string);
17869 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->status_string, _ptr_status_string));
17870 } else {
17871 r->status_string = NULL;
17873 ndr->flags = _flags_save_string;
17875 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr, NDR_SCALARS, &r->severity));
17876 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17878 if (ndr_flags & NDR_BUFFERS) {
17880 uint32_t _flags_save_string = ndr->flags;
17881 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17882 if (r->status_string) {
17883 uint32_t _relative_save_offset;
17884 _relative_save_offset = ndr->offset;
17885 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->status_string));
17886 _mem_save_status_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
17887 NDR_PULL_SET_MEM_CTX(ndr, r->status_string, 0);
17888 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->status_string));
17889 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_string_0, 0);
17890 if (ndr->offset > ndr->relative_highest_offset) {
17891 ndr->relative_highest_offset = ndr->offset;
17893 ndr->offset = _relative_save_offset;
17895 ndr->flags = _flags_save_string;
17898 return NDR_ERR_SUCCESS;
17901 _PUBLIC_ void ndr_print_spoolss_PortInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo3 *r)
17903 ndr_print_struct(ndr, name, "spoolss_PortInfo3");
17904 ndr->depth++;
17905 ndr_print_spoolss_PortStatus(ndr, "status", r->status);
17906 ndr_print_ptr(ndr, "status_string", r->status_string);
17907 ndr->depth++;
17908 if (r->status_string) {
17909 ndr_print_string(ndr, "status_string", r->status_string);
17911 ndr->depth--;
17912 ndr_print_spoolss_PortSeverity(ndr, "severity", r->severity);
17913 ndr->depth--;
17916 _PUBLIC_ size_t ndr_size_spoolss_PortInfo3(const struct spoolss_PortInfo3 *r, struct smb_iconv_convenience *ic, int flags)
17918 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo3, ic);
17921 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfoFF(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfoFF *r)
17923 if (ndr_flags & NDR_SCALARS) {
17924 NDR_CHECK(ndr_push_align(ndr, 5));
17926 uint32_t _flags_save_string = ndr->flags;
17927 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17928 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
17929 ndr->flags = _flags_save_string;
17931 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->monitor_data));
17932 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17934 if (ndr_flags & NDR_BUFFERS) {
17936 uint32_t _flags_save_string = ndr->flags;
17937 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17938 if (r->port_name) {
17939 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->port_name));
17940 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
17941 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->port_name));
17943 ndr->flags = _flags_save_string;
17946 return NDR_ERR_SUCCESS;
17949 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfoFF(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfoFF *r)
17951 uint32_t _ptr_port_name;
17952 TALLOC_CTX *_mem_save_port_name_0;
17953 if (ndr_flags & NDR_SCALARS) {
17954 NDR_CHECK(ndr_pull_align(ndr, 5));
17956 uint32_t _flags_save_string = ndr->flags;
17957 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17958 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
17959 if (_ptr_port_name) {
17960 NDR_PULL_ALLOC(ndr, r->port_name);
17961 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
17962 } else {
17963 r->port_name = NULL;
17965 ndr->flags = _flags_save_string;
17967 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->monitor_data));
17968 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17970 if (ndr_flags & NDR_BUFFERS) {
17972 uint32_t _flags_save_string = ndr->flags;
17973 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17974 if (r->port_name) {
17975 uint32_t _relative_save_offset;
17976 _relative_save_offset = ndr->offset;
17977 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
17978 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17979 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
17980 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
17981 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
17982 if (ndr->offset > ndr->relative_highest_offset) {
17983 ndr->relative_highest_offset = ndr->offset;
17985 ndr->offset = _relative_save_offset;
17987 ndr->flags = _flags_save_string;
17990 return NDR_ERR_SUCCESS;
17993 _PUBLIC_ void ndr_print_spoolss_PortInfoFF(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfoFF *r)
17995 ndr_print_struct(ndr, name, "spoolss_PortInfoFF");
17996 ndr->depth++;
17997 ndr_print_ptr(ndr, "port_name", r->port_name);
17998 ndr->depth++;
17999 if (r->port_name) {
18000 ndr_print_string(ndr, "port_name", r->port_name);
18002 ndr->depth--;
18003 ndr_print_DATA_BLOB(ndr, "monitor_data", r->monitor_data);
18004 ndr->depth--;
18007 _PUBLIC_ size_t ndr_size_spoolss_PortInfoFF(const struct spoolss_PortInfoFF *r, struct smb_iconv_convenience *ic, int flags)
18009 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfoFF, ic);
18012 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PortInfo *r)
18014 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
18016 uint32_t _flags_save_UNION = ndr->flags;
18017 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
18018 if (ndr_flags & NDR_SCALARS) {
18019 int level = ndr_push_get_switch_value(ndr, r);
18020 NDR_CHECK(ndr_push_union_align(ndr, 5));
18021 switch (level) {
18022 case 1: {
18023 NDR_CHECK(ndr_push_align(ndr, 5));
18024 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
18025 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
18026 break; }
18028 case 2: {
18029 NDR_CHECK(ndr_push_align(ndr, 5));
18030 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
18031 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
18032 break; }
18034 case 3: {
18035 NDR_CHECK(ndr_push_align(ndr, 5));
18036 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
18037 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
18038 break; }
18040 case 0xff: {
18041 NDR_CHECK(ndr_push_align(ndr, 5));
18042 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
18043 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
18044 break; }
18046 default: {
18047 break; }
18051 if (ndr_flags & NDR_BUFFERS) {
18052 int level = ndr_push_get_switch_value(ndr, r);
18053 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
18054 switch (level) {
18055 case 1:
18056 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
18057 break;
18059 case 2:
18060 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
18061 break;
18063 case 3:
18064 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
18065 break;
18067 case 0xff:
18068 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
18069 break;
18071 default:
18072 break;
18076 ndr->flags = _flags_save_UNION;
18078 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
18079 return NDR_ERR_SUCCESS;
18082 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PortInfo *r)
18084 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
18085 int level;
18087 uint32_t _flags_save_UNION = ndr->flags;
18088 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
18089 level = ndr_pull_get_switch_value(ndr, r);
18090 if (ndr_flags & NDR_SCALARS) {
18091 NDR_CHECK(ndr_pull_union_align(ndr, 5));
18092 switch (level) {
18093 case 1: {
18094 NDR_CHECK(ndr_pull_align(ndr, 5));
18095 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18096 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
18097 break; }
18099 case 2: {
18100 NDR_CHECK(ndr_pull_align(ndr, 5));
18101 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18102 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
18103 break; }
18105 case 3: {
18106 NDR_CHECK(ndr_pull_align(ndr, 5));
18107 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18108 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
18109 break; }
18111 case 0xff: {
18112 NDR_CHECK(ndr_pull_align(ndr, 5));
18113 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18114 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
18115 break; }
18117 default: {
18118 break; }
18122 if (ndr_flags & NDR_BUFFERS) {
18123 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
18124 switch (level) {
18125 case 1:
18126 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
18127 break;
18129 case 2:
18130 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
18131 break;
18133 case 3:
18134 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
18135 break;
18137 case 0xff:
18138 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
18139 break;
18141 default:
18142 break;
18146 ndr->flags = _flags_save_UNION;
18148 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
18149 return NDR_ERR_SUCCESS;
18152 _PUBLIC_ void ndr_print_spoolss_PortInfo(struct ndr_print *ndr, const char *name, const union spoolss_PortInfo *r)
18154 int level;
18156 uint32_t _flags_save_UNION = ndr->flags;
18157 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
18158 level = ndr_print_get_switch_value(ndr, r);
18159 ndr_print_union(ndr, name, level, "spoolss_PortInfo");
18160 switch (level) {
18161 case 1:
18162 ndr_print_spoolss_PortInfo1(ndr, "info1", &r->info1);
18163 break;
18165 case 2:
18166 ndr_print_spoolss_PortInfo2(ndr, "info2", &r->info2);
18167 break;
18169 case 3:
18170 ndr_print_spoolss_PortInfo3(ndr, "info3", &r->info3);
18171 break;
18173 case 0xff:
18174 ndr_print_spoolss_PortInfoFF(ndr, "infoFF", &r->infoFF);
18175 break;
18177 default:
18178 break;
18181 ndr->flags = _flags_save_UNION;
18185 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo1 *r)
18187 if (ndr_flags & NDR_SCALARS) {
18188 NDR_CHECK(ndr_push_align(ndr, 5));
18190 uint32_t _flags_save_string = ndr->flags;
18191 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18192 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
18193 ndr->flags = _flags_save_string;
18195 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18197 if (ndr_flags & NDR_BUFFERS) {
18199 uint32_t _flags_save_string = ndr->flags;
18200 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18201 if (r->monitor_name) {
18202 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
18203 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
18204 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
18206 ndr->flags = _flags_save_string;
18209 return NDR_ERR_SUCCESS;
18212 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo1 *r)
18214 uint32_t _ptr_monitor_name;
18215 TALLOC_CTX *_mem_save_monitor_name_0;
18216 if (ndr_flags & NDR_SCALARS) {
18217 NDR_CHECK(ndr_pull_align(ndr, 5));
18219 uint32_t _flags_save_string = ndr->flags;
18220 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18221 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
18222 if (_ptr_monitor_name) {
18223 NDR_PULL_ALLOC(ndr, r->monitor_name);
18224 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
18225 } else {
18226 r->monitor_name = NULL;
18228 ndr->flags = _flags_save_string;
18230 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18232 if (ndr_flags & NDR_BUFFERS) {
18234 uint32_t _flags_save_string = ndr->flags;
18235 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18236 if (r->monitor_name) {
18237 uint32_t _relative_save_offset;
18238 _relative_save_offset = ndr->offset;
18239 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
18240 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
18241 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
18242 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
18243 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
18244 if (ndr->offset > ndr->relative_highest_offset) {
18245 ndr->relative_highest_offset = ndr->offset;
18247 ndr->offset = _relative_save_offset;
18249 ndr->flags = _flags_save_string;
18252 return NDR_ERR_SUCCESS;
18255 _PUBLIC_ void ndr_print_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo1 *r)
18257 ndr_print_struct(ndr, name, "spoolss_MonitorInfo1");
18258 ndr->depth++;
18259 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
18260 ndr->depth++;
18261 if (r->monitor_name) {
18262 ndr_print_string(ndr, "monitor_name", r->monitor_name);
18264 ndr->depth--;
18265 ndr->depth--;
18268 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo1(const struct spoolss_MonitorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
18270 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo1, ic);
18273 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo2 *r)
18275 if (ndr_flags & NDR_SCALARS) {
18276 NDR_CHECK(ndr_push_align(ndr, 5));
18278 uint32_t _flags_save_string = ndr->flags;
18279 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18280 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
18281 ndr->flags = _flags_save_string;
18284 uint32_t _flags_save_string = ndr->flags;
18285 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18286 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->environment));
18287 ndr->flags = _flags_save_string;
18290 uint32_t _flags_save_string = ndr->flags;
18291 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18292 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name));
18293 ndr->flags = _flags_save_string;
18295 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18297 if (ndr_flags & NDR_BUFFERS) {
18299 uint32_t _flags_save_string = ndr->flags;
18300 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18301 if (r->monitor_name) {
18302 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
18303 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
18304 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
18306 ndr->flags = _flags_save_string;
18309 uint32_t _flags_save_string = ndr->flags;
18310 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18311 if (r->environment) {
18312 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->environment));
18313 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
18314 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->environment));
18316 ndr->flags = _flags_save_string;
18319 uint32_t _flags_save_string = ndr->flags;
18320 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18321 if (r->dll_name) {
18322 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dll_name));
18323 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
18324 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dll_name));
18326 ndr->flags = _flags_save_string;
18329 return NDR_ERR_SUCCESS;
18332 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo2 *r)
18334 uint32_t _ptr_monitor_name;
18335 TALLOC_CTX *_mem_save_monitor_name_0;
18336 uint32_t _ptr_environment;
18337 TALLOC_CTX *_mem_save_environment_0;
18338 uint32_t _ptr_dll_name;
18339 TALLOC_CTX *_mem_save_dll_name_0;
18340 if (ndr_flags & NDR_SCALARS) {
18341 NDR_CHECK(ndr_pull_align(ndr, 5));
18343 uint32_t _flags_save_string = ndr->flags;
18344 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18345 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
18346 if (_ptr_monitor_name) {
18347 NDR_PULL_ALLOC(ndr, r->monitor_name);
18348 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
18349 } else {
18350 r->monitor_name = NULL;
18352 ndr->flags = _flags_save_string;
18355 uint32_t _flags_save_string = ndr->flags;
18356 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18357 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
18358 if (_ptr_environment) {
18359 NDR_PULL_ALLOC(ndr, r->environment);
18360 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->environment, _ptr_environment));
18361 } else {
18362 r->environment = NULL;
18364 ndr->flags = _flags_save_string;
18367 uint32_t _flags_save_string = ndr->flags;
18368 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18369 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name));
18370 if (_ptr_dll_name) {
18371 NDR_PULL_ALLOC(ndr, r->dll_name);
18372 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dll_name, _ptr_dll_name));
18373 } else {
18374 r->dll_name = NULL;
18376 ndr->flags = _flags_save_string;
18378 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18380 if (ndr_flags & NDR_BUFFERS) {
18382 uint32_t _flags_save_string = ndr->flags;
18383 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18384 if (r->monitor_name) {
18385 uint32_t _relative_save_offset;
18386 _relative_save_offset = ndr->offset;
18387 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
18388 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
18389 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
18390 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
18391 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
18392 if (ndr->offset > ndr->relative_highest_offset) {
18393 ndr->relative_highest_offset = ndr->offset;
18395 ndr->offset = _relative_save_offset;
18397 ndr->flags = _flags_save_string;
18400 uint32_t _flags_save_string = ndr->flags;
18401 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18402 if (r->environment) {
18403 uint32_t _relative_save_offset;
18404 _relative_save_offset = ndr->offset;
18405 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->environment));
18406 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
18407 NDR_PULL_SET_MEM_CTX(ndr, r->environment, 0);
18408 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
18409 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
18410 if (ndr->offset > ndr->relative_highest_offset) {
18411 ndr->relative_highest_offset = ndr->offset;
18413 ndr->offset = _relative_save_offset;
18415 ndr->flags = _flags_save_string;
18418 uint32_t _flags_save_string = ndr->flags;
18419 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18420 if (r->dll_name) {
18421 uint32_t _relative_save_offset;
18422 _relative_save_offset = ndr->offset;
18423 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dll_name));
18424 _mem_save_dll_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
18425 NDR_PULL_SET_MEM_CTX(ndr, r->dll_name, 0);
18426 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
18427 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dll_name_0, 0);
18428 if (ndr->offset > ndr->relative_highest_offset) {
18429 ndr->relative_highest_offset = ndr->offset;
18431 ndr->offset = _relative_save_offset;
18433 ndr->flags = _flags_save_string;
18436 return NDR_ERR_SUCCESS;
18439 _PUBLIC_ void ndr_print_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo2 *r)
18441 ndr_print_struct(ndr, name, "spoolss_MonitorInfo2");
18442 ndr->depth++;
18443 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
18444 ndr->depth++;
18445 if (r->monitor_name) {
18446 ndr_print_string(ndr, "monitor_name", r->monitor_name);
18448 ndr->depth--;
18449 ndr_print_ptr(ndr, "environment", r->environment);
18450 ndr->depth++;
18451 if (r->environment) {
18452 ndr_print_string(ndr, "environment", r->environment);
18454 ndr->depth--;
18455 ndr_print_ptr(ndr, "dll_name", r->dll_name);
18456 ndr->depth++;
18457 if (r->dll_name) {
18458 ndr_print_string(ndr, "dll_name", r->dll_name);
18460 ndr->depth--;
18461 ndr->depth--;
18464 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo2(const struct spoolss_MonitorInfo2 *r, struct smb_iconv_convenience *ic, int flags)
18466 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo2, ic);
18469 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_MonitorInfo *r)
18471 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
18473 uint32_t _flags_save_UNION = ndr->flags;
18474 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
18475 if (ndr_flags & NDR_SCALARS) {
18476 int level = ndr_push_get_switch_value(ndr, r);
18477 NDR_CHECK(ndr_push_union_align(ndr, 5));
18478 switch (level) {
18479 case 1: {
18480 NDR_CHECK(ndr_push_align(ndr, 5));
18481 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
18482 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
18483 break; }
18485 case 2: {
18486 NDR_CHECK(ndr_push_align(ndr, 5));
18487 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
18488 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
18489 break; }
18491 default: {
18492 break; }
18496 if (ndr_flags & NDR_BUFFERS) {
18497 int level = ndr_push_get_switch_value(ndr, r);
18498 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
18499 switch (level) {
18500 case 1:
18501 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
18502 break;
18504 case 2:
18505 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
18506 break;
18508 default:
18509 break;
18513 ndr->flags = _flags_save_UNION;
18515 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
18516 return NDR_ERR_SUCCESS;
18519 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_MonitorInfo *r)
18521 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
18522 int level;
18524 uint32_t _flags_save_UNION = ndr->flags;
18525 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
18526 level = ndr_pull_get_switch_value(ndr, r);
18527 if (ndr_flags & NDR_SCALARS) {
18528 NDR_CHECK(ndr_pull_union_align(ndr, 5));
18529 switch (level) {
18530 case 1: {
18531 NDR_CHECK(ndr_pull_align(ndr, 5));
18532 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18533 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
18534 break; }
18536 case 2: {
18537 NDR_CHECK(ndr_pull_align(ndr, 5));
18538 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18539 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
18540 break; }
18542 default: {
18543 break; }
18547 if (ndr_flags & NDR_BUFFERS) {
18548 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
18549 switch (level) {
18550 case 1:
18551 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
18552 break;
18554 case 2:
18555 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
18556 break;
18558 default:
18559 break;
18563 ndr->flags = _flags_save_UNION;
18565 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
18566 return NDR_ERR_SUCCESS;
18569 _PUBLIC_ void ndr_print_spoolss_MonitorInfo(struct ndr_print *ndr, const char *name, const union spoolss_MonitorInfo *r)
18571 int level;
18573 uint32_t _flags_save_UNION = ndr->flags;
18574 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
18575 level = ndr_print_get_switch_value(ndr, r);
18576 ndr_print_union(ndr, name, level, "spoolss_MonitorInfo");
18577 switch (level) {
18578 case 1:
18579 ndr_print_spoolss_MonitorInfo1(ndr, "info1", &r->info1);
18580 break;
18582 case 2:
18583 ndr_print_spoolss_MonitorInfo2(ndr, "info2", &r->info2);
18584 break;
18586 default:
18587 break;
18590 ndr->flags = _flags_save_UNION;
18594 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcDataTypesInfo1 *r)
18596 if (ndr_flags & NDR_SCALARS) {
18597 NDR_CHECK(ndr_push_align(ndr, 5));
18599 uint32_t _flags_save_string = ndr->flags;
18600 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18601 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name_array));
18602 ndr->flags = _flags_save_string;
18604 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18606 if (ndr_flags & NDR_BUFFERS) {
18608 uint32_t _flags_save_string = ndr->flags;
18609 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18610 if (r->name_array) {
18611 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->name_array));
18612 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name_array));
18613 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->name_array));
18615 ndr->flags = _flags_save_string;
18618 return NDR_ERR_SUCCESS;
18621 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcDataTypesInfo1 *r)
18623 uint32_t _ptr_name_array;
18624 TALLOC_CTX *_mem_save_name_array_0;
18625 if (ndr_flags & NDR_SCALARS) {
18626 NDR_CHECK(ndr_pull_align(ndr, 5));
18628 uint32_t _flags_save_string = ndr->flags;
18629 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18630 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name_array));
18631 if (_ptr_name_array) {
18632 NDR_PULL_ALLOC(ndr, r->name_array);
18633 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name_array, _ptr_name_array));
18634 } else {
18635 r->name_array = NULL;
18637 ndr->flags = _flags_save_string;
18639 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18641 if (ndr_flags & NDR_BUFFERS) {
18643 uint32_t _flags_save_string = ndr->flags;
18644 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18645 if (r->name_array) {
18646 uint32_t _relative_save_offset;
18647 _relative_save_offset = ndr->offset;
18648 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name_array));
18649 _mem_save_name_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
18650 NDR_PULL_SET_MEM_CTX(ndr, r->name_array, 0);
18651 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name_array));
18652 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_array_0, 0);
18653 if (ndr->offset > ndr->relative_highest_offset) {
18654 ndr->relative_highest_offset = ndr->offset;
18656 ndr->offset = _relative_save_offset;
18658 ndr->flags = _flags_save_string;
18661 return NDR_ERR_SUCCESS;
18664 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcDataTypesInfo1 *r)
18666 ndr_print_struct(ndr, name, "spoolss_PrintProcDataTypesInfo1");
18667 ndr->depth++;
18668 ndr_print_ptr(ndr, "name_array", r->name_array);
18669 ndr->depth++;
18670 if (r->name_array) {
18671 ndr_print_string(ndr, "name_array", r->name_array);
18673 ndr->depth--;
18674 ndr->depth--;
18677 _PUBLIC_ size_t ndr_size_spoolss_PrintProcDataTypesInfo1(const struct spoolss_PrintProcDataTypesInfo1 *r, struct smb_iconv_convenience *ic, int flags)
18679 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcDataTypesInfo1, ic);
18682 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcDataTypesInfo *r)
18684 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
18686 uint32_t _flags_save_UNION = ndr->flags;
18687 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
18688 if (ndr_flags & NDR_SCALARS) {
18689 int level = ndr_push_get_switch_value(ndr, r);
18690 NDR_CHECK(ndr_push_union_align(ndr, 5));
18691 switch (level) {
18692 case 1: {
18693 NDR_CHECK(ndr_push_align(ndr, 5));
18694 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
18695 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
18696 break; }
18698 default: {
18699 break; }
18703 if (ndr_flags & NDR_BUFFERS) {
18704 int level = ndr_push_get_switch_value(ndr, r);
18705 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
18706 switch (level) {
18707 case 1:
18708 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
18709 break;
18711 default:
18712 break;
18716 ndr->flags = _flags_save_UNION;
18718 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
18719 return NDR_ERR_SUCCESS;
18722 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcDataTypesInfo *r)
18724 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
18725 int level;
18727 uint32_t _flags_save_UNION = ndr->flags;
18728 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
18729 level = ndr_pull_get_switch_value(ndr, r);
18730 if (ndr_flags & NDR_SCALARS) {
18731 NDR_CHECK(ndr_pull_union_align(ndr, 5));
18732 switch (level) {
18733 case 1: {
18734 NDR_CHECK(ndr_pull_align(ndr, 5));
18735 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18736 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
18737 break; }
18739 default: {
18740 break; }
18744 if (ndr_flags & NDR_BUFFERS) {
18745 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
18746 switch (level) {
18747 case 1:
18748 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
18749 break;
18751 default:
18752 break;
18756 ndr->flags = _flags_save_UNION;
18758 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
18759 return NDR_ERR_SUCCESS;
18762 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcDataTypesInfo *r)
18764 int level;
18766 uint32_t _flags_save_UNION = ndr->flags;
18767 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
18768 level = ndr_print_get_switch_value(ndr, r);
18769 ndr_print_union(ndr, name, level, "spoolss_PrintProcDataTypesInfo");
18770 switch (level) {
18771 case 1:
18772 ndr_print_spoolss_PrintProcDataTypesInfo1(ndr, "info1", &r->info1);
18773 break;
18775 default:
18776 break;
18779 ndr->flags = _flags_save_UNION;
18783 static enum ndr_err_code ndr_push_spoolss_PrinterChangeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18785 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18786 return NDR_ERR_SUCCESS;
18789 static enum ndr_err_code ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18791 uint32_t v;
18792 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18793 *r = v;
18794 return NDR_ERR_SUCCESS;
18797 _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18799 ndr_print_uint32(ndr, name, r);
18800 ndr->depth++;
18801 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER, r);
18802 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER, r);
18803 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER, r);
18804 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, r);
18805 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB, r);
18806 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB, r);
18807 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB, r);
18808 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB, r);
18809 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM, r);
18810 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM, r);
18811 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM, r);
18812 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT, r);
18813 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT, r);
18814 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
18815 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
18816 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
18817 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER, r);
18818 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
18819 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
18820 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
18821 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT, r);
18822 ndr->depth--;
18825 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobNotifyField r)
18827 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
18828 return NDR_ERR_SUCCESS;
18831 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobNotifyField *r)
18833 uint16_t v;
18834 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
18835 *r = v;
18836 return NDR_ERR_SUCCESS;
18839 _PUBLIC_ void ndr_print_spoolss_JobNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_JobNotifyField r)
18841 const char *val = NULL;
18843 switch (r) {
18844 case JOB_NOTIFY_FIELD_PRINTER_NAME: val = "JOB_NOTIFY_FIELD_PRINTER_NAME"; break;
18845 case JOB_NOTIFY_FIELD_MACHINE_NAME: val = "JOB_NOTIFY_FIELD_MACHINE_NAME"; break;
18846 case JOB_NOTIFY_FIELD_PORT_NAME: val = "JOB_NOTIFY_FIELD_PORT_NAME"; break;
18847 case JOB_NOTIFY_FIELD_USER_NAME: val = "JOB_NOTIFY_FIELD_USER_NAME"; break;
18848 case JOB_NOTIFY_FIELD_NOTIFY_NAME: val = "JOB_NOTIFY_FIELD_NOTIFY_NAME"; break;
18849 case JOB_NOTIFY_FIELD_DATATYPE: val = "JOB_NOTIFY_FIELD_DATATYPE"; break;
18850 case JOB_NOTIFY_FIELD_PRINT_PROCESSOR: val = "JOB_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
18851 case JOB_NOTIFY_FIELD_PARAMETERS: val = "JOB_NOTIFY_FIELD_PARAMETERS"; break;
18852 case JOB_NOTIFY_FIELD_DRIVER_NAME: val = "JOB_NOTIFY_FIELD_DRIVER_NAME"; break;
18853 case JOB_NOTIFY_FIELD_DEVMODE: val = "JOB_NOTIFY_FIELD_DEVMODE"; break;
18854 case JOB_NOTIFY_FIELD_STATUS: val = "JOB_NOTIFY_FIELD_STATUS"; break;
18855 case JOB_NOTIFY_FIELD_STATUS_STRING: val = "JOB_NOTIFY_FIELD_STATUS_STRING"; break;
18856 case JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
18857 case JOB_NOTIFY_FIELD_DOCUMENT: val = "JOB_NOTIFY_FIELD_DOCUMENT"; break;
18858 case JOB_NOTIFY_FIELD_PRIORITY: val = "JOB_NOTIFY_FIELD_PRIORITY"; break;
18859 case JOB_NOTIFY_FIELD_POSITION: val = "JOB_NOTIFY_FIELD_POSITION"; break;
18860 case JOB_NOTIFY_FIELD_SUBMITTED: val = "JOB_NOTIFY_FIELD_SUBMITTED"; break;
18861 case JOB_NOTIFY_FIELD_START_TIME: val = "JOB_NOTIFY_FIELD_START_TIME"; break;
18862 case JOB_NOTIFY_FIELD_UNTIL_TIME: val = "JOB_NOTIFY_FIELD_UNTIL_TIME"; break;
18863 case JOB_NOTIFY_FIELD_TIME: val = "JOB_NOTIFY_FIELD_TIME"; break;
18864 case JOB_NOTIFY_FIELD_TOTAL_PAGES: val = "JOB_NOTIFY_FIELD_TOTAL_PAGES"; break;
18865 case JOB_NOTIFY_FIELD_PAGES_PRINTED: val = "JOB_NOTIFY_FIELD_PAGES_PRINTED"; break;
18866 case JOB_NOTIFY_FIELD_TOTAL_BYTES: val = "JOB_NOTIFY_FIELD_TOTAL_BYTES"; break;
18867 case JOB_NOTIFY_FIELD_BYTES_PRINTED: val = "JOB_NOTIFY_FIELD_BYTES_PRINTED"; break;
18869 ndr_print_enum(ndr, name, "ENUM", val, r);
18872 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrintNotifyField r)
18874 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
18875 return NDR_ERR_SUCCESS;
18878 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrintNotifyField *r)
18880 uint16_t v;
18881 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
18882 *r = v;
18883 return NDR_ERR_SUCCESS;
18886 _PUBLIC_ void ndr_print_spoolss_PrintNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_PrintNotifyField r)
18888 const char *val = NULL;
18890 switch (r) {
18891 case PRINTER_NOTIFY_FIELD_SERVER_NAME: val = "PRINTER_NOTIFY_FIELD_SERVER_NAME"; break;
18892 case PRINTER_NOTIFY_FIELD_PRINTER_NAME: val = "PRINTER_NOTIFY_FIELD_PRINTER_NAME"; break;
18893 case PRINTER_NOTIFY_FIELD_SHARE_NAME: val = "PRINTER_NOTIFY_FIELD_SHARE_NAME"; break;
18894 case PRINTER_NOTIFY_FIELD_PORT_NAME: val = "PRINTER_NOTIFY_FIELD_PORT_NAME"; break;
18895 case PRINTER_NOTIFY_FIELD_DRIVER_NAME: val = "PRINTER_NOTIFY_FIELD_DRIVER_NAME"; break;
18896 case PRINTER_NOTIFY_FIELD_COMMENT: val = "PRINTER_NOTIFY_FIELD_COMMENT"; break;
18897 case PRINTER_NOTIFY_FIELD_LOCATION: val = "PRINTER_NOTIFY_FIELD_LOCATION"; break;
18898 case PRINTER_NOTIFY_FIELD_DEVMODE: val = "PRINTER_NOTIFY_FIELD_DEVMODE"; break;
18899 case PRINTER_NOTIFY_FIELD_SEPFILE: val = "PRINTER_NOTIFY_FIELD_SEPFILE"; break;
18900 case PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR: val = "PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
18901 case PRINTER_NOTIFY_FIELD_PARAMETERS: val = "PRINTER_NOTIFY_FIELD_PARAMETERS"; break;
18902 case PRINTER_NOTIFY_FIELD_DATATYPE: val = "PRINTER_NOTIFY_FIELD_DATATYPE"; break;
18903 case PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
18904 case PRINTER_NOTIFY_FIELD_ATTRIBUTES: val = "PRINTER_NOTIFY_FIELD_ATTRIBUTES"; break;
18905 case PRINTER_NOTIFY_FIELD_PRIORITY: val = "PRINTER_NOTIFY_FIELD_PRIORITY"; break;
18906 case PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY: val = "PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY"; break;
18907 case PRINTER_NOTIFY_FIELD_START_TIME: val = "PRINTER_NOTIFY_FIELD_START_TIME"; break;
18908 case PRINTER_NOTIFY_FIELD_UNTIL_TIME: val = "PRINTER_NOTIFY_FIELD_UNTIL_TIME"; break;
18909 case PRINTER_NOTIFY_FIELD_STATUS: val = "PRINTER_NOTIFY_FIELD_STATUS"; break;
18910 case PRINTER_NOTIFY_FIELD_STATUS_STRING: val = "PRINTER_NOTIFY_FIELD_STATUS_STRING"; break;
18911 case PRINTER_NOTIFY_FIELD_CJOBS: val = "PRINTER_NOTIFY_FIELD_CJOBS"; break;
18912 case PRINTER_NOTIFY_FIELD_AVERAGE_PPM: val = "PRINTER_NOTIFY_FIELD_AVERAGE_PPM"; break;
18913 case PRINTER_NOTIFY_FIELD_TOTAL_PAGES: val = "PRINTER_NOTIFY_FIELD_TOTAL_PAGES"; break;
18914 case PRINTER_NOTIFY_FIELD_PAGES_PRINTED: val = "PRINTER_NOTIFY_FIELD_PAGES_PRINTED"; break;
18915 case PRINTER_NOTIFY_FIELD_TOTAL_BYTES: val = "PRINTER_NOTIFY_FIELD_TOTAL_BYTES"; break;
18916 case PRINTER_NOTIFY_FIELD_BYTES_PRINTED: val = "PRINTER_NOTIFY_FIELD_BYTES_PRINTED"; break;
18917 case PRINTER_NOTIFY_FIELD_OBJECT_GUID: val = "PRINTER_NOTIFY_FIELD_OBJECT_GUID"; break;
18918 case PRINTER_NOTIFY_FIELD_FRIENDLY_NAME: val = "PRINTER_NOTIFY_FIELD_FRIENDLY_NAME"; break;
18920 ndr_print_enum(ndr, name, "ENUM", val, r);
18923 static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyType r)
18925 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
18926 return NDR_ERR_SUCCESS;
18929 static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyType *r)
18931 uint16_t v;
18932 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
18933 *r = v;
18934 return NDR_ERR_SUCCESS;
18937 _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
18939 const char *val = NULL;
18941 switch (r) {
18942 case PRINTER_NOTIFY_TYPE: val = "PRINTER_NOTIFY_TYPE"; break;
18943 case JOB_NOTIFY_TYPE: val = "JOB_NOTIFY_TYPE"; break;
18945 ndr_print_enum(ndr, name, "ENUM", val, r);
18948 static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, int ndr_flags, const union spoolss_Field *r)
18950 if (ndr_flags & NDR_SCALARS) {
18951 int level = ndr_push_get_switch_value(ndr, r);
18952 NDR_CHECK(ndr_push_union_align(ndr, 2));
18953 switch (level) {
18954 case PRINTER_NOTIFY_TYPE: {
18955 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
18956 break; }
18958 case JOB_NOTIFY_TYPE: {
18959 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
18960 break; }
18962 default: {
18963 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
18964 break; }
18968 if (ndr_flags & NDR_BUFFERS) {
18969 int level = ndr_push_get_switch_value(ndr, r);
18970 switch (level) {
18971 case PRINTER_NOTIFY_TYPE:
18972 break;
18974 case JOB_NOTIFY_TYPE:
18975 break;
18977 default:
18978 break;
18982 return NDR_ERR_SUCCESS;
18985 static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, int ndr_flags, union spoolss_Field *r)
18987 int level;
18988 level = ndr_pull_get_switch_value(ndr, r);
18989 if (ndr_flags & NDR_SCALARS) {
18990 NDR_CHECK(ndr_pull_union_align(ndr, 2));
18991 switch (level) {
18992 case PRINTER_NOTIFY_TYPE: {
18993 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
18994 break; }
18996 case JOB_NOTIFY_TYPE: {
18997 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
18998 break; }
19000 default: {
19001 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
19002 break; }
19006 if (ndr_flags & NDR_BUFFERS) {
19007 switch (level) {
19008 case PRINTER_NOTIFY_TYPE:
19009 break;
19011 case JOB_NOTIFY_TYPE:
19012 break;
19014 default:
19015 break;
19019 return NDR_ERR_SUCCESS;
19022 static enum ndr_err_code ndr_push_spoolss_NotifyOptionType(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOptionType *r)
19024 uint32_t cntr_fields_1;
19025 if (ndr_flags & NDR_SCALARS) {
19026 NDR_CHECK(ndr_push_align(ndr, 5));
19027 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
19028 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
19029 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
19030 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
19031 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
19032 NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
19033 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19035 if (ndr_flags & NDR_BUFFERS) {
19036 if (r->fields) {
19037 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
19038 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
19039 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
19040 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
19044 return NDR_ERR_SUCCESS;
19047 static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionType *r)
19049 uint32_t _ptr_fields;
19050 uint32_t cntr_fields_1;
19051 TALLOC_CTX *_mem_save_fields_0;
19052 TALLOC_CTX *_mem_save_fields_1;
19053 if (ndr_flags & NDR_SCALARS) {
19054 NDR_CHECK(ndr_pull_align(ndr, 5));
19055 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
19056 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
19057 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
19058 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
19059 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
19060 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
19061 if (_ptr_fields) {
19062 NDR_PULL_ALLOC(ndr, r->fields);
19063 } else {
19064 r->fields = NULL;
19066 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19068 if (ndr_flags & NDR_BUFFERS) {
19069 if (r->fields) {
19070 _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
19071 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
19072 NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
19073 NDR_PULL_ALLOC_N(ndr, r->fields, ndr_get_array_size(ndr, &r->fields));
19074 _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
19075 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
19076 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
19077 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
19078 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
19080 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
19081 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
19083 if (r->fields) {
19084 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->fields, r->count));
19087 return NDR_ERR_SUCCESS;
19090 _PUBLIC_ void ndr_print_spoolss_NotifyOptionType(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionType *r)
19092 uint32_t cntr_fields_1;
19093 ndr_print_struct(ndr, name, "spoolss_NotifyOptionType");
19094 ndr->depth++;
19095 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
19096 ndr_print_uint16(ndr, "u1", r->u1);
19097 ndr_print_uint32(ndr, "u2", r->u2);
19098 ndr_print_uint32(ndr, "u3", r->u3);
19099 ndr_print_uint32(ndr, "count", r->count);
19100 ndr_print_ptr(ndr, "fields", r->fields);
19101 ndr->depth++;
19102 if (r->fields) {
19103 ndr->print(ndr, "%s: ARRAY(%d)", "fields", (int)r->count);
19104 ndr->depth++;
19105 for (cntr_fields_1=0;cntr_fields_1<r->count;cntr_fields_1++) {
19106 char *idx_1=NULL;
19107 if (asprintf(&idx_1, "[%d]", cntr_fields_1) != -1) {
19108 ndr_print_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type);
19109 ndr_print_spoolss_Field(ndr, "fields", &r->fields[cntr_fields_1]);
19110 free(idx_1);
19113 ndr->depth--;
19115 ndr->depth--;
19116 ndr->depth--;
19119 static enum ndr_err_code ndr_push_spoolssNotifyOptionFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19121 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19122 return NDR_ERR_SUCCESS;
19125 static enum ndr_err_code ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19127 uint32_t v;
19128 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19129 *r = v;
19130 return NDR_ERR_SUCCESS;
19133 _PUBLIC_ void ndr_print_spoolssNotifyOptionFlags(struct ndr_print *ndr, const char *name, uint32_t r)
19135 ndr_print_uint32(ndr, name, r);
19136 ndr->depth++;
19137 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH, r);
19138 ndr->depth--;
19141 static enum ndr_err_code ndr_push_spoolss_NotifyOption(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOption *r)
19143 uint32_t cntr_types_1;
19144 if (ndr_flags & NDR_SCALARS) {
19145 NDR_CHECK(ndr_push_align(ndr, 5));
19146 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
19147 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, r->flags));
19148 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
19149 NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
19150 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19152 if (ndr_flags & NDR_BUFFERS) {
19153 if (r->types) {
19154 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
19155 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
19156 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
19158 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
19159 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
19163 return NDR_ERR_SUCCESS;
19166 static enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOption *r)
19168 uint32_t _ptr_types;
19169 uint32_t cntr_types_1;
19170 TALLOC_CTX *_mem_save_types_0;
19171 TALLOC_CTX *_mem_save_types_1;
19172 if (ndr_flags & NDR_SCALARS) {
19173 NDR_CHECK(ndr_pull_align(ndr, 5));
19174 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
19175 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, &r->flags));
19176 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
19177 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
19178 if (_ptr_types) {
19179 NDR_PULL_ALLOC(ndr, r->types);
19180 } else {
19181 r->types = NULL;
19183 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19185 if (ndr_flags & NDR_BUFFERS) {
19186 if (r->types) {
19187 _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
19188 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
19189 NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
19190 NDR_PULL_ALLOC_N(ndr, r->types, ndr_get_array_size(ndr, &r->types));
19191 _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
19192 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
19193 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
19194 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
19196 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
19197 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
19199 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
19200 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
19202 if (r->types) {
19203 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
19206 return NDR_ERR_SUCCESS;
19209 _PUBLIC_ void ndr_print_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOption *r)
19211 uint32_t cntr_types_1;
19212 ndr_print_struct(ndr, name, "spoolss_NotifyOption");
19213 ndr->depth++;
19214 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
19215 ndr_print_spoolssNotifyOptionFlags(ndr, "flags", r->flags);
19216 ndr_print_uint32(ndr, "count", r->count);
19217 ndr_print_ptr(ndr, "types", r->types);
19218 ndr->depth++;
19219 if (r->types) {
19220 ndr->print(ndr, "%s: ARRAY(%d)", "types", (int)r->count);
19221 ndr->depth++;
19222 for (cntr_types_1=0;cntr_types_1<r->count;cntr_types_1++) {
19223 char *idx_1=NULL;
19224 if (asprintf(&idx_1, "[%d]", cntr_types_1) != -1) {
19225 ndr_print_spoolss_NotifyOptionType(ndr, "types", &r->types[cntr_types_1]);
19226 free(idx_1);
19229 ndr->depth--;
19231 ndr->depth--;
19232 ndr->depth--;
19235 static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyString *r)
19237 if (ndr_flags & NDR_SCALARS) {
19238 NDR_CHECK(ndr_push_align(ndr, 5));
19239 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
19240 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
19241 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19243 if (ndr_flags & NDR_BUFFERS) {
19244 if (r->string) {
19245 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->size / 2));
19246 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
19249 return NDR_ERR_SUCCESS;
19252 static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyString *r)
19254 uint32_t _ptr_string;
19255 TALLOC_CTX *_mem_save_string_0;
19256 if (ndr_flags & NDR_SCALARS) {
19257 NDR_CHECK(ndr_pull_align(ndr, 5));
19258 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19259 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
19260 if (_ptr_string) {
19261 NDR_PULL_ALLOC(ndr, r->string);
19262 } else {
19263 r->string = NULL;
19265 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19267 if (ndr_flags & NDR_BUFFERS) {
19268 if (r->string) {
19269 _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
19270 NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
19271 NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
19272 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_size(ndr, &r->string), sizeof(uint16_t), CH_UTF16));
19273 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
19275 if (r->string) {
19276 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size / 2));
19279 return NDR_ERR_SUCCESS;
19282 _PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
19284 ndr_print_struct(ndr, name, "spoolss_NotifyString");
19285 ndr->depth++;
19286 ndr_print_uint32(ndr, "size", r->size);
19287 ndr_print_ptr(ndr, "string", r->string);
19288 ndr->depth++;
19289 if (r->string) {
19290 ndr_print_string(ndr, "string", r->string);
19292 ndr->depth--;
19293 ndr->depth--;
19296 static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyTable r)
19298 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
19299 return NDR_ERR_SUCCESS;
19302 static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyTable *r)
19304 uint32_t v;
19305 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
19306 *r = v;
19307 return NDR_ERR_SUCCESS;
19310 _PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
19312 const char *val = NULL;
19314 switch (r) {
19315 case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
19316 case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
19317 case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
19318 case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
19319 case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
19321 ndr_print_enum(ndr, name, "ENUM", val, r);
19324 static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int ndr_flags, const union spoolss_NotifyData *r)
19326 if (ndr_flags & NDR_SCALARS) {
19327 int level = ndr_push_get_switch_value(ndr, r);
19328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
19329 NDR_CHECK(ndr_push_union_align(ndr, 5));
19330 switch (level) {
19331 case 1: {
19332 uint32_t cntr_integer_0;
19333 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
19334 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
19336 break; }
19338 case 2: {
19339 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
19340 break; }
19342 case 3: {
19343 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
19344 break; }
19346 case 4: {
19347 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
19348 break; }
19350 case 5: {
19351 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
19352 break; }
19354 default:
19355 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19358 if (ndr_flags & NDR_BUFFERS) {
19359 int level = ndr_push_get_switch_value(ndr, r);
19360 switch (level) {
19361 case 1:
19362 break;
19364 case 2:
19365 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
19366 break;
19368 case 3:
19369 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
19370 break;
19372 case 4:
19373 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
19374 break;
19376 case 5:
19377 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
19378 break;
19380 default:
19381 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19384 return NDR_ERR_SUCCESS;
19387 static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int ndr_flags, union spoolss_NotifyData *r)
19389 int level;
19390 uint32_t _level;
19391 level = ndr_pull_get_switch_value(ndr, r);
19392 if (ndr_flags & NDR_SCALARS) {
19393 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
19394 if (_level != level) {
19395 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
19397 NDR_CHECK(ndr_pull_union_align(ndr, 5));
19398 switch (level) {
19399 case 1: {
19400 uint32_t cntr_integer_0;
19401 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
19402 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
19404 break; }
19406 case 2: {
19407 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
19408 break; }
19410 case 3: {
19411 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
19412 break; }
19414 case 4: {
19415 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
19416 break; }
19418 case 5: {
19419 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
19420 break; }
19422 default:
19423 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19426 if (ndr_flags & NDR_BUFFERS) {
19427 switch (level) {
19428 case 1:
19429 break;
19431 case 2:
19432 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
19433 break;
19435 case 3:
19436 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
19437 break;
19439 case 4:
19440 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
19441 break;
19443 case 5:
19444 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
19445 break;
19447 default:
19448 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19451 return NDR_ERR_SUCCESS;
19454 _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
19456 int level;
19457 uint32_t cntr_integer_0;
19458 level = ndr_print_get_switch_value(ndr, r);
19459 ndr_print_union(ndr, name, level, "spoolss_NotifyData");
19460 switch (level) {
19461 case 1:
19462 ndr->print(ndr, "%s: ARRAY(%d)", "integer", (int)2);
19463 ndr->depth++;
19464 for (cntr_integer_0=0;cntr_integer_0<2;cntr_integer_0++) {
19465 char *idx_0=NULL;
19466 if (asprintf(&idx_0, "[%d]", cntr_integer_0) != -1) {
19467 ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
19468 free(idx_0);
19471 ndr->depth--;
19472 break;
19474 case 2:
19475 ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
19476 break;
19478 case 3:
19479 ndr_print_spoolss_DevmodeContainer(ndr, "devmode", &r->devmode);
19480 break;
19482 case 4:
19483 ndr_print_spoolss_TimeCtr(ndr, "time", &r->time);
19484 break;
19486 case 5:
19487 ndr_print_sec_desc_buf(ndr, "sd", &r->sd);
19488 break;
19490 default:
19491 ndr_print_bad_level(ndr, name, level);
19495 static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Notify *r)
19497 if (ndr_flags & NDR_SCALARS) {
19498 NDR_CHECK(ndr_push_align(ndr, 5));
19499 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
19500 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->field, r->type));
19501 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->field));
19502 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr, NDR_SCALARS, r->variable_type));
19503 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
19504 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
19505 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
19506 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19508 if (ndr_flags & NDR_BUFFERS) {
19509 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
19511 return NDR_ERR_SUCCESS;
19514 static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Notify *r)
19516 if (ndr_flags & NDR_SCALARS) {
19517 NDR_CHECK(ndr_pull_align(ndr, 5));
19518 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
19519 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->field, r->type));
19520 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
19521 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr, NDR_SCALARS, &r->variable_type));
19522 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
19523 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
19524 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
19525 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19527 if (ndr_flags & NDR_BUFFERS) {
19528 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
19530 return NDR_ERR_SUCCESS;
19533 _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
19535 ndr_print_struct(ndr, name, "spoolss_Notify");
19536 ndr->depth++;
19537 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
19538 ndr_print_set_switch_value(ndr, &r->field, r->type);
19539 ndr_print_spoolss_Field(ndr, "field", &r->field);
19540 ndr_print_spoolss_NotifyTable(ndr, "variable_type", r->variable_type);
19541 ndr_print_uint32(ndr, "job_id", r->job_id);
19542 ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
19543 ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
19544 ndr->depth--;
19547 static enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyInfo *r)
19549 uint32_t cntr_notifies_0;
19550 if (ndr_flags & NDR_SCALARS) {
19551 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
19552 NDR_CHECK(ndr_push_align(ndr, 5));
19553 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
19554 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
19555 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
19556 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
19557 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
19559 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19561 if (ndr_flags & NDR_BUFFERS) {
19562 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
19563 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
19566 return NDR_ERR_SUCCESS;
19569 static enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyInfo *r)
19571 uint32_t cntr_notifies_0;
19572 TALLOC_CTX *_mem_save_notifies_0;
19573 if (ndr_flags & NDR_SCALARS) {
19574 NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
19575 NDR_CHECK(ndr_pull_align(ndr, 5));
19576 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
19577 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
19578 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
19579 NDR_PULL_ALLOC_N(ndr, r->notifies, ndr_get_array_size(ndr, &r->notifies));
19580 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
19581 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
19582 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
19583 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
19585 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
19586 if (r->notifies) {
19587 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
19589 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19591 if (ndr_flags & NDR_BUFFERS) {
19592 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
19593 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
19594 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
19595 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
19597 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
19599 return NDR_ERR_SUCCESS;
19602 _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
19604 uint32_t cntr_notifies_0;
19605 ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
19606 ndr->depth++;
19607 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
19608 ndr_print_uint32(ndr, "flags", r->flags);
19609 ndr_print_uint32(ndr, "count", r->count);
19610 ndr->print(ndr, "%s: ARRAY(%d)", "notifies", (int)r->count);
19611 ndr->depth++;
19612 for (cntr_notifies_0=0;cntr_notifies_0<r->count;cntr_notifies_0++) {
19613 char *idx_0=NULL;
19614 if (asprintf(&idx_0, "[%d]", cntr_notifies_0) != -1) {
19615 ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
19616 free(idx_0);
19619 ndr->depth--;
19620 ndr->depth--;
19623 static enum ndr_err_code ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_ReplyPrinterInfo *r)
19625 if (ndr_flags & NDR_SCALARS) {
19626 int level = ndr_push_get_switch_value(ndr, r);
19627 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
19628 NDR_CHECK(ndr_push_union_align(ndr, 5));
19629 switch (level) {
19630 case 0: {
19631 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
19632 break; }
19634 default:
19635 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19638 if (ndr_flags & NDR_BUFFERS) {
19639 int level = ndr_push_get_switch_value(ndr, r);
19640 switch (level) {
19641 case 0:
19642 if (r->info0) {
19643 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
19645 break;
19647 default:
19648 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19651 return NDR_ERR_SUCCESS;
19654 static enum ndr_err_code ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_ReplyPrinterInfo *r)
19656 int level;
19657 uint32_t _level;
19658 TALLOC_CTX *_mem_save_info0_0;
19659 level = ndr_pull_get_switch_value(ndr, r);
19660 if (ndr_flags & NDR_SCALARS) {
19661 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
19662 if (_level != level) {
19663 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
19665 NDR_CHECK(ndr_pull_union_align(ndr, 5));
19666 switch (level) {
19667 case 0: {
19668 uint32_t _ptr_info0;
19669 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
19670 if (_ptr_info0) {
19671 NDR_PULL_ALLOC(ndr, r->info0);
19672 } else {
19673 r->info0 = NULL;
19675 break; }
19677 default:
19678 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19681 if (ndr_flags & NDR_BUFFERS) {
19682 switch (level) {
19683 case 0:
19684 if (r->info0) {
19685 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
19686 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
19687 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
19688 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
19690 break;
19692 default:
19693 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19696 return NDR_ERR_SUCCESS;
19699 _PUBLIC_ void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_ReplyPrinterInfo *r)
19701 int level;
19702 level = ndr_print_get_switch_value(ndr, r);
19703 ndr_print_union(ndr, name, level, "spoolss_ReplyPrinterInfo");
19704 switch (level) {
19705 case 0:
19706 ndr_print_ptr(ndr, "info0", r->info0);
19707 ndr->depth++;
19708 if (r->info0) {
19709 ndr_print_spoolss_NotifyInfo(ndr, "info0", r->info0);
19711 ndr->depth--;
19712 break;
19714 default:
19715 ndr_print_bad_level(ndr, name, level);
19719 static enum ndr_err_code ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19721 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19722 return NDR_ERR_SUCCESS;
19725 static enum ndr_err_code ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19727 uint32_t v;
19728 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19729 *r = v;
19730 return NDR_ERR_SUCCESS;
19733 _PUBLIC_ void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print *ndr, const char *name, uint32_t r)
19735 ndr_print_uint32(ndr, name, r);
19736 ndr->depth++;
19737 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED, r);
19738 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED, r);
19739 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH, r);
19740 ndr->depth--;
19743 static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel1 *r)
19745 if (ndr_flags & NDR_SCALARS) {
19746 NDR_CHECK(ndr_push_align(ndr, 5));
19747 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
19748 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
19749 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
19750 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
19751 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
19752 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
19753 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
19754 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19756 if (ndr_flags & NDR_BUFFERS) {
19757 if (r->client) {
19758 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
19759 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19760 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
19761 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19763 if (r->user) {
19764 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
19765 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19766 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
19767 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19770 return NDR_ERR_SUCCESS;
19773 static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel1 *r)
19775 uint32_t _ptr_client;
19776 TALLOC_CTX *_mem_save_client_0;
19777 uint32_t _ptr_user;
19778 TALLOC_CTX *_mem_save_user_0;
19779 if (ndr_flags & NDR_SCALARS) {
19780 NDR_CHECK(ndr_pull_align(ndr, 5));
19781 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19782 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
19783 if (_ptr_client) {
19784 NDR_PULL_ALLOC(ndr, r->client);
19785 } else {
19786 r->client = NULL;
19788 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
19789 if (_ptr_user) {
19790 NDR_PULL_ALLOC(ndr, r->user);
19791 } else {
19792 r->user = NULL;
19794 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
19795 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
19796 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
19797 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
19798 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19800 if (ndr_flags & NDR_BUFFERS) {
19801 if (r->client) {
19802 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
19803 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
19804 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
19805 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
19806 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
19807 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));
19809 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
19810 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
19811 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
19813 if (r->user) {
19814 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
19815 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
19816 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
19817 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
19818 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
19819 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));
19821 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
19822 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
19823 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
19826 return NDR_ERR_SUCCESS;
19829 _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
19831 ndr_print_struct(ndr, name, "spoolss_UserLevel1");
19832 ndr->depth++;
19833 ndr_print_uint32(ndr, "size", r->size);
19834 ndr_print_ptr(ndr, "client", r->client);
19835 ndr->depth++;
19836 if (r->client) {
19837 ndr_print_string(ndr, "client", r->client);
19839 ndr->depth--;
19840 ndr_print_ptr(ndr, "user", r->user);
19841 ndr->depth++;
19842 if (r->user) {
19843 ndr_print_string(ndr, "user", r->user);
19845 ndr->depth--;
19846 ndr_print_uint32(ndr, "build", r->build);
19847 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
19848 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
19849 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
19850 ndr->depth--;
19853 static enum ndr_err_code ndr_push_spoolss_UserLevel2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel2 *r)
19855 if (ndr_flags & NDR_SCALARS) {
19856 NDR_CHECK(ndr_push_align(ndr, 4));
19857 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->not_used));
19858 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19860 if (ndr_flags & NDR_BUFFERS) {
19862 return NDR_ERR_SUCCESS;
19865 static enum ndr_err_code ndr_pull_spoolss_UserLevel2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel2 *r)
19867 if (ndr_flags & NDR_SCALARS) {
19868 NDR_CHECK(ndr_pull_align(ndr, 4));
19869 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->not_used));
19870 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
19872 if (ndr_flags & NDR_BUFFERS) {
19874 return NDR_ERR_SUCCESS;
19877 _PUBLIC_ void ndr_print_spoolss_UserLevel2(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel2 *r)
19879 ndr_print_struct(ndr, name, "spoolss_UserLevel2");
19880 ndr->depth++;
19881 ndr_print_uint32(ndr, "not_used", r->not_used);
19882 ndr->depth--;
19885 static enum ndr_err_code ndr_push_spoolss_UserLevel3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel3 *r)
19887 if (ndr_flags & NDR_SCALARS) {
19888 NDR_CHECK(ndr_push_align(ndr, 5));
19889 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
19890 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
19891 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size2));
19892 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
19893 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
19894 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
19895 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
19896 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
19897 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
19898 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reserved));
19899 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19901 if (ndr_flags & NDR_BUFFERS) {
19902 if (r->client) {
19903 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
19904 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19905 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
19906 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19908 if (r->user) {
19909 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
19910 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19911 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
19912 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19915 return NDR_ERR_SUCCESS;
19918 static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel3 *r)
19920 uint32_t _ptr_client;
19921 TALLOC_CTX *_mem_save_client_0;
19922 uint32_t _ptr_user;
19923 TALLOC_CTX *_mem_save_user_0;
19924 if (ndr_flags & NDR_SCALARS) {
19925 NDR_CHECK(ndr_pull_align(ndr, 5));
19926 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19927 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
19928 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size2));
19929 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
19930 if (_ptr_client) {
19931 NDR_PULL_ALLOC(ndr, r->client);
19932 } else {
19933 r->client = NULL;
19935 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
19936 if (_ptr_user) {
19937 NDR_PULL_ALLOC(ndr, r->user);
19938 } else {
19939 r->user = NULL;
19941 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
19942 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
19943 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
19944 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
19945 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reserved));
19946 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19948 if (ndr_flags & NDR_BUFFERS) {
19949 if (r->client) {
19950 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
19951 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
19952 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
19953 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
19954 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
19955 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));
19957 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
19958 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
19959 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
19961 if (r->user) {
19962 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
19963 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
19964 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
19965 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
19966 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
19967 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));
19969 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
19970 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
19971 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
19974 return NDR_ERR_SUCCESS;
19977 _PUBLIC_ void ndr_print_spoolss_UserLevel3(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel3 *r)
19979 ndr_print_struct(ndr, name, "spoolss_UserLevel3");
19980 ndr->depth++;
19981 ndr_print_uint32(ndr, "size", r->size);
19982 ndr_print_uint32(ndr, "flags", r->flags);
19983 ndr_print_uint32(ndr, "size2", r->size2);
19984 ndr_print_ptr(ndr, "client", r->client);
19985 ndr->depth++;
19986 if (r->client) {
19987 ndr_print_string(ndr, "client", r->client);
19989 ndr->depth--;
19990 ndr_print_ptr(ndr, "user", r->user);
19991 ndr->depth++;
19992 if (r->user) {
19993 ndr_print_string(ndr, "user", r->user);
19995 ndr->depth--;
19996 ndr_print_uint32(ndr, "build", r->build);
19997 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
19998 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
19999 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
20000 ndr_print_udlong(ndr, "reserved", r->reserved);
20001 ndr->depth--;
20004 static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, int ndr_flags, const union spoolss_UserLevel *r)
20006 if (ndr_flags & NDR_SCALARS) {
20007 int level = ndr_push_get_switch_value(ndr, r);
20008 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
20009 NDR_CHECK(ndr_push_union_align(ndr, 5));
20010 switch (level) {
20011 case 1: {
20012 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
20013 break; }
20015 case 2: {
20016 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level2));
20017 break; }
20019 case 3: {
20020 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level3));
20021 break; }
20023 default:
20024 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
20027 if (ndr_flags & NDR_BUFFERS) {
20028 int level = ndr_push_get_switch_value(ndr, r);
20029 switch (level) {
20030 case 1:
20031 if (r->level1) {
20032 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
20034 break;
20036 case 2:
20037 if (r->level2) {
20038 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
20040 break;
20042 case 3:
20043 if (r->level3) {
20044 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
20046 break;
20048 default:
20049 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
20052 return NDR_ERR_SUCCESS;
20055 static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, int ndr_flags, union spoolss_UserLevel *r)
20057 int level;
20058 uint32_t _level;
20059 TALLOC_CTX *_mem_save_level1_0;
20060 TALLOC_CTX *_mem_save_level2_0;
20061 TALLOC_CTX *_mem_save_level3_0;
20062 level = ndr_pull_get_switch_value(ndr, r);
20063 if (ndr_flags & NDR_SCALARS) {
20064 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
20065 if (_level != level) {
20066 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
20068 NDR_CHECK(ndr_pull_union_align(ndr, 5));
20069 switch (level) {
20070 case 1: {
20071 uint32_t _ptr_level1;
20072 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
20073 if (_ptr_level1) {
20074 NDR_PULL_ALLOC(ndr, r->level1);
20075 } else {
20076 r->level1 = NULL;
20078 break; }
20080 case 2: {
20081 uint32_t _ptr_level2;
20082 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
20083 if (_ptr_level2) {
20084 NDR_PULL_ALLOC(ndr, r->level2);
20085 } else {
20086 r->level2 = NULL;
20088 break; }
20090 case 3: {
20091 uint32_t _ptr_level3;
20092 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
20093 if (_ptr_level3) {
20094 NDR_PULL_ALLOC(ndr, r->level3);
20095 } else {
20096 r->level3 = NULL;
20098 break; }
20100 default:
20101 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
20104 if (ndr_flags & NDR_BUFFERS) {
20105 switch (level) {
20106 case 1:
20107 if (r->level1) {
20108 _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
20109 NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
20110 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
20111 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
20113 break;
20115 case 2:
20116 if (r->level2) {
20117 _mem_save_level2_0 = NDR_PULL_GET_MEM_CTX(ndr);
20118 NDR_PULL_SET_MEM_CTX(ndr, r->level2, 0);
20119 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
20120 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level2_0, 0);
20122 break;
20124 case 3:
20125 if (r->level3) {
20126 _mem_save_level3_0 = NDR_PULL_GET_MEM_CTX(ndr);
20127 NDR_PULL_SET_MEM_CTX(ndr, r->level3, 0);
20128 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
20129 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level3_0, 0);
20131 break;
20133 default:
20134 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
20137 return NDR_ERR_SUCCESS;
20140 _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
20142 int level;
20143 level = ndr_print_get_switch_value(ndr, r);
20144 ndr_print_union(ndr, name, level, "spoolss_UserLevel");
20145 switch (level) {
20146 case 1:
20147 ndr_print_ptr(ndr, "level1", r->level1);
20148 ndr->depth++;
20149 if (r->level1) {
20150 ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
20152 ndr->depth--;
20153 break;
20155 case 2:
20156 ndr_print_ptr(ndr, "level2", r->level2);
20157 ndr->depth++;
20158 if (r->level2) {
20159 ndr_print_spoolss_UserLevel2(ndr, "level2", r->level2);
20161 ndr->depth--;
20162 break;
20164 case 3:
20165 ndr_print_ptr(ndr, "level3", r->level3);
20166 ndr->depth++;
20167 if (r->level3) {
20168 ndr_print_spoolss_UserLevel3(ndr, "level3", r->level3);
20170 ndr->depth--;
20171 break;
20173 default:
20174 ndr_print_bad_level(ndr, name, level);
20178 static enum ndr_err_code ndr_push_spoolss_UserLevelCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevelCtr *r)
20180 if (ndr_flags & NDR_SCALARS) {
20181 NDR_CHECK(ndr_push_align(ndr, 5));
20182 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
20183 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
20184 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
20185 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
20187 if (ndr_flags & NDR_BUFFERS) {
20188 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
20190 return NDR_ERR_SUCCESS;
20193 static enum ndr_err_code ndr_pull_spoolss_UserLevelCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevelCtr *r)
20195 if (ndr_flags & NDR_SCALARS) {
20196 NDR_CHECK(ndr_pull_align(ndr, 5));
20197 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
20198 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
20199 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
20200 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
20202 if (ndr_flags & NDR_BUFFERS) {
20203 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
20205 return NDR_ERR_SUCCESS;
20208 _PUBLIC_ void ndr_print_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevelCtr *r)
20210 ndr_print_struct(ndr, name, "spoolss_UserLevelCtr");
20211 ndr->depth++;
20212 ndr_print_uint32(ndr, "level", r->level);
20213 ndr_print_set_switch_value(ndr, &r->user_info, r->level);
20214 ndr_print_spoolss_UserLevel(ndr, "user_info", &r->user_info);
20215 ndr->depth--;
20218 static enum ndr_err_code ndr_push_spoolss_AccessRights(struct ndr_push *ndr, int ndr_flags, uint32_t r)
20220 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
20221 return NDR_ERR_SUCCESS;
20224 static enum ndr_err_code ndr_pull_spoolss_AccessRights(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
20226 uint32_t v;
20227 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
20228 *r = v;
20229 return NDR_ERR_SUCCESS;
20232 _PUBLIC_ void ndr_print_spoolss_AccessRights(struct ndr_print *ndr, const char *name, uint32_t r)
20234 ndr_print_uint32(ndr, name, r);
20235 ndr->depth++;
20236 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER, r);
20237 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE, r);
20238 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER, r);
20239 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE, r);
20240 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER, r);
20241 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ, r);
20242 ndr->depth--;
20245 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterEnumValues(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterEnumValues *r)
20247 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
20248 if (ndr_flags & NDR_SCALARS) {
20249 NDR_CHECK(ndr_push_align(ndr, 5));
20250 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
20252 uint32_t _flags_save_string = ndr->flags;
20253 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
20254 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->value_name));
20255 ndr->flags = _flags_save_string;
20257 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2 * strlen_m_term(r->value_name)));
20258 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->type));
20260 uint32_t _flags_save_DATA_BLOB = ndr->flags;
20261 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
20262 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data));
20263 ndr->flags = _flags_save_DATA_BLOB;
20265 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->data->length));
20266 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
20268 if (ndr_flags & NDR_BUFFERS) {
20269 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
20271 uint32_t _flags_save_string = ndr->flags;
20272 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
20273 if (r->value_name) {
20274 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->value_name));
20275 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->value_name));
20276 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->value_name));
20278 ndr->flags = _flags_save_string;
20281 uint32_t _flags_save_DATA_BLOB = ndr->flags;
20282 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
20283 if (r->data) {
20284 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data));
20286 struct ndr_push *_ndr_data;
20287 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_data, 0, r->data->length));
20288 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_data, NDR_SCALARS, *r->data));
20289 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_data, 0, r->data->length));
20291 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data));
20293 ndr->flags = _flags_save_DATA_BLOB;
20296 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
20297 return NDR_ERR_SUCCESS;
20300 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterEnumValues(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterEnumValues *r)
20302 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
20303 uint32_t _ptr_value_name;
20304 TALLOC_CTX *_mem_save_value_name_0;
20305 uint32_t _ptr_data;
20306 TALLOC_CTX *_mem_save_data_0;
20307 if (ndr_flags & NDR_SCALARS) {
20308 NDR_CHECK(ndr_pull_align(ndr, 5));
20309 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
20311 uint32_t _flags_save_string = ndr->flags;
20312 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
20313 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_name));
20314 if (_ptr_value_name) {
20315 NDR_PULL_ALLOC(ndr, r->value_name);
20316 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->value_name, _ptr_value_name));
20317 } else {
20318 r->value_name = NULL;
20320 ndr->flags = _flags_save_string;
20322 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value_name_len));
20323 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->type));
20325 uint32_t _flags_save_DATA_BLOB = ndr->flags;
20326 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
20327 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
20328 if (_ptr_data) {
20329 NDR_PULL_ALLOC(ndr, r->data);
20330 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data, _ptr_data));
20331 } else {
20332 r->data = NULL;
20334 ndr->flags = _flags_save_DATA_BLOB;
20336 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data_length));
20337 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
20339 if (ndr_flags & NDR_BUFFERS) {
20340 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
20342 uint32_t _flags_save_string = ndr->flags;
20343 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
20344 if (r->value_name) {
20345 uint32_t _relative_save_offset;
20346 _relative_save_offset = ndr->offset;
20347 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->value_name));
20348 _mem_save_value_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
20349 NDR_PULL_SET_MEM_CTX(ndr, r->value_name, 0);
20350 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->value_name));
20351 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_name_0, 0);
20352 if (ndr->offset > ndr->relative_highest_offset) {
20353 ndr->relative_highest_offset = ndr->offset;
20355 ndr->offset = _relative_save_offset;
20357 ndr->flags = _flags_save_string;
20360 uint32_t _flags_save_DATA_BLOB = ndr->flags;
20361 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
20362 if (r->data) {
20363 uint32_t _relative_save_offset;
20364 _relative_save_offset = ndr->offset;
20365 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data));
20366 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
20367 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
20369 struct ndr_pull *_ndr_data;
20370 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
20371 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_data, NDR_SCALARS, r->data));
20372 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 0, r->data_length));
20374 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
20375 if (ndr->offset > ndr->relative_highest_offset) {
20376 ndr->relative_highest_offset = ndr->offset;
20378 ndr->offset = _relative_save_offset;
20380 ndr->flags = _flags_save_DATA_BLOB;
20383 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
20384 return NDR_ERR_SUCCESS;
20387 _PUBLIC_ void ndr_print_spoolss_PrinterEnumValues(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterEnumValues *r)
20389 ndr_print_struct(ndr, name, "spoolss_PrinterEnumValues");
20390 ndr->depth++;
20391 ndr_print_ptr(ndr, "value_name", r->value_name);
20392 ndr->depth++;
20393 if (r->value_name) {
20394 ndr_print_string(ndr, "value_name", r->value_name);
20396 ndr->depth--;
20397 ndr_print_uint32(ndr, "value_name_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * strlen_m_term(r->value_name):r->value_name_len);
20398 ndr_print_winreg_Type(ndr, "type", r->type);
20399 ndr_print_ptr(ndr, "data", r->data);
20400 ndr->depth++;
20401 if (r->data) {
20402 ndr_print_DATA_BLOB(ndr, "data", *r->data);
20404 ndr->depth--;
20405 ndr_print_uint32(ndr, "data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->data->length:r->data_length);
20406 ndr->depth--;
20409 _PUBLIC_ size_t ndr_size_spoolss_PrinterEnumValues(const struct spoolss_PrinterEnumValues *r, struct smb_iconv_convenience *ic, int flags)
20411 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterEnumValues, ic);
20414 static enum ndr_err_code ndr_push_spoolss_KeyNames(struct ndr_push *ndr, int ndr_flags, const union spoolss_KeyNames *r)
20416 if (ndr_flags & NDR_SCALARS) {
20417 int level = ndr_push_get_switch_value(ndr, r);
20418 NDR_CHECK(ndr_push_union_align(ndr, 4));
20419 switch (level) {
20420 case 0: {
20421 break; }
20423 case 1: {
20424 break; }
20426 default: {
20428 uint32_t _flags_save_string_array = ndr->flags;
20429 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
20430 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
20431 ndr->flags = _flags_save_string_array;
20433 break; }
20437 if (ndr_flags & NDR_BUFFERS) {
20438 int level = ndr_push_get_switch_value(ndr, r);
20439 switch (level) {
20440 case 0:
20441 break;
20443 case 1:
20444 break;
20446 default:
20447 break;
20451 return NDR_ERR_SUCCESS;
20454 static enum ndr_err_code ndr_pull_spoolss_KeyNames(struct ndr_pull *ndr, int ndr_flags, union spoolss_KeyNames *r)
20456 int level;
20457 level = ndr_pull_get_switch_value(ndr, r);
20458 if (ndr_flags & NDR_SCALARS) {
20459 NDR_CHECK(ndr_pull_union_align(ndr, 4));
20460 switch (level) {
20461 case 0: {
20462 break; }
20464 case 1: {
20465 break; }
20467 default: {
20469 uint32_t _flags_save_string_array = ndr->flags;
20470 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
20471 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
20472 ndr->flags = _flags_save_string_array;
20474 break; }
20478 if (ndr_flags & NDR_BUFFERS) {
20479 switch (level) {
20480 case 0:
20481 break;
20483 case 1:
20484 break;
20486 default:
20487 break;
20491 return NDR_ERR_SUCCESS;
20494 _PUBLIC_ void ndr_print_spoolss_KeyNames(struct ndr_print *ndr, const char *name, const union spoolss_KeyNames *r)
20496 int level;
20497 level = ndr_print_get_switch_value(ndr, r);
20498 ndr_print_union(ndr, name, level, "spoolss_KeyNames");
20499 switch (level) {
20500 case 0:
20501 break;
20503 case 1:
20504 break;
20506 default:
20507 ndr_print_string_array(ndr, "string_array", r->string_array);
20508 break;
20513 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
20515 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
20516 return NDR_ERR_SUCCESS;
20519 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
20521 uint32_t v;
20522 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
20523 *r = v;
20524 return NDR_ERR_SUCCESS;
20527 _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
20529 ndr_print_uint32(ndr, name, r);
20530 ndr->depth++;
20531 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
20532 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
20533 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
20534 ndr->depth--;
20537 static enum ndr_err_code ndr_push_spoolss_PortProtocol(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortProtocol r)
20539 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
20540 return NDR_ERR_SUCCESS;
20543 static enum ndr_err_code ndr_pull_spoolss_PortProtocol(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortProtocol *r)
20545 uint32_t v;
20546 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
20547 *r = v;
20548 return NDR_ERR_SUCCESS;
20551 _PUBLIC_ void ndr_print_spoolss_PortProtocol(struct ndr_print *ndr, const char *name, enum spoolss_PortProtocol r)
20553 const char *val = NULL;
20555 switch (r) {
20556 case PROTOCOL_RAWTCP_TYPE: val = "PROTOCOL_RAWTCP_TYPE"; break;
20557 case PROTOCOL_LPR_TYPE: val = "PROTOCOL_LPR_TYPE"; break;
20559 ndr_print_enum(ndr, name, "ENUM", val, r);
20562 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData1 *r)
20564 if (ndr_flags & NDR_SCALARS) {
20565 NDR_CHECK(ndr_push_align(ndr, 4));
20566 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
20567 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
20568 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
20569 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
20570 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
20571 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
20572 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
20573 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
20574 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
20575 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
20576 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
20577 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
20578 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
20579 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
20580 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
20581 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
20583 if (ndr_flags & NDR_BUFFERS) {
20585 return NDR_ERR_SUCCESS;
20588 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData1 *r)
20590 if (ndr_flags & NDR_SCALARS) {
20591 NDR_CHECK(ndr_pull_align(ndr, 4));
20592 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
20593 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
20594 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
20595 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
20596 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
20597 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
20598 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
20599 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
20600 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
20601 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
20602 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
20603 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
20604 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
20605 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
20606 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
20607 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
20609 if (ndr_flags & NDR_BUFFERS) {
20611 return NDR_ERR_SUCCESS;
20614 _PUBLIC_ void ndr_print_spoolss_PortData1(struct ndr_print *ndr, const char *name, const struct spoolss_PortData1 *r)
20616 ndr_print_struct(ndr, name, "spoolss_PortData1");
20617 ndr->depth++;
20618 ndr_print_string(ndr, "portname", r->portname);
20619 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000001:r->version);
20620 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
20621 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
20622 ndr_print_uint32(ndr, "reserved", r->reserved);
20623 ndr_print_string(ndr, "hostaddress", r->hostaddress);
20624 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
20625 ndr_print_uint32(ndr, "dblspool", r->dblspool);
20626 ndr_print_string(ndr, "queue", r->queue);
20627 ndr_print_string(ndr, "ip_address", r->ip_address);
20628 ndr_print_string(ndr, "hardware_address", r->hardware_address);
20629 ndr_print_string(ndr, "device_type", r->device_type);
20630 ndr_print_uint32(ndr, "port_number", r->port_number);
20631 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
20632 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
20633 ndr->depth--;
20636 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData2 *r)
20638 if (ndr_flags & NDR_SCALARS) {
20639 NDR_CHECK(ndr_push_align(ndr, 4));
20640 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
20641 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000002));
20642 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
20643 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
20644 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
20645 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
20646 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
20647 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
20648 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
20649 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
20650 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
20651 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
20652 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
20653 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_monitor_mib_index));
20654 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
20656 if (ndr_flags & NDR_BUFFERS) {
20658 return NDR_ERR_SUCCESS;
20661 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData2 *r)
20663 if (ndr_flags & NDR_SCALARS) {
20664 NDR_CHECK(ndr_pull_align(ndr, 4));
20665 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
20666 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
20667 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
20668 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
20669 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
20670 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
20671 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
20672 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
20673 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
20674 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
20675 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
20676 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
20677 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
20678 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_monitor_mib_index));
20679 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
20681 if (ndr_flags & NDR_BUFFERS) {
20683 return NDR_ERR_SUCCESS;
20686 _PUBLIC_ void ndr_print_spoolss_PortData2(struct ndr_print *ndr, const char *name, const struct spoolss_PortData2 *r)
20688 ndr_print_struct(ndr, name, "spoolss_PortData2");
20689 ndr->depth++;
20690 ndr_print_string(ndr, "portname", r->portname);
20691 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000002:r->version);
20692 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
20693 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
20694 ndr_print_uint32(ndr, "reserved", r->reserved);
20695 ndr_print_string(ndr, "hostaddress", r->hostaddress);
20696 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
20697 ndr_print_uint32(ndr, "dblspool", r->dblspool);
20698 ndr_print_string(ndr, "queue", r->queue);
20699 ndr_print_string(ndr, "device_type", r->device_type);
20700 ndr_print_uint32(ndr, "port_number", r->port_number);
20701 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
20702 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
20703 ndr_print_uint32(ndr, "port_monitor_mib_index", r->port_monitor_mib_index);
20704 ndr->depth--;
20707 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorUi(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorUi *r)
20709 if (ndr_flags & NDR_SCALARS) {
20710 NDR_CHECK(ndr_push_align(ndr, 4));
20712 uint32_t _flags_save_string = ndr->flags;
20713 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
20714 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
20715 ndr->flags = _flags_save_string;
20717 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
20719 if (ndr_flags & NDR_BUFFERS) {
20721 return NDR_ERR_SUCCESS;
20724 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorUi(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorUi *r)
20726 if (ndr_flags & NDR_SCALARS) {
20727 NDR_CHECK(ndr_pull_align(ndr, 4));
20729 uint32_t _flags_save_string = ndr->flags;
20730 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
20731 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
20732 ndr->flags = _flags_save_string;
20734 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
20736 if (ndr_flags & NDR_BUFFERS) {
20738 return NDR_ERR_SUCCESS;
20741 _PUBLIC_ void ndr_print_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorUi *r)
20743 ndr_print_struct(ndr, name, "spoolss_MonitorUi");
20744 ndr->depth++;
20745 ndr_print_string(ndr, "dll_name", r->dll_name);
20746 ndr->depth--;
20749 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
20751 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
20752 return NDR_ERR_SUCCESS;
20755 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
20757 uint32_t v;
20758 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
20759 *r = v;
20760 return NDR_ERR_SUCCESS;
20763 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r)
20765 ndr_print_uint32(ndr, name, r);
20766 ndr->depth++;
20767 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
20768 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
20769 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
20770 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
20771 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
20772 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
20773 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
20774 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
20775 ndr->depth--;
20778 static enum ndr_err_code ndr_push_spoolss_CorePrinterDriver(struct ndr_push *ndr, int ndr_flags, const struct spoolss_CorePrinterDriver *r)
20780 if (ndr_flags & NDR_SCALARS) {
20781 NDR_CHECK(ndr_push_align(ndr, 8));
20782 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->core_driver_guid));
20783 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
20784 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
20785 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, 520, sizeof(uint8_t), CH_UTF8));
20786 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
20788 if (ndr_flags & NDR_BUFFERS) {
20790 return NDR_ERR_SUCCESS;
20793 static enum ndr_err_code ndr_pull_spoolss_CorePrinterDriver(struct ndr_pull *ndr, int ndr_flags, struct spoolss_CorePrinterDriver *r)
20795 if (ndr_flags & NDR_SCALARS) {
20796 NDR_CHECK(ndr_pull_align(ndr, 8));
20797 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->core_driver_guid));
20798 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
20799 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
20800 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, 520, sizeof(uint8_t), CH_UTF8));
20801 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
20803 if (ndr_flags & NDR_BUFFERS) {
20805 return NDR_ERR_SUCCESS;
20808 _PUBLIC_ void ndr_print_spoolss_CorePrinterDriver(struct ndr_print *ndr, const char *name, const struct spoolss_CorePrinterDriver *r)
20810 ndr_print_struct(ndr, name, "spoolss_CorePrinterDriver");
20811 ndr->depth++;
20812 ndr_print_GUID(ndr, "core_driver_guid", &r->core_driver_guid);
20813 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
20814 ndr_print_hyper(ndr, "driver_version", r->driver_version);
20815 ndr_print_string(ndr, "formname", r->formname);
20816 ndr->depth--;
20819 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r)
20821 if (flags & NDR_IN) {
20822 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
20823 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20824 if (r->in.server) {
20825 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20826 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20827 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20828 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20830 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20831 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20832 if (r->in.buffer) {
20833 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20835 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20837 if (flags & NDR_OUT) {
20838 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20839 if (r->out.info) {
20840 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
20842 if (r->out.needed == NULL) {
20843 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20845 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20846 if (r->out.count == NULL) {
20847 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20849 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
20850 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20852 return NDR_ERR_SUCCESS;
20855 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinters *r)
20857 uint32_t _ptr_server;
20858 uint32_t _ptr_buffer;
20859 uint32_t _ptr_info;
20860 TALLOC_CTX *_mem_save_server_0;
20861 TALLOC_CTX *_mem_save_buffer_0;
20862 TALLOC_CTX *_mem_save_info_0;
20863 TALLOC_CTX *_mem_save_needed_0;
20864 TALLOC_CTX *_mem_save_count_0;
20865 if (flags & NDR_IN) {
20866 ZERO_STRUCT(r->out);
20868 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
20869 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20870 if (_ptr_server) {
20871 NDR_PULL_ALLOC(ndr, r->in.server);
20872 } else {
20873 r->in.server = NULL;
20875 if (r->in.server) {
20876 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20877 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20878 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20879 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20880 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20881 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));
20883 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20884 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20885 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20887 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20888 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20889 if (_ptr_buffer) {
20890 NDR_PULL_ALLOC(ndr, r->in.buffer);
20891 } else {
20892 r->in.buffer = NULL;
20894 if (r->in.buffer) {
20895 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20896 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20897 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20898 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20900 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20901 NDR_PULL_ALLOC(ndr, r->out.needed);
20902 ZERO_STRUCTP(r->out.needed);
20903 NDR_PULL_ALLOC(ndr, r->out.count);
20904 ZERO_STRUCTP(r->out.count);
20906 if (flags & NDR_OUT) {
20907 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20908 if (_ptr_info) {
20909 NDR_PULL_ALLOC(ndr, r->out.info);
20910 } else {
20911 r->out.info = NULL;
20913 if (r->out.info) {
20914 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20915 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20916 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
20917 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20919 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20920 NDR_PULL_ALLOC(ndr, r->out.needed);
20922 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20923 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20924 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20925 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20926 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20927 NDR_PULL_ALLOC(ndr, r->out.count);
20929 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
20930 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
20931 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
20932 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
20933 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20935 return NDR_ERR_SUCCESS;
20938 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinters *r)
20940 uint32_t cntr_info_0;
20941 if (flags & NDR_IN) {
20942 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20943 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
20945 if (flags & NDR_OUT) {
20946 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20947 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20948 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20950 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20951 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20954 return NDR_ERR_SUCCESS;
20957 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinters *r)
20959 uint32_t cntr_info_0;
20960 TALLOC_CTX *_mem_save_info_0;
20961 if (flags & NDR_IN) {
20962 ZERO_STRUCT(r->out);
20964 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20965 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
20967 if (flags & NDR_OUT) {
20968 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
20969 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20970 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20971 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20972 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20973 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20975 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20976 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20978 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20980 return NDR_ERR_SUCCESS;
20983 _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinters *r)
20985 uint32_t cntr_info_2;
20986 ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
20987 ndr->depth++;
20988 if (flags & NDR_SET_VALUES) {
20989 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20991 if (flags & NDR_IN) {
20992 ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
20993 ndr->depth++;
20994 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
20995 ndr_print_ptr(ndr, "server", r->in.server);
20996 ndr->depth++;
20997 if (r->in.server) {
20998 ndr_print_string(ndr, "server", r->in.server);
21000 ndr->depth--;
21001 ndr_print_uint32(ndr, "level", r->in.level);
21002 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21003 ndr->depth++;
21004 if (r->in.buffer) {
21005 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21007 ndr->depth--;
21008 ndr_print_uint32(ndr, "offered", r->in.offered);
21009 ndr->depth--;
21011 if (flags & NDR_OUT) {
21012 ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
21013 ndr->depth++;
21014 ndr_print_ptr(ndr, "count", r->out.count);
21015 ndr->depth++;
21016 ndr_print_uint32(ndr, "count", *r->out.count);
21017 ndr->depth--;
21018 ndr_print_ptr(ndr, "info", r->out.info);
21019 ndr->depth++;
21020 ndr_print_ptr(ndr, "info", *r->out.info);
21021 ndr->depth++;
21022 if (*r->out.info) {
21023 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
21024 ndr->depth++;
21025 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
21026 char *idx_2=NULL;
21027 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
21028 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
21029 ndr_print_spoolss_PrinterInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
21030 free(idx_2);
21033 ndr->depth--;
21035 ndr->depth--;
21036 ndr->depth--;
21037 ndr_print_ptr(ndr, "needed", r->out.needed);
21038 ndr->depth++;
21039 ndr_print_uint32(ndr, "needed", *r->out.needed);
21040 ndr->depth--;
21041 ndr_print_WERROR(ndr, "result", r->out.result);
21042 ndr->depth--;
21044 ndr->depth--;
21047 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinter *r)
21049 if (flags & NDR_IN) {
21050 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
21051 if (r->in.printername) {
21052 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
21053 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21054 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
21055 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21057 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
21058 if (r->in.datatype) {
21059 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
21060 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21061 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
21062 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21064 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
21065 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
21067 if (flags & NDR_OUT) {
21068 if (r->out.handle == NULL) {
21069 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21071 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21072 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21074 return NDR_ERR_SUCCESS;
21077 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinter *r)
21079 uint32_t _ptr_printername;
21080 uint32_t _ptr_datatype;
21081 TALLOC_CTX *_mem_save_printername_0;
21082 TALLOC_CTX *_mem_save_datatype_0;
21083 TALLOC_CTX *_mem_save_handle_0;
21084 if (flags & NDR_IN) {
21085 ZERO_STRUCT(r->out);
21087 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
21088 if (_ptr_printername) {
21089 NDR_PULL_ALLOC(ndr, r->in.printername);
21090 } else {
21091 r->in.printername = NULL;
21093 if (r->in.printername) {
21094 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
21095 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
21096 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
21097 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
21098 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
21099 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));
21101 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
21102 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
21103 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
21105 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
21106 if (_ptr_datatype) {
21107 NDR_PULL_ALLOC(ndr, r->in.datatype);
21108 } else {
21109 r->in.datatype = NULL;
21111 if (r->in.datatype) {
21112 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
21113 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
21114 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
21115 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
21116 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
21117 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));
21119 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
21120 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
21121 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
21123 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
21124 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
21125 NDR_PULL_ALLOC(ndr, r->out.handle);
21126 ZERO_STRUCTP(r->out.handle);
21128 if (flags & NDR_OUT) {
21129 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21130 NDR_PULL_ALLOC(ndr, r->out.handle);
21132 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21133 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
21134 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21135 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21136 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21138 return NDR_ERR_SUCCESS;
21141 _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinter *r)
21143 ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
21144 ndr->depth++;
21145 if (flags & NDR_SET_VALUES) {
21146 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21148 if (flags & NDR_IN) {
21149 ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
21150 ndr->depth++;
21151 ndr_print_ptr(ndr, "printername", r->in.printername);
21152 ndr->depth++;
21153 if (r->in.printername) {
21154 ndr_print_string(ndr, "printername", r->in.printername);
21156 ndr->depth--;
21157 ndr_print_ptr(ndr, "datatype", r->in.datatype);
21158 ndr->depth++;
21159 if (r->in.datatype) {
21160 ndr_print_string(ndr, "datatype", r->in.datatype);
21162 ndr->depth--;
21163 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
21164 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
21165 ndr->depth--;
21167 if (flags & NDR_OUT) {
21168 ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
21169 ndr->depth++;
21170 ndr_print_ptr(ndr, "handle", r->out.handle);
21171 ndr->depth++;
21172 ndr_print_policy_handle(ndr, "handle", r->out.handle);
21173 ndr->depth--;
21174 ndr_print_WERROR(ndr, "result", r->out.result);
21175 ndr->depth--;
21177 ndr->depth--;
21180 static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, int flags, const struct spoolss_SetJob *r)
21182 if (flags & NDR_IN) {
21183 if (r->in.handle == NULL) {
21184 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21186 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21187 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
21188 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
21189 if (r->in.ctr) {
21190 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
21192 NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
21194 if (flags & NDR_OUT) {
21195 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21197 return NDR_ERR_SUCCESS;
21200 static enum ndr_err_code ndr_pull_spoolss_SetJob(struct ndr_pull *ndr, int flags, struct spoolss_SetJob *r)
21202 uint32_t _ptr_ctr;
21203 TALLOC_CTX *_mem_save_handle_0;
21204 TALLOC_CTX *_mem_save_ctr_0;
21205 if (flags & NDR_IN) {
21206 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21207 NDR_PULL_ALLOC(ndr, r->in.handle);
21209 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21210 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21211 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21212 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21213 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
21214 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
21215 if (_ptr_ctr) {
21216 NDR_PULL_ALLOC(ndr, r->in.ctr);
21217 } else {
21218 r->in.ctr = NULL;
21220 if (r->in.ctr) {
21221 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21222 NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
21223 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
21224 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
21226 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
21228 if (flags & NDR_OUT) {
21229 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21231 return NDR_ERR_SUCCESS;
21234 _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetJob *r)
21236 ndr_print_struct(ndr, name, "spoolss_SetJob");
21237 ndr->depth++;
21238 if (flags & NDR_SET_VALUES) {
21239 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21241 if (flags & NDR_IN) {
21242 ndr_print_struct(ndr, "in", "spoolss_SetJob");
21243 ndr->depth++;
21244 ndr_print_ptr(ndr, "handle", r->in.handle);
21245 ndr->depth++;
21246 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21247 ndr->depth--;
21248 ndr_print_uint32(ndr, "job_id", r->in.job_id);
21249 ndr_print_ptr(ndr, "ctr", r->in.ctr);
21250 ndr->depth++;
21251 if (r->in.ctr) {
21252 ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
21254 ndr->depth--;
21255 ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
21256 ndr->depth--;
21258 if (flags & NDR_OUT) {
21259 ndr_print_struct(ndr, "out", "spoolss_SetJob");
21260 ndr->depth++;
21261 ndr_print_WERROR(ndr, "result", r->out.result);
21262 ndr->depth--;
21264 ndr->depth--;
21267 static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, int flags, const struct spoolss_GetJob *r)
21269 if (flags & NDR_IN) {
21270 if (r->in.handle == NULL) {
21271 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21273 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21274 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
21275 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21276 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21277 if (r->in.buffer) {
21278 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21280 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21282 if (flags & NDR_OUT) {
21283 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21284 if (r->out.info) {
21286 struct ndr_push *_ndr_info;
21287 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21288 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21289 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21290 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21293 if (r->out.needed == NULL) {
21294 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21296 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21297 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21299 return NDR_ERR_SUCCESS;
21302 static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags, struct spoolss_GetJob *r)
21304 uint32_t _ptr_buffer;
21305 uint32_t _ptr_info;
21306 TALLOC_CTX *_mem_save_handle_0;
21307 TALLOC_CTX *_mem_save_buffer_0;
21308 TALLOC_CTX *_mem_save_info_0;
21309 TALLOC_CTX *_mem_save_needed_0;
21310 if (flags & NDR_IN) {
21311 ZERO_STRUCT(r->out);
21313 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21314 NDR_PULL_ALLOC(ndr, r->in.handle);
21316 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21317 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21318 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21319 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21320 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
21321 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21322 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21323 if (_ptr_buffer) {
21324 NDR_PULL_ALLOC(ndr, r->in.buffer);
21325 } else {
21326 r->in.buffer = NULL;
21328 if (r->in.buffer) {
21329 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21330 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21331 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21332 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21334 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21335 NDR_PULL_ALLOC(ndr, r->out.needed);
21336 ZERO_STRUCTP(r->out.needed);
21338 if (flags & NDR_OUT) {
21339 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21340 if (_ptr_info) {
21341 NDR_PULL_ALLOC(ndr, r->out.info);
21342 } else {
21343 r->out.info = NULL;
21345 if (r->out.info) {
21346 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21347 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21349 struct ndr_pull *_ndr_info;
21350 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21351 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21352 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21353 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21355 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21357 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21358 NDR_PULL_ALLOC(ndr, r->out.needed);
21360 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21361 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21362 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21363 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21364 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21366 return NDR_ERR_SUCCESS;
21369 _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetJob *r)
21371 ndr_print_struct(ndr, name, "spoolss_GetJob");
21372 ndr->depth++;
21373 if (flags & NDR_SET_VALUES) {
21374 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21376 if (flags & NDR_IN) {
21377 ndr_print_struct(ndr, "in", "spoolss_GetJob");
21378 ndr->depth++;
21379 ndr_print_ptr(ndr, "handle", r->in.handle);
21380 ndr->depth++;
21381 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21382 ndr->depth--;
21383 ndr_print_uint32(ndr, "job_id", r->in.job_id);
21384 ndr_print_uint32(ndr, "level", r->in.level);
21385 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21386 ndr->depth++;
21387 if (r->in.buffer) {
21388 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21390 ndr->depth--;
21391 ndr_print_uint32(ndr, "offered", r->in.offered);
21392 ndr->depth--;
21394 if (flags & NDR_OUT) {
21395 ndr_print_struct(ndr, "out", "spoolss_GetJob");
21396 ndr->depth++;
21397 ndr_print_ptr(ndr, "info", r->out.info);
21398 ndr->depth++;
21399 if (r->out.info) {
21400 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21401 ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
21403 ndr->depth--;
21404 ndr_print_ptr(ndr, "needed", r->out.needed);
21405 ndr->depth++;
21406 ndr_print_uint32(ndr, "needed", *r->out.needed);
21407 ndr->depth--;
21408 ndr_print_WERROR(ndr, "result", r->out.result);
21409 ndr->depth--;
21411 ndr->depth--;
21414 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct _spoolss_EnumJobs *r)
21416 if (flags & NDR_IN) {
21417 if (r->in.handle == NULL) {
21418 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21420 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21421 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
21422 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
21423 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21424 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21425 if (r->in.buffer) {
21426 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21428 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21430 if (flags & NDR_OUT) {
21431 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21432 if (r->out.info) {
21433 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
21435 if (r->out.needed == NULL) {
21436 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21438 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21439 if (r->out.count == NULL) {
21440 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21442 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
21443 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21445 return NDR_ERR_SUCCESS;
21448 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct _spoolss_EnumJobs *r)
21450 uint32_t _ptr_buffer;
21451 uint32_t _ptr_info;
21452 TALLOC_CTX *_mem_save_handle_0;
21453 TALLOC_CTX *_mem_save_buffer_0;
21454 TALLOC_CTX *_mem_save_info_0;
21455 TALLOC_CTX *_mem_save_needed_0;
21456 TALLOC_CTX *_mem_save_count_0;
21457 if (flags & NDR_IN) {
21458 ZERO_STRUCT(r->out);
21460 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21461 NDR_PULL_ALLOC(ndr, r->in.handle);
21463 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21464 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21465 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21466 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21467 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
21468 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
21469 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21470 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21471 if (_ptr_buffer) {
21472 NDR_PULL_ALLOC(ndr, r->in.buffer);
21473 } else {
21474 r->in.buffer = NULL;
21476 if (r->in.buffer) {
21477 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21478 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21479 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21480 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21482 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21483 NDR_PULL_ALLOC(ndr, r->out.needed);
21484 ZERO_STRUCTP(r->out.needed);
21485 NDR_PULL_ALLOC(ndr, r->out.count);
21486 ZERO_STRUCTP(r->out.count);
21488 if (flags & NDR_OUT) {
21489 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21490 if (_ptr_info) {
21491 NDR_PULL_ALLOC(ndr, r->out.info);
21492 } else {
21493 r->out.info = NULL;
21495 if (r->out.info) {
21496 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21497 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21498 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
21499 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21501 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21502 NDR_PULL_ALLOC(ndr, r->out.needed);
21504 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21505 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21506 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21507 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21508 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21509 NDR_PULL_ALLOC(ndr, r->out.count);
21511 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
21512 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
21513 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
21514 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
21515 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21517 return NDR_ERR_SUCCESS;
21520 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct __spoolss_EnumJobs *r)
21522 uint32_t cntr_info_0;
21523 if (flags & NDR_IN) {
21524 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21525 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
21527 if (flags & NDR_OUT) {
21528 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21529 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21530 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21532 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21533 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21536 return NDR_ERR_SUCCESS;
21539 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct __spoolss_EnumJobs *r)
21541 uint32_t cntr_info_0;
21542 TALLOC_CTX *_mem_save_info_0;
21543 if (flags & NDR_IN) {
21544 ZERO_STRUCT(r->out);
21546 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21547 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
21549 if (flags & NDR_OUT) {
21550 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
21551 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21552 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21553 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21554 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21555 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21557 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21558 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21560 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21562 return NDR_ERR_SUCCESS;
21565 _PUBLIC_ void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumJobs *r)
21567 uint32_t cntr_info_2;
21568 ndr_print_struct(ndr, name, "spoolss_EnumJobs");
21569 ndr->depth++;
21570 if (flags & NDR_SET_VALUES) {
21571 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21573 if (flags & NDR_IN) {
21574 ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
21575 ndr->depth++;
21576 ndr_print_ptr(ndr, "handle", r->in.handle);
21577 ndr->depth++;
21578 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21579 ndr->depth--;
21580 ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
21581 ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
21582 ndr_print_uint32(ndr, "level", r->in.level);
21583 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21584 ndr->depth++;
21585 if (r->in.buffer) {
21586 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21588 ndr->depth--;
21589 ndr_print_uint32(ndr, "offered", r->in.offered);
21590 ndr->depth--;
21592 if (flags & NDR_OUT) {
21593 ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
21594 ndr->depth++;
21595 ndr_print_ptr(ndr, "count", r->out.count);
21596 ndr->depth++;
21597 ndr_print_uint32(ndr, "count", *r->out.count);
21598 ndr->depth--;
21599 ndr_print_ptr(ndr, "info", r->out.info);
21600 ndr->depth++;
21601 ndr_print_ptr(ndr, "info", *r->out.info);
21602 ndr->depth++;
21603 if (*r->out.info) {
21604 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
21605 ndr->depth++;
21606 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
21607 char *idx_2=NULL;
21608 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
21609 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
21610 ndr_print_spoolss_JobInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
21611 free(idx_2);
21614 ndr->depth--;
21616 ndr->depth--;
21617 ndr->depth--;
21618 ndr_print_ptr(ndr, "needed", r->out.needed);
21619 ndr->depth++;
21620 ndr_print_uint32(ndr, "needed", *r->out.needed);
21621 ndr->depth--;
21622 ndr_print_WERROR(ndr, "result", r->out.result);
21623 ndr->depth--;
21625 ndr->depth--;
21628 static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinter *r)
21630 if (flags & NDR_IN) {
21631 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21632 if (r->in.server) {
21633 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21634 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21635 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21636 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21638 if (r->in.info_ctr == NULL) {
21639 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21641 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21642 if (r->in.devmode_ctr == NULL) {
21643 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21645 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21646 if (r->in.secdesc_ctr == NULL) {
21647 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21649 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21651 if (flags & NDR_OUT) {
21652 if (r->out.handle == NULL) {
21653 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21655 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21656 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21658 return NDR_ERR_SUCCESS;
21661 static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinter *r)
21663 uint32_t _ptr_server;
21664 TALLOC_CTX *_mem_save_server_0;
21665 TALLOC_CTX *_mem_save_info_ctr_0;
21666 TALLOC_CTX *_mem_save_devmode_ctr_0;
21667 TALLOC_CTX *_mem_save_secdesc_ctr_0;
21668 TALLOC_CTX *_mem_save_handle_0;
21669 if (flags & NDR_IN) {
21670 ZERO_STRUCT(r->out);
21672 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21673 if (_ptr_server) {
21674 NDR_PULL_ALLOC(ndr, r->in.server);
21675 } else {
21676 r->in.server = NULL;
21678 if (r->in.server) {
21679 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21680 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21681 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21682 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21683 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21684 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));
21686 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21687 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21688 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21690 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21691 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
21693 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21694 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
21695 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21696 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21697 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21698 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
21700 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21701 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
21702 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21703 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21704 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21705 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
21707 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21708 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
21709 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21710 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21711 NDR_PULL_ALLOC(ndr, r->out.handle);
21712 ZERO_STRUCTP(r->out.handle);
21714 if (flags & NDR_OUT) {
21715 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21716 NDR_PULL_ALLOC(ndr, r->out.handle);
21718 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21719 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
21720 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21721 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21722 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21724 return NDR_ERR_SUCCESS;
21727 _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinter *r)
21729 ndr_print_struct(ndr, name, "spoolss_AddPrinter");
21730 ndr->depth++;
21731 if (flags & NDR_SET_VALUES) {
21732 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21734 if (flags & NDR_IN) {
21735 ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
21736 ndr->depth++;
21737 ndr_print_ptr(ndr, "server", r->in.server);
21738 ndr->depth++;
21739 if (r->in.server) {
21740 ndr_print_string(ndr, "server", r->in.server);
21742 ndr->depth--;
21743 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
21744 ndr->depth++;
21745 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
21746 ndr->depth--;
21747 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
21748 ndr->depth++;
21749 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
21750 ndr->depth--;
21751 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21752 ndr->depth++;
21753 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21754 ndr->depth--;
21755 ndr->depth--;
21757 if (flags & NDR_OUT) {
21758 ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
21759 ndr->depth++;
21760 ndr_print_ptr(ndr, "handle", r->out.handle);
21761 ndr->depth++;
21762 ndr_print_policy_handle(ndr, "handle", r->out.handle);
21763 ndr->depth--;
21764 ndr_print_WERROR(ndr, "result", r->out.result);
21765 ndr->depth--;
21767 ndr->depth--;
21770 static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinter *r)
21772 if (flags & NDR_IN) {
21773 if (r->in.handle == NULL) {
21774 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21776 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21778 if (flags & NDR_OUT) {
21779 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21781 return NDR_ERR_SUCCESS;
21784 static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinter *r)
21786 TALLOC_CTX *_mem_save_handle_0;
21787 if (flags & NDR_IN) {
21788 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21789 NDR_PULL_ALLOC(ndr, r->in.handle);
21791 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21792 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21793 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21794 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21796 if (flags & NDR_OUT) {
21797 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21799 return NDR_ERR_SUCCESS;
21802 _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinter *r)
21804 ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
21805 ndr->depth++;
21806 if (flags & NDR_SET_VALUES) {
21807 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21809 if (flags & NDR_IN) {
21810 ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
21811 ndr->depth++;
21812 ndr_print_ptr(ndr, "handle", r->in.handle);
21813 ndr->depth++;
21814 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21815 ndr->depth--;
21816 ndr->depth--;
21818 if (flags & NDR_OUT) {
21819 ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
21820 ndr->depth++;
21821 ndr_print_WERROR(ndr, "result", r->out.result);
21822 ndr->depth--;
21824 ndr->depth--;
21827 static enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinter *r)
21829 if (flags & NDR_IN) {
21830 if (r->in.handle == NULL) {
21831 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21833 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21834 if (r->in.info_ctr == NULL) {
21835 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21837 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21838 if (r->in.devmode_ctr == NULL) {
21839 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21841 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21842 if (r->in.secdesc_ctr == NULL) {
21843 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21845 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21846 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
21848 if (flags & NDR_OUT) {
21849 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21851 return NDR_ERR_SUCCESS;
21854 static enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinter *r)
21856 TALLOC_CTX *_mem_save_handle_0;
21857 TALLOC_CTX *_mem_save_info_ctr_0;
21858 TALLOC_CTX *_mem_save_devmode_ctr_0;
21859 TALLOC_CTX *_mem_save_secdesc_ctr_0;
21860 if (flags & NDR_IN) {
21861 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21862 NDR_PULL_ALLOC(ndr, r->in.handle);
21864 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21865 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21866 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21867 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21868 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21869 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
21871 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21872 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
21873 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21874 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21875 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21876 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
21878 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21879 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
21880 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21881 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21882 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21883 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
21885 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21886 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
21887 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21888 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21889 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
21891 if (flags & NDR_OUT) {
21892 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21894 return NDR_ERR_SUCCESS;
21897 _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinter *r)
21899 ndr_print_struct(ndr, name, "spoolss_SetPrinter");
21900 ndr->depth++;
21901 if (flags & NDR_SET_VALUES) {
21902 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21904 if (flags & NDR_IN) {
21905 ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
21906 ndr->depth++;
21907 ndr_print_ptr(ndr, "handle", r->in.handle);
21908 ndr->depth++;
21909 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21910 ndr->depth--;
21911 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
21912 ndr->depth++;
21913 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
21914 ndr->depth--;
21915 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
21916 ndr->depth++;
21917 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
21918 ndr->depth--;
21919 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21920 ndr->depth++;
21921 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21922 ndr->depth--;
21923 ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
21924 ndr->depth--;
21926 if (flags & NDR_OUT) {
21927 ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
21928 ndr->depth++;
21929 ndr_print_WERROR(ndr, "result", r->out.result);
21930 ndr->depth--;
21932 ndr->depth--;
21935 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinter *r)
21937 if (flags & NDR_IN) {
21938 if (r->in.handle == NULL) {
21939 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21941 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21942 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21943 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21944 if (r->in.buffer) {
21945 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21947 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21949 if (flags & NDR_OUT) {
21950 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21951 if (r->out.info) {
21953 struct ndr_push *_ndr_info;
21954 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21955 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21956 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21957 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21960 if (r->out.needed == NULL) {
21961 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21963 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21964 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21966 return NDR_ERR_SUCCESS;
21969 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinter *r)
21971 uint32_t _ptr_buffer;
21972 uint32_t _ptr_info;
21973 TALLOC_CTX *_mem_save_handle_0;
21974 TALLOC_CTX *_mem_save_buffer_0;
21975 TALLOC_CTX *_mem_save_info_0;
21976 TALLOC_CTX *_mem_save_needed_0;
21977 if (flags & NDR_IN) {
21978 ZERO_STRUCT(r->out);
21980 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21981 NDR_PULL_ALLOC(ndr, r->in.handle);
21983 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21984 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21985 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21986 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21987 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21988 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21989 if (_ptr_buffer) {
21990 NDR_PULL_ALLOC(ndr, r->in.buffer);
21991 } else {
21992 r->in.buffer = NULL;
21994 if (r->in.buffer) {
21995 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21996 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21997 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21998 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22000 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22001 NDR_PULL_ALLOC(ndr, r->out.needed);
22002 ZERO_STRUCTP(r->out.needed);
22004 if (flags & NDR_OUT) {
22005 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22006 if (_ptr_info) {
22007 NDR_PULL_ALLOC(ndr, r->out.info);
22008 } else {
22009 r->out.info = NULL;
22011 if (r->out.info) {
22012 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22013 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22015 struct ndr_pull *_ndr_info;
22016 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22017 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
22018 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
22019 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22021 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22023 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22024 NDR_PULL_ALLOC(ndr, r->out.needed);
22026 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22027 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22028 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22029 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22030 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22032 return NDR_ERR_SUCCESS;
22035 _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinter *r)
22037 ndr_print_struct(ndr, name, "spoolss_GetPrinter");
22038 ndr->depth++;
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_GetPrinter");
22044 ndr->depth++;
22045 ndr_print_ptr(ndr, "handle", r->in.handle);
22046 ndr->depth++;
22047 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22048 ndr->depth--;
22049 ndr_print_uint32(ndr, "level", r->in.level);
22050 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22051 ndr->depth++;
22052 if (r->in.buffer) {
22053 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22055 ndr->depth--;
22056 ndr_print_uint32(ndr, "offered", r->in.offered);
22057 ndr->depth--;
22059 if (flags & NDR_OUT) {
22060 ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
22061 ndr->depth++;
22062 ndr_print_ptr(ndr, "info", r->out.info);
22063 ndr->depth++;
22064 if (r->out.info) {
22065 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
22066 ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
22068 ndr->depth--;
22069 ndr_print_ptr(ndr, "needed", r->out.needed);
22070 ndr->depth++;
22071 ndr_print_uint32(ndr, "needed", *r->out.needed);
22072 ndr->depth--;
22073 ndr_print_WERROR(ndr, "result", r->out.result);
22074 ndr->depth--;
22076 ndr->depth--;
22079 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriver *r)
22081 if (flags & NDR_IN) {
22082 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
22083 if (r->in.servername) {
22084 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22085 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22086 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22087 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22089 if (r->in.info_ctr == NULL) {
22090 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22092 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
22094 if (flags & NDR_OUT) {
22095 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22097 return NDR_ERR_SUCCESS;
22100 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriver *r)
22102 uint32_t _ptr_servername;
22103 TALLOC_CTX *_mem_save_servername_0;
22104 TALLOC_CTX *_mem_save_info_ctr_0;
22105 if (flags & NDR_IN) {
22106 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
22107 if (_ptr_servername) {
22108 NDR_PULL_ALLOC(ndr, r->in.servername);
22109 } else {
22110 r->in.servername = NULL;
22112 if (r->in.servername) {
22113 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
22114 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
22115 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
22116 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
22117 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
22118 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));
22120 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
22121 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
22122 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
22124 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22125 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
22127 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
22128 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
22129 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
22130 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
22132 if (flags & NDR_OUT) {
22133 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22135 return NDR_ERR_SUCCESS;
22138 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriver *r)
22140 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
22141 ndr->depth++;
22142 if (flags & NDR_SET_VALUES) {
22143 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22145 if (flags & NDR_IN) {
22146 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
22147 ndr->depth++;
22148 ndr_print_ptr(ndr, "servername", r->in.servername);
22149 ndr->depth++;
22150 if (r->in.servername) {
22151 ndr_print_string(ndr, "servername", r->in.servername);
22153 ndr->depth--;
22154 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
22155 ndr->depth++;
22156 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
22157 ndr->depth--;
22158 ndr->depth--;
22160 if (flags & NDR_OUT) {
22161 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
22162 ndr->depth++;
22163 ndr_print_WERROR(ndr, "result", r->out.result);
22164 ndr->depth--;
22166 ndr->depth--;
22169 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDrivers *r)
22171 if (flags & NDR_IN) {
22172 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22173 if (r->in.server) {
22174 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22175 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22176 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22177 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22179 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
22180 if (r->in.environment) {
22181 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22182 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22183 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22184 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22186 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22187 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22188 if (r->in.buffer) {
22189 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22191 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22193 if (flags & NDR_OUT) {
22194 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22195 if (r->out.info) {
22196 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
22198 if (r->out.needed == NULL) {
22199 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22201 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22202 if (r->out.count == NULL) {
22203 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22205 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22206 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22208 return NDR_ERR_SUCCESS;
22211 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDrivers *r)
22213 uint32_t _ptr_server;
22214 uint32_t _ptr_environment;
22215 uint32_t _ptr_buffer;
22216 uint32_t _ptr_info;
22217 TALLOC_CTX *_mem_save_server_0;
22218 TALLOC_CTX *_mem_save_environment_0;
22219 TALLOC_CTX *_mem_save_buffer_0;
22220 TALLOC_CTX *_mem_save_info_0;
22221 TALLOC_CTX *_mem_save_needed_0;
22222 TALLOC_CTX *_mem_save_count_0;
22223 if (flags & NDR_IN) {
22224 ZERO_STRUCT(r->out);
22226 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22227 if (_ptr_server) {
22228 NDR_PULL_ALLOC(ndr, r->in.server);
22229 } else {
22230 r->in.server = NULL;
22232 if (r->in.server) {
22233 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22234 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22235 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22236 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22237 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22238 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));
22240 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22241 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22242 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22244 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
22245 if (_ptr_environment) {
22246 NDR_PULL_ALLOC(ndr, r->in.environment);
22247 } else {
22248 r->in.environment = NULL;
22250 if (r->in.environment) {
22251 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
22252 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
22253 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
22254 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
22255 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
22256 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));
22258 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
22259 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
22260 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
22262 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22263 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22264 if (_ptr_buffer) {
22265 NDR_PULL_ALLOC(ndr, r->in.buffer);
22266 } else {
22267 r->in.buffer = NULL;
22269 if (r->in.buffer) {
22270 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22271 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22272 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22273 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22275 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22276 NDR_PULL_ALLOC(ndr, r->out.needed);
22277 ZERO_STRUCTP(r->out.needed);
22278 NDR_PULL_ALLOC(ndr, r->out.count);
22279 ZERO_STRUCTP(r->out.count);
22281 if (flags & NDR_OUT) {
22282 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22283 if (_ptr_info) {
22284 NDR_PULL_ALLOC(ndr, r->out.info);
22285 } else {
22286 r->out.info = NULL;
22288 if (r->out.info) {
22289 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22290 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22291 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
22292 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22294 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22295 NDR_PULL_ALLOC(ndr, r->out.needed);
22297 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22298 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22299 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22300 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22301 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22302 NDR_PULL_ALLOC(ndr, r->out.count);
22304 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22305 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22306 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22307 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22308 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22310 return NDR_ERR_SUCCESS;
22313 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDrivers *r)
22315 uint32_t cntr_info_0;
22316 if (flags & NDR_IN) {
22317 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22318 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
22320 if (flags & NDR_OUT) {
22321 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22322 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22323 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22325 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22326 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22329 return NDR_ERR_SUCCESS;
22332 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDrivers *r)
22334 uint32_t cntr_info_0;
22335 TALLOC_CTX *_mem_save_info_0;
22336 if (flags & NDR_IN) {
22337 ZERO_STRUCT(r->out);
22339 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22340 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
22342 if (flags & NDR_OUT) {
22343 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
22344 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22345 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22346 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22347 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22348 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22350 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22351 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22353 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22355 return NDR_ERR_SUCCESS;
22358 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDrivers *r)
22360 uint32_t cntr_info_2;
22361 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
22362 ndr->depth++;
22363 if (flags & NDR_SET_VALUES) {
22364 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22366 if (flags & NDR_IN) {
22367 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
22368 ndr->depth++;
22369 ndr_print_ptr(ndr, "server", r->in.server);
22370 ndr->depth++;
22371 if (r->in.server) {
22372 ndr_print_string(ndr, "server", r->in.server);
22374 ndr->depth--;
22375 ndr_print_ptr(ndr, "environment", r->in.environment);
22376 ndr->depth++;
22377 if (r->in.environment) {
22378 ndr_print_string(ndr, "environment", r->in.environment);
22380 ndr->depth--;
22381 ndr_print_uint32(ndr, "level", r->in.level);
22382 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22383 ndr->depth++;
22384 if (r->in.buffer) {
22385 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22387 ndr->depth--;
22388 ndr_print_uint32(ndr, "offered", r->in.offered);
22389 ndr->depth--;
22391 if (flags & NDR_OUT) {
22392 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
22393 ndr->depth++;
22394 ndr_print_ptr(ndr, "count", r->out.count);
22395 ndr->depth++;
22396 ndr_print_uint32(ndr, "count", *r->out.count);
22397 ndr->depth--;
22398 ndr_print_ptr(ndr, "info", r->out.info);
22399 ndr->depth++;
22400 ndr_print_ptr(ndr, "info", *r->out.info);
22401 ndr->depth++;
22402 if (*r->out.info) {
22403 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
22404 ndr->depth++;
22405 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
22406 char *idx_2=NULL;
22407 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
22408 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
22409 ndr_print_spoolss_DriverInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
22410 free(idx_2);
22413 ndr->depth--;
22415 ndr->depth--;
22416 ndr->depth--;
22417 ndr_print_ptr(ndr, "needed", r->out.needed);
22418 ndr->depth++;
22419 ndr_print_uint32(ndr, "needed", *r->out.needed);
22420 ndr->depth--;
22421 ndr_print_WERROR(ndr, "result", r->out.result);
22422 ndr->depth--;
22424 ndr->depth--;
22427 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver *r)
22429 if (flags & NDR_IN) {
22430 if (r->in.handle == NULL) {
22431 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22433 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22434 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
22435 if (r->in.architecture) {
22436 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22437 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22438 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22439 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22441 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22442 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22443 if (r->in.buffer) {
22444 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22446 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22448 if (flags & NDR_OUT) {
22449 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22450 if (r->out.info) {
22452 struct ndr_push *_ndr_info;
22453 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22454 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
22455 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
22456 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22459 if (r->out.needed == NULL) {
22460 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22462 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22463 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22465 return NDR_ERR_SUCCESS;
22468 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver *r)
22470 uint32_t _ptr_architecture;
22471 uint32_t _ptr_buffer;
22472 uint32_t _ptr_info;
22473 TALLOC_CTX *_mem_save_handle_0;
22474 TALLOC_CTX *_mem_save_architecture_0;
22475 TALLOC_CTX *_mem_save_buffer_0;
22476 TALLOC_CTX *_mem_save_info_0;
22477 TALLOC_CTX *_mem_save_needed_0;
22478 if (flags & NDR_IN) {
22479 ZERO_STRUCT(r->out);
22481 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22482 NDR_PULL_ALLOC(ndr, r->in.handle);
22484 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22485 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22486 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22487 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22488 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
22489 if (_ptr_architecture) {
22490 NDR_PULL_ALLOC(ndr, r->in.architecture);
22491 } else {
22492 r->in.architecture = NULL;
22494 if (r->in.architecture) {
22495 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
22496 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
22497 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
22498 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
22499 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
22500 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));
22502 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
22503 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
22504 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
22506 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22507 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22508 if (_ptr_buffer) {
22509 NDR_PULL_ALLOC(ndr, r->in.buffer);
22510 } else {
22511 r->in.buffer = NULL;
22513 if (r->in.buffer) {
22514 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22515 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22516 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22517 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22519 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22520 NDR_PULL_ALLOC(ndr, r->out.needed);
22521 ZERO_STRUCTP(r->out.needed);
22523 if (flags & NDR_OUT) {
22524 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22525 if (_ptr_info) {
22526 NDR_PULL_ALLOC(ndr, r->out.info);
22527 } else {
22528 r->out.info = NULL;
22530 if (r->out.info) {
22531 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22532 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22534 struct ndr_pull *_ndr_info;
22535 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22536 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
22537 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
22538 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22540 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22542 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22543 NDR_PULL_ALLOC(ndr, r->out.needed);
22545 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22546 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22547 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22548 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22549 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22551 return NDR_ERR_SUCCESS;
22554 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver *r)
22556 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
22557 ndr->depth++;
22558 if (flags & NDR_SET_VALUES) {
22559 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22561 if (flags & NDR_IN) {
22562 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
22563 ndr->depth++;
22564 ndr_print_ptr(ndr, "handle", r->in.handle);
22565 ndr->depth++;
22566 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22567 ndr->depth--;
22568 ndr_print_ptr(ndr, "architecture", r->in.architecture);
22569 ndr->depth++;
22570 if (r->in.architecture) {
22571 ndr_print_string(ndr, "architecture", r->in.architecture);
22573 ndr->depth--;
22574 ndr_print_uint32(ndr, "level", r->in.level);
22575 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22576 ndr->depth++;
22577 if (r->in.buffer) {
22578 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22580 ndr->depth--;
22581 ndr_print_uint32(ndr, "offered", r->in.offered);
22582 ndr->depth--;
22584 if (flags & NDR_OUT) {
22585 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
22586 ndr->depth++;
22587 ndr_print_ptr(ndr, "info", r->out.info);
22588 ndr->depth++;
22589 if (r->out.info) {
22590 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
22591 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
22593 ndr->depth--;
22594 ndr_print_ptr(ndr, "needed", r->out.needed);
22595 ndr->depth++;
22596 ndr_print_uint32(ndr, "needed", *r->out.needed);
22597 ndr->depth--;
22598 ndr_print_WERROR(ndr, "result", r->out.result);
22599 ndr->depth--;
22601 ndr->depth--;
22604 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
22606 if (flags & NDR_IN) {
22607 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22608 if (r->in.server) {
22609 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22610 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22611 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22612 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22614 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
22615 if (r->in.environment) {
22616 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22617 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22618 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22619 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22621 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22622 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22623 if (r->in.buffer) {
22624 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22626 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22628 if (flags & NDR_OUT) {
22629 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22630 if (r->out.info) {
22632 struct ndr_push *_ndr_info;
22633 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22634 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
22635 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
22636 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22639 if (r->out.needed == NULL) {
22640 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22642 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22643 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22645 return NDR_ERR_SUCCESS;
22648 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverDirectory *r)
22650 uint32_t _ptr_server;
22651 uint32_t _ptr_environment;
22652 uint32_t _ptr_buffer;
22653 uint32_t _ptr_info;
22654 TALLOC_CTX *_mem_save_server_0;
22655 TALLOC_CTX *_mem_save_environment_0;
22656 TALLOC_CTX *_mem_save_buffer_0;
22657 TALLOC_CTX *_mem_save_info_0;
22658 TALLOC_CTX *_mem_save_needed_0;
22659 if (flags & NDR_IN) {
22660 ZERO_STRUCT(r->out);
22662 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22663 if (_ptr_server) {
22664 NDR_PULL_ALLOC(ndr, r->in.server);
22665 } else {
22666 r->in.server = NULL;
22668 if (r->in.server) {
22669 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22670 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22671 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22672 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22673 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22674 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));
22676 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22677 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22678 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22680 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
22681 if (_ptr_environment) {
22682 NDR_PULL_ALLOC(ndr, r->in.environment);
22683 } else {
22684 r->in.environment = NULL;
22686 if (r->in.environment) {
22687 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
22688 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
22689 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
22690 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
22691 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
22692 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));
22694 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
22695 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
22696 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
22698 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22699 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22700 if (_ptr_buffer) {
22701 NDR_PULL_ALLOC(ndr, r->in.buffer);
22702 } else {
22703 r->in.buffer = NULL;
22705 if (r->in.buffer) {
22706 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22707 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22708 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22709 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22711 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22712 NDR_PULL_ALLOC(ndr, r->out.needed);
22713 ZERO_STRUCTP(r->out.needed);
22715 if (flags & NDR_OUT) {
22716 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22717 if (_ptr_info) {
22718 NDR_PULL_ALLOC(ndr, r->out.info);
22719 } else {
22720 r->out.info = NULL;
22722 if (r->out.info) {
22723 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22724 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22726 struct ndr_pull *_ndr_info;
22727 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22728 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
22729 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
22730 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22732 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22734 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22735 NDR_PULL_ALLOC(ndr, r->out.needed);
22737 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22738 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22739 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22740 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22741 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22743 return NDR_ERR_SUCCESS;
22746 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
22748 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
22749 ndr->depth++;
22750 if (flags & NDR_SET_VALUES) {
22751 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22753 if (flags & NDR_IN) {
22754 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
22755 ndr->depth++;
22756 ndr_print_ptr(ndr, "server", r->in.server);
22757 ndr->depth++;
22758 if (r->in.server) {
22759 ndr_print_string(ndr, "server", r->in.server);
22761 ndr->depth--;
22762 ndr_print_ptr(ndr, "environment", r->in.environment);
22763 ndr->depth++;
22764 if (r->in.environment) {
22765 ndr_print_string(ndr, "environment", r->in.environment);
22767 ndr->depth--;
22768 ndr_print_uint32(ndr, "level", r->in.level);
22769 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22770 ndr->depth++;
22771 if (r->in.buffer) {
22772 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22774 ndr->depth--;
22775 ndr_print_uint32(ndr, "offered", r->in.offered);
22776 ndr->depth--;
22778 if (flags & NDR_OUT) {
22779 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
22780 ndr->depth++;
22781 ndr_print_ptr(ndr, "info", r->out.info);
22782 ndr->depth++;
22783 if (r->out.info) {
22784 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
22785 ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
22787 ndr->depth--;
22788 ndr_print_ptr(ndr, "needed", r->out.needed);
22789 ndr->depth++;
22790 ndr_print_uint32(ndr, "needed", *r->out.needed);
22791 ndr->depth--;
22792 ndr_print_WERROR(ndr, "result", r->out.result);
22793 ndr->depth--;
22795 ndr->depth--;
22798 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriver *r)
22800 if (flags & NDR_IN) {
22801 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22802 if (r->in.server) {
22803 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22804 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22805 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22806 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22808 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22809 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22810 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22811 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22812 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
22813 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22814 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
22815 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22817 if (flags & NDR_OUT) {
22818 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22820 return NDR_ERR_SUCCESS;
22823 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriver *r)
22825 uint32_t _ptr_server;
22826 TALLOC_CTX *_mem_save_server_0;
22827 if (flags & NDR_IN) {
22828 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22829 if (_ptr_server) {
22830 NDR_PULL_ALLOC(ndr, r->in.server);
22831 } else {
22832 r->in.server = NULL;
22834 if (r->in.server) {
22835 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22836 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22837 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22838 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22839 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22840 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));
22842 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22843 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22844 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22846 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
22847 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
22848 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
22849 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));
22851 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
22852 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
22853 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
22854 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
22855 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
22856 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));
22858 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
22859 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
22861 if (flags & NDR_OUT) {
22862 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22864 return NDR_ERR_SUCCESS;
22867 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriver *r)
22869 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
22870 ndr->depth++;
22871 if (flags & NDR_SET_VALUES) {
22872 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22874 if (flags & NDR_IN) {
22875 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
22876 ndr->depth++;
22877 ndr_print_ptr(ndr, "server", r->in.server);
22878 ndr->depth++;
22879 if (r->in.server) {
22880 ndr_print_string(ndr, "server", r->in.server);
22882 ndr->depth--;
22883 ndr_print_string(ndr, "architecture", r->in.architecture);
22884 ndr_print_string(ndr, "driver", r->in.driver);
22885 ndr->depth--;
22887 if (flags & NDR_OUT) {
22888 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
22889 ndr->depth++;
22890 ndr_print_WERROR(ndr, "result", r->out.result);
22891 ndr->depth--;
22893 ndr->depth--;
22896 static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProcessor *r)
22898 if (flags & NDR_IN) {
22899 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22900 if (r->in.server) {
22901 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22902 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22903 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22904 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22906 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22907 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22908 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22909 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22910 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
22911 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22912 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
22913 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));
22914 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
22915 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22916 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
22917 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));
22919 if (flags & NDR_OUT) {
22920 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22922 return NDR_ERR_SUCCESS;
22925 static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProcessor *r)
22927 uint32_t _ptr_server;
22928 TALLOC_CTX *_mem_save_server_0;
22929 if (flags & NDR_IN) {
22930 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22931 if (_ptr_server) {
22932 NDR_PULL_ALLOC(ndr, r->in.server);
22933 } else {
22934 r->in.server = NULL;
22936 if (r->in.server) {
22937 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22938 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22939 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22940 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22941 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22942 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));
22944 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22945 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22946 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22948 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
22949 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
22950 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
22951 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));
22953 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
22954 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
22955 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
22956 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
22957 if (ndr_get_array_length(ndr, &r->in.path_name) > ndr_get_array_size(ndr, &r->in.path_name)) {
22958 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));
22960 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t)));
22961 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));
22962 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
22963 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
22964 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
22965 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));
22967 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
22968 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));
22970 if (flags & NDR_OUT) {
22971 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22973 return NDR_ERR_SUCCESS;
22976 _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProcessor *r)
22978 ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
22979 ndr->depth++;
22980 if (flags & NDR_SET_VALUES) {
22981 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22983 if (flags & NDR_IN) {
22984 ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
22985 ndr->depth++;
22986 ndr_print_ptr(ndr, "server", r->in.server);
22987 ndr->depth++;
22988 if (r->in.server) {
22989 ndr_print_string(ndr, "server", r->in.server);
22991 ndr->depth--;
22992 ndr_print_string(ndr, "architecture", r->in.architecture);
22993 ndr_print_string(ndr, "path_name", r->in.path_name);
22994 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
22995 ndr->depth--;
22997 if (flags & NDR_OUT) {
22998 ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
22999 ndr->depth++;
23000 ndr_print_WERROR(ndr, "result", r->out.result);
23001 ndr->depth--;
23003 ndr->depth--;
23006 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcessors *r)
23008 if (flags & NDR_IN) {
23009 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
23010 if (r->in.servername) {
23011 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23012 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23013 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23014 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23016 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
23017 if (r->in.environment) {
23018 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
23019 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23020 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
23021 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23023 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23024 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23025 if (r->in.buffer) {
23026 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23028 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23030 if (flags & NDR_OUT) {
23031 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23032 if (r->out.info) {
23033 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
23035 if (r->out.needed == NULL) {
23036 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23038 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23039 if (r->out.count == NULL) {
23040 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23042 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
23043 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23045 return NDR_ERR_SUCCESS;
23048 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessors *r)
23050 uint32_t _ptr_servername;
23051 uint32_t _ptr_environment;
23052 uint32_t _ptr_buffer;
23053 uint32_t _ptr_info;
23054 TALLOC_CTX *_mem_save_servername_0;
23055 TALLOC_CTX *_mem_save_environment_0;
23056 TALLOC_CTX *_mem_save_buffer_0;
23057 TALLOC_CTX *_mem_save_info_0;
23058 TALLOC_CTX *_mem_save_needed_0;
23059 TALLOC_CTX *_mem_save_count_0;
23060 if (flags & NDR_IN) {
23061 ZERO_STRUCT(r->out);
23063 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
23064 if (_ptr_servername) {
23065 NDR_PULL_ALLOC(ndr, r->in.servername);
23066 } else {
23067 r->in.servername = NULL;
23069 if (r->in.servername) {
23070 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
23071 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
23072 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
23073 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
23074 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
23075 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));
23077 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
23078 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
23079 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
23081 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
23082 if (_ptr_environment) {
23083 NDR_PULL_ALLOC(ndr, r->in.environment);
23084 } else {
23085 r->in.environment = NULL;
23087 if (r->in.environment) {
23088 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
23089 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
23090 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
23091 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
23092 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
23093 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));
23095 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
23096 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
23097 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
23099 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23100 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23101 if (_ptr_buffer) {
23102 NDR_PULL_ALLOC(ndr, r->in.buffer);
23103 } else {
23104 r->in.buffer = NULL;
23106 if (r->in.buffer) {
23107 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23108 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23109 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23110 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23112 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23113 NDR_PULL_ALLOC(ndr, r->out.needed);
23114 ZERO_STRUCTP(r->out.needed);
23115 NDR_PULL_ALLOC(ndr, r->out.count);
23116 ZERO_STRUCTP(r->out.count);
23118 if (flags & NDR_OUT) {
23119 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23120 if (_ptr_info) {
23121 NDR_PULL_ALLOC(ndr, r->out.info);
23122 } else {
23123 r->out.info = NULL;
23125 if (r->out.info) {
23126 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23127 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23128 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
23129 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23131 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23132 NDR_PULL_ALLOC(ndr, r->out.needed);
23134 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23135 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23136 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23137 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23138 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23139 NDR_PULL_ALLOC(ndr, r->out.count);
23141 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
23142 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
23143 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
23144 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
23145 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23147 return NDR_ERR_SUCCESS;
23150 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcessors *r)
23152 uint32_t cntr_info_0;
23153 if (flags & NDR_IN) {
23154 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23155 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
23157 if (flags & NDR_OUT) {
23158 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23159 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23160 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23162 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23163 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23166 return NDR_ERR_SUCCESS;
23169 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessors *r)
23171 uint32_t cntr_info_0;
23172 TALLOC_CTX *_mem_save_info_0;
23173 if (flags & NDR_IN) {
23174 ZERO_STRUCT(r->out);
23176 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23177 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
23179 if (flags & NDR_OUT) {
23180 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
23181 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23182 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23183 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23184 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23185 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23187 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23188 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23190 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23192 return NDR_ERR_SUCCESS;
23195 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcessors *r)
23197 uint32_t cntr_info_2;
23198 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
23199 ndr->depth++;
23200 if (flags & NDR_SET_VALUES) {
23201 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23203 if (flags & NDR_IN) {
23204 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
23205 ndr->depth++;
23206 ndr_print_ptr(ndr, "servername", r->in.servername);
23207 ndr->depth++;
23208 if (r->in.servername) {
23209 ndr_print_string(ndr, "servername", r->in.servername);
23211 ndr->depth--;
23212 ndr_print_ptr(ndr, "environment", r->in.environment);
23213 ndr->depth++;
23214 if (r->in.environment) {
23215 ndr_print_string(ndr, "environment", r->in.environment);
23217 ndr->depth--;
23218 ndr_print_uint32(ndr, "level", r->in.level);
23219 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23220 ndr->depth++;
23221 if (r->in.buffer) {
23222 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23224 ndr->depth--;
23225 ndr_print_uint32(ndr, "offered", r->in.offered);
23226 ndr->depth--;
23228 if (flags & NDR_OUT) {
23229 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
23230 ndr->depth++;
23231 ndr_print_ptr(ndr, "count", r->out.count);
23232 ndr->depth++;
23233 ndr_print_uint32(ndr, "count", *r->out.count);
23234 ndr->depth--;
23235 ndr_print_ptr(ndr, "info", r->out.info);
23236 ndr->depth++;
23237 ndr_print_ptr(ndr, "info", *r->out.info);
23238 ndr->depth++;
23239 if (*r->out.info) {
23240 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
23241 ndr->depth++;
23242 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
23243 char *idx_2=NULL;
23244 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
23245 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
23246 ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
23247 free(idx_2);
23250 ndr->depth--;
23252 ndr->depth--;
23253 ndr->depth--;
23254 ndr_print_ptr(ndr, "needed", r->out.needed);
23255 ndr->depth++;
23256 ndr_print_uint32(ndr, "needed", *r->out.needed);
23257 ndr->depth--;
23258 ndr_print_WERROR(ndr, "result", r->out.result);
23259 ndr->depth--;
23261 ndr->depth--;
23264 static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
23266 if (flags & NDR_IN) {
23267 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
23268 if (r->in.server) {
23269 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
23270 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23271 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
23272 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23274 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
23275 if (r->in.environment) {
23276 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
23277 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23278 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
23279 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23281 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23282 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23283 if (r->in.buffer) {
23284 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23286 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23288 if (flags & NDR_OUT) {
23289 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23290 if (r->out.info) {
23292 struct ndr_push *_ndr_info;
23293 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
23294 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
23295 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
23296 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
23299 if (r->out.needed == NULL) {
23300 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23302 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23303 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23305 return NDR_ERR_SUCCESS;
23308 static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrintProcessorDirectory *r)
23310 uint32_t _ptr_server;
23311 uint32_t _ptr_environment;
23312 uint32_t _ptr_buffer;
23313 uint32_t _ptr_info;
23314 TALLOC_CTX *_mem_save_server_0;
23315 TALLOC_CTX *_mem_save_environment_0;
23316 TALLOC_CTX *_mem_save_buffer_0;
23317 TALLOC_CTX *_mem_save_info_0;
23318 TALLOC_CTX *_mem_save_needed_0;
23319 if (flags & NDR_IN) {
23320 ZERO_STRUCT(r->out);
23322 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
23323 if (_ptr_server) {
23324 NDR_PULL_ALLOC(ndr, r->in.server);
23325 } else {
23326 r->in.server = NULL;
23328 if (r->in.server) {
23329 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
23330 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
23331 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
23332 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
23333 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
23334 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));
23336 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
23337 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
23338 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
23340 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
23341 if (_ptr_environment) {
23342 NDR_PULL_ALLOC(ndr, r->in.environment);
23343 } else {
23344 r->in.environment = NULL;
23346 if (r->in.environment) {
23347 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
23348 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
23349 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
23350 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
23351 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
23352 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));
23354 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
23355 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
23356 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
23358 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23359 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23360 if (_ptr_buffer) {
23361 NDR_PULL_ALLOC(ndr, r->in.buffer);
23362 } else {
23363 r->in.buffer = NULL;
23365 if (r->in.buffer) {
23366 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23367 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23368 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23369 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23371 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23372 NDR_PULL_ALLOC(ndr, r->out.needed);
23373 ZERO_STRUCTP(r->out.needed);
23375 if (flags & NDR_OUT) {
23376 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23377 if (_ptr_info) {
23378 NDR_PULL_ALLOC(ndr, r->out.info);
23379 } else {
23380 r->out.info = NULL;
23382 if (r->out.info) {
23383 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23384 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23386 struct ndr_pull *_ndr_info;
23387 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
23388 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
23389 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
23390 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
23392 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23394 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23395 NDR_PULL_ALLOC(ndr, r->out.needed);
23397 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23398 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23399 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23400 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23401 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23403 return NDR_ERR_SUCCESS;
23406 _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
23408 ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
23409 ndr->depth++;
23410 if (flags & NDR_SET_VALUES) {
23411 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23413 if (flags & NDR_IN) {
23414 ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
23415 ndr->depth++;
23416 ndr_print_ptr(ndr, "server", r->in.server);
23417 ndr->depth++;
23418 if (r->in.server) {
23419 ndr_print_string(ndr, "server", r->in.server);
23421 ndr->depth--;
23422 ndr_print_ptr(ndr, "environment", r->in.environment);
23423 ndr->depth++;
23424 if (r->in.environment) {
23425 ndr_print_string(ndr, "environment", r->in.environment);
23427 ndr->depth--;
23428 ndr_print_uint32(ndr, "level", r->in.level);
23429 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23430 ndr->depth++;
23431 if (r->in.buffer) {
23432 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23434 ndr->depth--;
23435 ndr_print_uint32(ndr, "offered", r->in.offered);
23436 ndr->depth--;
23438 if (flags & NDR_OUT) {
23439 ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
23440 ndr->depth++;
23441 ndr_print_ptr(ndr, "info", r->out.info);
23442 ndr->depth++;
23443 if (r->out.info) {
23444 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
23445 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr, "info", r->out.info);
23447 ndr->depth--;
23448 ndr_print_ptr(ndr, "needed", r->out.needed);
23449 ndr->depth++;
23450 ndr_print_uint32(ndr, "needed", *r->out.needed);
23451 ndr->depth--;
23452 ndr_print_WERROR(ndr, "result", r->out.result);
23453 ndr->depth--;
23455 ndr->depth--;
23458 static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartDocPrinter *r)
23460 if (flags & NDR_IN) {
23461 if (r->in.handle == NULL) {
23462 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23464 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23465 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23466 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
23467 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23469 if (flags & NDR_OUT) {
23470 if (r->out.job_id == NULL) {
23471 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23473 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
23474 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23476 return NDR_ERR_SUCCESS;
23479 static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartDocPrinter *r)
23481 TALLOC_CTX *_mem_save_handle_0;
23482 TALLOC_CTX *_mem_save_job_id_0;
23483 if (flags & NDR_IN) {
23484 ZERO_STRUCT(r->out);
23486 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23487 NDR_PULL_ALLOC(ndr, r->in.handle);
23489 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23490 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23491 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23492 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23493 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23494 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
23495 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23496 NDR_PULL_ALLOC(ndr, r->out.job_id);
23497 ZERO_STRUCTP(r->out.job_id);
23499 if (flags & NDR_OUT) {
23500 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23501 NDR_PULL_ALLOC(ndr, r->out.job_id);
23503 _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
23504 NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
23505 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
23506 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
23507 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23509 return NDR_ERR_SUCCESS;
23512 _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartDocPrinter *r)
23514 ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
23515 ndr->depth++;
23516 if (flags & NDR_SET_VALUES) {
23517 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23519 if (flags & NDR_IN) {
23520 ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
23521 ndr->depth++;
23522 ndr_print_ptr(ndr, "handle", r->in.handle);
23523 ndr->depth++;
23524 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23525 ndr->depth--;
23526 ndr_print_uint32(ndr, "level", r->in.level);
23527 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
23528 ndr_print_spoolss_DocumentInfo(ndr, "info", &r->in.info);
23529 ndr->depth--;
23531 if (flags & NDR_OUT) {
23532 ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
23533 ndr->depth++;
23534 ndr_print_ptr(ndr, "job_id", r->out.job_id);
23535 ndr->depth++;
23536 ndr_print_uint32(ndr, "job_id", *r->out.job_id);
23537 ndr->depth--;
23538 ndr_print_WERROR(ndr, "result", r->out.result);
23539 ndr->depth--;
23541 ndr->depth--;
23544 static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartPagePrinter *r)
23546 if (flags & NDR_IN) {
23547 if (r->in.handle == NULL) {
23548 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23550 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23552 if (flags & NDR_OUT) {
23553 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23555 return NDR_ERR_SUCCESS;
23558 static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartPagePrinter *r)
23560 TALLOC_CTX *_mem_save_handle_0;
23561 if (flags & NDR_IN) {
23562 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23563 NDR_PULL_ALLOC(ndr, r->in.handle);
23565 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23566 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23567 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23568 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23570 if (flags & NDR_OUT) {
23571 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23573 return NDR_ERR_SUCCESS;
23576 _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartPagePrinter *r)
23578 ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
23579 ndr->depth++;
23580 if (flags & NDR_SET_VALUES) {
23581 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23583 if (flags & NDR_IN) {
23584 ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
23585 ndr->depth++;
23586 ndr_print_ptr(ndr, "handle", r->in.handle);
23587 ndr->depth++;
23588 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23589 ndr->depth--;
23590 ndr->depth--;
23592 if (flags & NDR_OUT) {
23593 ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
23594 ndr->depth++;
23595 ndr_print_WERROR(ndr, "result", r->out.result);
23596 ndr->depth--;
23598 ndr->depth--;
23601 static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, int flags, const struct spoolss_WritePrinter *r)
23603 if (flags & NDR_IN) {
23604 if (r->in.handle == NULL) {
23605 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23607 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23608 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
23609 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
23611 if (flags & NDR_OUT) {
23612 if (r->out.num_written == NULL) {
23613 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23615 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_written));
23616 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23618 return NDR_ERR_SUCCESS;
23621 static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, int flags, struct spoolss_WritePrinter *r)
23623 TALLOC_CTX *_mem_save_handle_0;
23624 TALLOC_CTX *_mem_save_num_written_0;
23625 if (flags & NDR_IN) {
23626 ZERO_STRUCT(r->out);
23628 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23629 NDR_PULL_ALLOC(ndr, r->in.handle);
23631 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23632 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23633 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23634 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23635 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
23636 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
23637 NDR_PULL_ALLOC(ndr, r->out.num_written);
23638 ZERO_STRUCTP(r->out.num_written);
23640 if (flags & NDR_OUT) {
23641 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23642 NDR_PULL_ALLOC(ndr, r->out.num_written);
23644 _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
23645 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
23646 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
23647 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
23648 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23650 return NDR_ERR_SUCCESS;
23653 _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WritePrinter *r)
23655 ndr_print_struct(ndr, name, "spoolss_WritePrinter");
23656 ndr->depth++;
23657 if (flags & NDR_SET_VALUES) {
23658 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23660 if (flags & NDR_IN) {
23661 ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
23662 ndr->depth++;
23663 ndr_print_ptr(ndr, "handle", r->in.handle);
23664 ndr->depth++;
23665 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23666 ndr->depth--;
23667 ndr_print_DATA_BLOB(ndr, "data", r->in.data);
23668 ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
23669 ndr->depth--;
23671 if (flags & NDR_OUT) {
23672 ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
23673 ndr->depth++;
23674 ndr_print_ptr(ndr, "num_written", r->out.num_written);
23675 ndr->depth++;
23676 ndr_print_uint32(ndr, "num_written", *r->out.num_written);
23677 ndr->depth--;
23678 ndr_print_WERROR(ndr, "result", r->out.result);
23679 ndr->depth--;
23681 ndr->depth--;
23684 static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndPagePrinter *r)
23686 if (flags & NDR_IN) {
23687 if (r->in.handle == NULL) {
23688 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23690 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23692 if (flags & NDR_OUT) {
23693 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23695 return NDR_ERR_SUCCESS;
23698 static enum ndr_err_code ndr_pull_spoolss_EndPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndPagePrinter *r)
23700 TALLOC_CTX *_mem_save_handle_0;
23701 if (flags & NDR_IN) {
23702 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23703 NDR_PULL_ALLOC(ndr, r->in.handle);
23705 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23706 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23707 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23708 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23710 if (flags & NDR_OUT) {
23711 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23713 return NDR_ERR_SUCCESS;
23716 _PUBLIC_ void ndr_print_spoolss_EndPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndPagePrinter *r)
23718 ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
23719 ndr->depth++;
23720 if (flags & NDR_SET_VALUES) {
23721 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23723 if (flags & NDR_IN) {
23724 ndr_print_struct(ndr, "in", "spoolss_EndPagePrinter");
23725 ndr->depth++;
23726 ndr_print_ptr(ndr, "handle", r->in.handle);
23727 ndr->depth++;
23728 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23729 ndr->depth--;
23730 ndr->depth--;
23732 if (flags & NDR_OUT) {
23733 ndr_print_struct(ndr, "out", "spoolss_EndPagePrinter");
23734 ndr->depth++;
23735 ndr_print_WERROR(ndr, "result", r->out.result);
23736 ndr->depth--;
23738 ndr->depth--;
23741 static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AbortPrinter *r)
23743 if (flags & NDR_IN) {
23744 if (r->in.handle == NULL) {
23745 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23747 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23749 if (flags & NDR_OUT) {
23750 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23752 return NDR_ERR_SUCCESS;
23755 static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AbortPrinter *r)
23757 TALLOC_CTX *_mem_save_handle_0;
23758 if (flags & NDR_IN) {
23759 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23760 NDR_PULL_ALLOC(ndr, r->in.handle);
23762 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23763 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23764 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23765 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23767 if (flags & NDR_OUT) {
23768 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23770 return NDR_ERR_SUCCESS;
23773 _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AbortPrinter *r)
23775 ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
23776 ndr->depth++;
23777 if (flags & NDR_SET_VALUES) {
23778 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23780 if (flags & NDR_IN) {
23781 ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
23782 ndr->depth++;
23783 ndr_print_ptr(ndr, "handle", r->in.handle);
23784 ndr->depth++;
23785 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23786 ndr->depth--;
23787 ndr->depth--;
23789 if (flags & NDR_OUT) {
23790 ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
23791 ndr->depth++;
23792 ndr_print_WERROR(ndr, "result", r->out.result);
23793 ndr->depth--;
23795 ndr->depth--;
23798 static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReadPrinter *r)
23800 if (flags & NDR_IN) {
23801 if (r->in.handle == NULL) {
23802 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23804 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23805 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
23807 if (flags & NDR_OUT) {
23808 if (r->out.data == NULL) {
23809 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23811 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_size));
23812 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
23813 if (r->out._data_size == NULL) {
23814 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23816 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
23817 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23819 return NDR_ERR_SUCCESS;
23822 static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReadPrinter *r)
23824 TALLOC_CTX *_mem_save_handle_0;
23825 TALLOC_CTX *_mem_save__data_size_0;
23826 if (flags & NDR_IN) {
23827 ZERO_STRUCT(r->out);
23829 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23830 NDR_PULL_ALLOC(ndr, r->in.handle);
23832 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23833 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23834 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23835 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23836 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
23837 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
23838 memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
23839 NDR_PULL_ALLOC(ndr, r->out._data_size);
23840 ZERO_STRUCTP(r->out._data_size);
23842 if (flags & NDR_OUT) {
23843 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
23844 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23845 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
23847 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
23848 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23849 NDR_PULL_ALLOC(ndr, r->out._data_size);
23851 _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
23852 NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
23853 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
23854 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
23855 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23856 if (r->out.data) {
23857 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_size));
23860 return NDR_ERR_SUCCESS;
23863 _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReadPrinter *r)
23865 ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
23866 ndr->depth++;
23867 if (flags & NDR_SET_VALUES) {
23868 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23870 if (flags & NDR_IN) {
23871 ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
23872 ndr->depth++;
23873 ndr_print_ptr(ndr, "handle", r->in.handle);
23874 ndr->depth++;
23875 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23876 ndr->depth--;
23877 ndr_print_uint32(ndr, "data_size", r->in.data_size);
23878 ndr->depth--;
23880 if (flags & NDR_OUT) {
23881 ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
23882 ndr->depth++;
23883 ndr_print_ptr(ndr, "data", r->out.data);
23884 ndr->depth++;
23885 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
23886 ndr->depth--;
23887 ndr_print_ptr(ndr, "_data_size", r->out._data_size);
23888 ndr->depth++;
23889 ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
23890 ndr->depth--;
23891 ndr_print_WERROR(ndr, "result", r->out.result);
23892 ndr->depth--;
23894 ndr->depth--;
23897 static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndDocPrinter *r)
23899 if (flags & NDR_IN) {
23900 if (r->in.handle == NULL) {
23901 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23903 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23905 if (flags & NDR_OUT) {
23906 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23908 return NDR_ERR_SUCCESS;
23911 static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndDocPrinter *r)
23913 TALLOC_CTX *_mem_save_handle_0;
23914 if (flags & NDR_IN) {
23915 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23916 NDR_PULL_ALLOC(ndr, r->in.handle);
23918 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23919 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23920 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23921 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23923 if (flags & NDR_OUT) {
23924 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23926 return NDR_ERR_SUCCESS;
23929 _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndDocPrinter *r)
23931 ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
23932 ndr->depth++;
23933 if (flags & NDR_SET_VALUES) {
23934 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23936 if (flags & NDR_IN) {
23937 ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
23938 ndr->depth++;
23939 ndr_print_ptr(ndr, "handle", r->in.handle);
23940 ndr->depth++;
23941 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23942 ndr->depth--;
23943 ndr->depth--;
23945 if (flags & NDR_OUT) {
23946 ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
23947 ndr->depth++;
23948 ndr_print_WERROR(ndr, "result", r->out.result);
23949 ndr->depth--;
23951 ndr->depth--;
23954 static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, int flags, const struct spoolss_AddJob *r)
23956 if (flags & NDR_IN) {
23957 if (r->in.handle == NULL) {
23958 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23960 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23961 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23962 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23963 if (r->in.buffer) {
23964 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
23965 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
23967 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23969 if (flags & NDR_OUT) {
23970 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
23971 if (r->out.buffer) {
23972 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
23973 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
23975 if (r->out.needed == NULL) {
23976 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23978 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
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_AddJob(struct ndr_pull *ndr, int flags, struct spoolss_AddJob *r)
23986 uint32_t _ptr_buffer;
23987 TALLOC_CTX *_mem_save_handle_0;
23988 TALLOC_CTX *_mem_save_buffer_0;
23989 TALLOC_CTX *_mem_save_needed_0;
23990 if (flags & NDR_IN) {
23991 ZERO_STRUCT(r->out);
23993 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23994 NDR_PULL_ALLOC(ndr, r->in.handle);
23996 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23997 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23998 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23999 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24000 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24001 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24002 if (_ptr_buffer) {
24003 NDR_PULL_ALLOC(ndr, r->in.buffer);
24004 } else {
24005 r->in.buffer = NULL;
24007 if (r->in.buffer) {
24008 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24009 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24010 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
24011 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
24012 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
24013 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24015 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24016 NDR_PULL_ALLOC(ndr, r->out.needed);
24017 ZERO_STRUCTP(r->out.needed);
24018 if (r->in.buffer) {
24019 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
24022 if (flags & NDR_OUT) {
24023 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24024 if (_ptr_buffer) {
24025 NDR_PULL_ALLOC(ndr, r->out.buffer);
24026 } else {
24027 r->out.buffer = NULL;
24029 if (r->out.buffer) {
24030 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24031 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
24032 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
24033 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
24034 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
24035 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24037 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24038 NDR_PULL_ALLOC(ndr, r->out.needed);
24040 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24041 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24042 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24043 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24044 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24045 if (r->out.buffer) {
24046 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
24049 return NDR_ERR_SUCCESS;
24052 _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r)
24054 ndr_print_struct(ndr, name, "spoolss_AddJob");
24055 ndr->depth++;
24056 if (flags & NDR_SET_VALUES) {
24057 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24059 if (flags & NDR_IN) {
24060 ndr_print_struct(ndr, "in", "spoolss_AddJob");
24061 ndr->depth++;
24062 ndr_print_ptr(ndr, "handle", r->in.handle);
24063 ndr->depth++;
24064 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24065 ndr->depth--;
24066 ndr_print_uint32(ndr, "level", r->in.level);
24067 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24068 ndr->depth++;
24069 if (r->in.buffer) {
24070 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
24072 ndr->depth--;
24073 ndr_print_uint32(ndr, "offered", r->in.offered);
24074 ndr->depth--;
24076 if (flags & NDR_OUT) {
24077 ndr_print_struct(ndr, "out", "spoolss_AddJob");
24078 ndr->depth++;
24079 ndr_print_ptr(ndr, "buffer", r->out.buffer);
24080 ndr->depth++;
24081 if (r->out.buffer) {
24082 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
24084 ndr->depth--;
24085 ndr_print_ptr(ndr, "needed", r->out.needed);
24086 ndr->depth++;
24087 ndr_print_uint32(ndr, "needed", *r->out.needed);
24088 ndr->depth--;
24089 ndr_print_WERROR(ndr, "result", r->out.result);
24090 ndr->depth--;
24092 ndr->depth--;
24095 static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, int flags, const struct spoolss_ScheduleJob *r)
24097 if (flags & NDR_IN) {
24098 if (r->in.handle == NULL) {
24099 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24101 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24102 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
24104 if (flags & NDR_OUT) {
24105 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24107 return NDR_ERR_SUCCESS;
24110 static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, int flags, struct spoolss_ScheduleJob *r)
24112 TALLOC_CTX *_mem_save_handle_0;
24113 if (flags & NDR_IN) {
24114 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24115 NDR_PULL_ALLOC(ndr, r->in.handle);
24117 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24118 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24119 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24120 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24121 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.jobid));
24123 if (flags & NDR_OUT) {
24124 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24126 return NDR_ERR_SUCCESS;
24129 _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ScheduleJob *r)
24131 ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
24132 ndr->depth++;
24133 if (flags & NDR_SET_VALUES) {
24134 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24136 if (flags & NDR_IN) {
24137 ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
24138 ndr->depth++;
24139 ndr_print_ptr(ndr, "handle", r->in.handle);
24140 ndr->depth++;
24141 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24142 ndr->depth--;
24143 ndr_print_uint32(ndr, "jobid", r->in.jobid);
24144 ndr->depth--;
24146 if (flags & NDR_OUT) {
24147 ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
24148 ndr->depth++;
24149 ndr_print_WERROR(ndr, "result", r->out.result);
24150 ndr->depth--;
24152 ndr->depth--;
24155 static enum ndr_err_code ndr_push_spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterData *r)
24157 if (flags & NDR_IN) {
24158 if (r->in.handle == NULL) {
24159 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24161 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24162 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
24163 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24164 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
24165 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));
24166 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24168 if (flags & NDR_OUT) {
24169 if (r->out.type == NULL) {
24170 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24172 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
24173 if (r->out.data == NULL) {
24174 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24176 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
24177 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.offered));
24178 if (r->out.needed == NULL) {
24179 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24181 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24182 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24184 return NDR_ERR_SUCCESS;
24187 static enum ndr_err_code ndr_pull_spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterData *r)
24189 TALLOC_CTX *_mem_save_handle_0;
24190 TALLOC_CTX *_mem_save_type_0;
24191 TALLOC_CTX *_mem_save_needed_0;
24192 if (flags & NDR_IN) {
24193 ZERO_STRUCT(r->out);
24195 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24196 NDR_PULL_ALLOC(ndr, r->in.handle);
24198 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24199 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24200 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24201 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24202 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
24203 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
24204 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
24205 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));
24207 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
24208 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));
24209 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24210 NDR_PULL_ALLOC(ndr, r->out.type);
24211 ZERO_STRUCTP(r->out.type);
24212 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.offered);
24213 memset(r->out.data, 0, (r->in.offered) * sizeof(*r->out.data));
24214 NDR_PULL_ALLOC(ndr, r->out.needed);
24215 ZERO_STRUCTP(r->out.needed);
24217 if (flags & NDR_OUT) {
24218 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24219 NDR_PULL_ALLOC(ndr, r->out.type);
24221 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
24222 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
24223 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
24224 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
24225 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
24226 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24227 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
24229 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
24230 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24231 NDR_PULL_ALLOC(ndr, r->out.needed);
24233 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24234 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24235 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24236 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24237 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24238 if (r->out.data) {
24239 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.offered));
24242 return NDR_ERR_SUCCESS;
24245 _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterData *r)
24247 ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
24248 ndr->depth++;
24249 if (flags & NDR_SET_VALUES) {
24250 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24252 if (flags & NDR_IN) {
24253 ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
24254 ndr->depth++;
24255 ndr_print_ptr(ndr, "handle", r->in.handle);
24256 ndr->depth++;
24257 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24258 ndr->depth--;
24259 ndr_print_string(ndr, "value_name", r->in.value_name);
24260 ndr_print_uint32(ndr, "offered", r->in.offered);
24261 ndr->depth--;
24263 if (flags & NDR_OUT) {
24264 ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
24265 ndr->depth++;
24266 ndr_print_ptr(ndr, "type", r->out.type);
24267 ndr->depth++;
24268 ndr_print_winreg_Type(ndr, "type", *r->out.type);
24269 ndr->depth--;
24270 ndr_print_ptr(ndr, "data", r->out.data);
24271 ndr->depth++;
24272 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.offered);
24273 ndr->depth--;
24274 ndr_print_ptr(ndr, "needed", r->out.needed);
24275 ndr->depth++;
24276 ndr_print_uint32(ndr, "needed", *r->out.needed);
24277 ndr->depth--;
24278 ndr_print_WERROR(ndr, "result", r->out.result);
24279 ndr->depth--;
24281 ndr->depth--;
24284 static enum ndr_err_code ndr_push_spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterData *r)
24286 if (flags & NDR_IN) {
24287 if (r->in.handle == NULL) {
24288 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24290 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24291 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
24292 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24293 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
24294 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));
24295 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
24296 if (r->in.data == NULL) {
24297 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24299 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
24300 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, r->in.offered));
24301 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24303 if (flags & NDR_OUT) {
24304 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24306 return NDR_ERR_SUCCESS;
24309 static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterData *r)
24311 TALLOC_CTX *_mem_save_handle_0;
24312 if (flags & NDR_IN) {
24313 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24314 NDR_PULL_ALLOC(ndr, r->in.handle);
24316 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24317 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24318 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24319 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24320 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
24321 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
24322 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
24323 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));
24325 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
24326 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));
24327 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
24328 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data));
24329 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24330 NDR_PULL_ALLOC_N(ndr, r->in.data, ndr_get_array_size(ndr, &r->in.data));
24332 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, ndr_get_array_size(ndr, &r->in.data)));
24333 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24334 if (r->in.data) {
24335 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, r->in.offered));
24338 if (flags & NDR_OUT) {
24339 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24341 return NDR_ERR_SUCCESS;
24344 _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r)
24346 ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
24347 ndr->depth++;
24348 if (flags & NDR_SET_VALUES) {
24349 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24351 if (flags & NDR_IN) {
24352 ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
24353 ndr->depth++;
24354 ndr_print_ptr(ndr, "handle", r->in.handle);
24355 ndr->depth++;
24356 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24357 ndr->depth--;
24358 ndr_print_string(ndr, "value_name", r->in.value_name);
24359 ndr_print_winreg_Type(ndr, "type", r->in.type);
24360 ndr_print_ptr(ndr, "data", r->in.data);
24361 ndr->depth++;
24362 ndr_print_array_uint8(ndr, "data", r->in.data, r->in.offered);
24363 ndr->depth--;
24364 ndr_print_uint32(ndr, "offered", r->in.offered);
24365 ndr->depth--;
24367 if (flags & NDR_OUT) {
24368 ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
24369 ndr->depth++;
24370 ndr_print_WERROR(ndr, "result", r->out.result);
24371 ndr->depth--;
24373 ndr->depth--;
24376 static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, int flags, const struct spoolss_WaitForPrinterChange *r)
24378 if (flags & NDR_IN) {
24380 if (flags & NDR_OUT) {
24381 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24383 return NDR_ERR_SUCCESS;
24386 static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, int flags, struct spoolss_WaitForPrinterChange *r)
24388 if (flags & NDR_IN) {
24390 if (flags & NDR_OUT) {
24391 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24393 return NDR_ERR_SUCCESS;
24396 _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r)
24398 ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
24399 ndr->depth++;
24400 if (flags & NDR_SET_VALUES) {
24401 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24403 if (flags & NDR_IN) {
24404 ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
24405 ndr->depth++;
24406 ndr->depth--;
24408 if (flags & NDR_OUT) {
24409 ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
24410 ndr->depth++;
24411 ndr_print_WERROR(ndr, "result", r->out.result);
24412 ndr->depth--;
24414 ndr->depth--;
24417 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ClosePrinter *r)
24419 if (flags & NDR_IN) {
24420 if (r->in.handle == NULL) {
24421 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24423 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24425 if (flags & NDR_OUT) {
24426 if (r->out.handle == NULL) {
24427 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24429 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24430 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24432 return NDR_ERR_SUCCESS;
24435 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ClosePrinter *r)
24437 TALLOC_CTX *_mem_save_handle_0;
24438 if (flags & NDR_IN) {
24439 ZERO_STRUCT(r->out);
24441 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24442 NDR_PULL_ALLOC(ndr, r->in.handle);
24444 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24445 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24446 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24447 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24448 NDR_PULL_ALLOC(ndr, r->out.handle);
24449 *r->out.handle = *r->in.handle;
24451 if (flags & NDR_OUT) {
24452 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24453 NDR_PULL_ALLOC(ndr, r->out.handle);
24455 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24456 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
24457 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24458 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24459 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24461 return NDR_ERR_SUCCESS;
24464 _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ClosePrinter *r)
24466 ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
24467 ndr->depth++;
24468 if (flags & NDR_SET_VALUES) {
24469 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24471 if (flags & NDR_IN) {
24472 ndr_print_struct(ndr, "in", "spoolss_ClosePrinter");
24473 ndr->depth++;
24474 ndr_print_ptr(ndr, "handle", r->in.handle);
24475 ndr->depth++;
24476 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24477 ndr->depth--;
24478 ndr->depth--;
24480 if (flags & NDR_OUT) {
24481 ndr_print_struct(ndr, "out", "spoolss_ClosePrinter");
24482 ndr->depth++;
24483 ndr_print_ptr(ndr, "handle", r->out.handle);
24484 ndr->depth++;
24485 ndr_print_policy_handle(ndr, "handle", r->out.handle);
24486 ndr->depth--;
24487 ndr_print_WERROR(ndr, "result", r->out.result);
24488 ndr->depth--;
24490 ndr->depth--;
24493 static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, int flags, const struct spoolss_AddForm *r)
24495 if (flags & NDR_IN) {
24496 if (r->in.handle == NULL) {
24497 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24499 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24500 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24501 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
24502 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24504 if (flags & NDR_OUT) {
24505 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24507 return NDR_ERR_SUCCESS;
24510 static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, int flags, struct spoolss_AddForm *r)
24512 TALLOC_CTX *_mem_save_handle_0;
24513 if (flags & NDR_IN) {
24514 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24515 NDR_PULL_ALLOC(ndr, r->in.handle);
24517 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24518 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24519 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24520 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24521 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24522 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
24523 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24525 if (flags & NDR_OUT) {
24526 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24528 return NDR_ERR_SUCCESS;
24531 _PUBLIC_ void ndr_print_spoolss_AddForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddForm *r)
24533 ndr_print_struct(ndr, name, "spoolss_AddForm");
24534 ndr->depth++;
24535 if (flags & NDR_SET_VALUES) {
24536 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24538 if (flags & NDR_IN) {
24539 ndr_print_struct(ndr, "in", "spoolss_AddForm");
24540 ndr->depth++;
24541 ndr_print_ptr(ndr, "handle", r->in.handle);
24542 ndr->depth++;
24543 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24544 ndr->depth--;
24545 ndr_print_uint32(ndr, "level", r->in.level);
24546 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
24547 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
24548 ndr->depth--;
24550 if (flags & NDR_OUT) {
24551 ndr_print_struct(ndr, "out", "spoolss_AddForm");
24552 ndr->depth++;
24553 ndr_print_WERROR(ndr, "result", r->out.result);
24554 ndr->depth--;
24556 ndr->depth--;
24559 static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, int flags, const struct spoolss_DeleteForm *r)
24561 if (flags & NDR_IN) {
24562 if (r->in.handle == NULL) {
24563 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24565 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24566 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24567 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24568 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24569 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));
24571 if (flags & NDR_OUT) {
24572 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24574 return NDR_ERR_SUCCESS;
24577 static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, int flags, struct spoolss_DeleteForm *r)
24579 TALLOC_CTX *_mem_save_handle_0;
24580 if (flags & NDR_IN) {
24581 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24582 NDR_PULL_ALLOC(ndr, r->in.handle);
24584 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24585 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24586 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24587 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24588 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
24589 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
24590 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
24591 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));
24593 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
24594 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));
24596 if (flags & NDR_OUT) {
24597 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24599 return NDR_ERR_SUCCESS;
24602 _PUBLIC_ void ndr_print_spoolss_DeleteForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteForm *r)
24604 ndr_print_struct(ndr, name, "spoolss_DeleteForm");
24605 ndr->depth++;
24606 if (flags & NDR_SET_VALUES) {
24607 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24609 if (flags & NDR_IN) {
24610 ndr_print_struct(ndr, "in", "spoolss_DeleteForm");
24611 ndr->depth++;
24612 ndr_print_ptr(ndr, "handle", r->in.handle);
24613 ndr->depth++;
24614 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24615 ndr->depth--;
24616 ndr_print_string(ndr, "form_name", r->in.form_name);
24617 ndr->depth--;
24619 if (flags & NDR_OUT) {
24620 ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
24621 ndr->depth++;
24622 ndr_print_WERROR(ndr, "result", r->out.result);
24623 ndr->depth--;
24625 ndr->depth--;
24628 static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, int flags, const struct spoolss_GetForm *r)
24630 if (flags & NDR_IN) {
24631 if (r->in.handle == NULL) {
24632 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24634 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24635 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24636 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24637 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24638 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));
24639 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24640 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24641 if (r->in.buffer) {
24642 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24644 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24646 if (flags & NDR_OUT) {
24647 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24648 if (r->out.info) {
24650 struct ndr_push *_ndr_info;
24651 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
24652 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
24653 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
24654 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
24657 if (r->out.needed == NULL) {
24658 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24660 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24661 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24663 return NDR_ERR_SUCCESS;
24666 static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, int flags, struct spoolss_GetForm *r)
24668 uint32_t _ptr_buffer;
24669 uint32_t _ptr_info;
24670 TALLOC_CTX *_mem_save_handle_0;
24671 TALLOC_CTX *_mem_save_buffer_0;
24672 TALLOC_CTX *_mem_save_info_0;
24673 TALLOC_CTX *_mem_save_needed_0;
24674 if (flags & NDR_IN) {
24675 ZERO_STRUCT(r->out);
24677 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24678 NDR_PULL_ALLOC(ndr, r->in.handle);
24680 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24681 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24682 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24683 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24684 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
24685 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
24686 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
24687 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));
24689 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
24690 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));
24691 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24692 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24693 if (_ptr_buffer) {
24694 NDR_PULL_ALLOC(ndr, r->in.buffer);
24695 } else {
24696 r->in.buffer = NULL;
24698 if (r->in.buffer) {
24699 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24700 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24701 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24702 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24704 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24705 NDR_PULL_ALLOC(ndr, r->out.needed);
24706 ZERO_STRUCTP(r->out.needed);
24708 if (flags & NDR_OUT) {
24709 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24710 if (_ptr_info) {
24711 NDR_PULL_ALLOC(ndr, r->out.info);
24712 } else {
24713 r->out.info = NULL;
24715 if (r->out.info) {
24716 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24717 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24719 struct ndr_pull *_ndr_info;
24720 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
24721 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
24722 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
24723 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
24725 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24727 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24728 NDR_PULL_ALLOC(ndr, r->out.needed);
24730 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24731 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24732 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24733 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24734 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24736 return NDR_ERR_SUCCESS;
24739 _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetForm *r)
24741 ndr_print_struct(ndr, name, "spoolss_GetForm");
24742 ndr->depth++;
24743 if (flags & NDR_SET_VALUES) {
24744 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24746 if (flags & NDR_IN) {
24747 ndr_print_struct(ndr, "in", "spoolss_GetForm");
24748 ndr->depth++;
24749 ndr_print_ptr(ndr, "handle", r->in.handle);
24750 ndr->depth++;
24751 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24752 ndr->depth--;
24753 ndr_print_string(ndr, "form_name", r->in.form_name);
24754 ndr_print_uint32(ndr, "level", r->in.level);
24755 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24756 ndr->depth++;
24757 if (r->in.buffer) {
24758 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24760 ndr->depth--;
24761 ndr_print_uint32(ndr, "offered", r->in.offered);
24762 ndr->depth--;
24764 if (flags & NDR_OUT) {
24765 ndr_print_struct(ndr, "out", "spoolss_GetForm");
24766 ndr->depth++;
24767 ndr_print_ptr(ndr, "info", r->out.info);
24768 ndr->depth++;
24769 if (r->out.info) {
24770 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
24771 ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
24773 ndr->depth--;
24774 ndr_print_ptr(ndr, "needed", r->out.needed);
24775 ndr->depth++;
24776 ndr_print_uint32(ndr, "needed", *r->out.needed);
24777 ndr->depth--;
24778 ndr_print_WERROR(ndr, "result", r->out.result);
24779 ndr->depth--;
24781 ndr->depth--;
24784 static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, int flags, const struct spoolss_SetForm *r)
24786 if (flags & NDR_IN) {
24787 if (r->in.handle == NULL) {
24788 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24790 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24791 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24792 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24793 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24794 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));
24795 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24796 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
24797 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24799 if (flags & NDR_OUT) {
24800 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24802 return NDR_ERR_SUCCESS;
24805 static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, int flags, struct spoolss_SetForm *r)
24807 TALLOC_CTX *_mem_save_handle_0;
24808 if (flags & NDR_IN) {
24809 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24810 NDR_PULL_ALLOC(ndr, r->in.handle);
24812 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24813 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24814 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24815 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24816 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
24817 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
24818 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
24819 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));
24821 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
24822 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));
24823 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24824 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
24825 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24827 if (flags & NDR_OUT) {
24828 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24830 return NDR_ERR_SUCCESS;
24833 _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetForm *r)
24835 ndr_print_struct(ndr, name, "spoolss_SetForm");
24836 ndr->depth++;
24837 if (flags & NDR_SET_VALUES) {
24838 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24840 if (flags & NDR_IN) {
24841 ndr_print_struct(ndr, "in", "spoolss_SetForm");
24842 ndr->depth++;
24843 ndr_print_ptr(ndr, "handle", r->in.handle);
24844 ndr->depth++;
24845 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24846 ndr->depth--;
24847 ndr_print_string(ndr, "form_name", r->in.form_name);
24848 ndr_print_uint32(ndr, "level", r->in.level);
24849 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
24850 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
24851 ndr->depth--;
24853 if (flags & NDR_OUT) {
24854 ndr_print_struct(ndr, "out", "spoolss_SetForm");
24855 ndr->depth++;
24856 ndr_print_WERROR(ndr, "result", r->out.result);
24857 ndr->depth--;
24859 ndr->depth--;
24862 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct _spoolss_EnumForms *r)
24864 if (flags & NDR_IN) {
24865 if (r->in.handle == NULL) {
24866 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24868 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24869 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24870 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24871 if (r->in.buffer) {
24872 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24874 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24876 if (flags & NDR_OUT) {
24877 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24878 if (r->out.info) {
24879 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
24881 if (r->out.needed == NULL) {
24882 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24884 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24885 if (r->out.count == NULL) {
24886 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24888 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
24889 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24891 return NDR_ERR_SUCCESS;
24894 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct _spoolss_EnumForms *r)
24896 uint32_t _ptr_buffer;
24897 uint32_t _ptr_info;
24898 TALLOC_CTX *_mem_save_handle_0;
24899 TALLOC_CTX *_mem_save_buffer_0;
24900 TALLOC_CTX *_mem_save_info_0;
24901 TALLOC_CTX *_mem_save_needed_0;
24902 TALLOC_CTX *_mem_save_count_0;
24903 if (flags & NDR_IN) {
24904 ZERO_STRUCT(r->out);
24906 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24907 NDR_PULL_ALLOC(ndr, r->in.handle);
24909 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24910 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24911 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24912 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24913 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24914 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24915 if (_ptr_buffer) {
24916 NDR_PULL_ALLOC(ndr, r->in.buffer);
24917 } else {
24918 r->in.buffer = NULL;
24920 if (r->in.buffer) {
24921 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24922 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24923 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24924 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24926 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24927 NDR_PULL_ALLOC(ndr, r->out.needed);
24928 ZERO_STRUCTP(r->out.needed);
24929 NDR_PULL_ALLOC(ndr, r->out.count);
24930 ZERO_STRUCTP(r->out.count);
24932 if (flags & NDR_OUT) {
24933 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24934 if (_ptr_info) {
24935 NDR_PULL_ALLOC(ndr, r->out.info);
24936 } else {
24937 r->out.info = NULL;
24939 if (r->out.info) {
24940 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24941 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24942 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
24943 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24945 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24946 NDR_PULL_ALLOC(ndr, r->out.needed);
24948 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24949 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24950 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24951 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24952 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24953 NDR_PULL_ALLOC(ndr, r->out.count);
24955 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
24956 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
24957 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
24958 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
24959 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24961 return NDR_ERR_SUCCESS;
24964 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct __spoolss_EnumForms *r)
24966 uint32_t cntr_info_0;
24967 if (flags & NDR_IN) {
24968 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24969 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
24971 if (flags & NDR_OUT) {
24972 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24973 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24974 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24976 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24977 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24980 return NDR_ERR_SUCCESS;
24983 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct __spoolss_EnumForms *r)
24985 uint32_t cntr_info_0;
24986 TALLOC_CTX *_mem_save_info_0;
24987 if (flags & NDR_IN) {
24988 ZERO_STRUCT(r->out);
24990 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24991 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
24993 if (flags & NDR_OUT) {
24994 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
24995 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24996 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24997 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24998 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24999 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25001 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25002 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25004 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25006 return NDR_ERR_SUCCESS;
25009 _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumForms *r)
25011 uint32_t cntr_info_2;
25012 ndr_print_struct(ndr, name, "spoolss_EnumForms");
25013 ndr->depth++;
25014 if (flags & NDR_SET_VALUES) {
25015 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25017 if (flags & NDR_IN) {
25018 ndr_print_struct(ndr, "in", "spoolss_EnumForms");
25019 ndr->depth++;
25020 ndr_print_ptr(ndr, "handle", r->in.handle);
25021 ndr->depth++;
25022 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25023 ndr->depth--;
25024 ndr_print_uint32(ndr, "level", r->in.level);
25025 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25026 ndr->depth++;
25027 if (r->in.buffer) {
25028 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
25030 ndr->depth--;
25031 ndr_print_uint32(ndr, "offered", r->in.offered);
25032 ndr->depth--;
25034 if (flags & NDR_OUT) {
25035 ndr_print_struct(ndr, "out", "spoolss_EnumForms");
25036 ndr->depth++;
25037 ndr_print_ptr(ndr, "count", r->out.count);
25038 ndr->depth++;
25039 ndr_print_uint32(ndr, "count", *r->out.count);
25040 ndr->depth--;
25041 ndr_print_ptr(ndr, "info", r->out.info);
25042 ndr->depth++;
25043 ndr_print_ptr(ndr, "info", *r->out.info);
25044 ndr->depth++;
25045 if (*r->out.info) {
25046 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
25047 ndr->depth++;
25048 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
25049 char *idx_2=NULL;
25050 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
25051 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
25052 ndr_print_spoolss_FormInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
25053 free(idx_2);
25056 ndr->depth--;
25058 ndr->depth--;
25059 ndr->depth--;
25060 ndr_print_ptr(ndr, "needed", r->out.needed);
25061 ndr->depth++;
25062 ndr_print_uint32(ndr, "needed", *r->out.needed);
25063 ndr->depth--;
25064 ndr_print_WERROR(ndr, "result", r->out.result);
25065 ndr->depth--;
25067 ndr->depth--;
25070 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPorts *r)
25072 if (flags & NDR_IN) {
25073 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
25074 if (r->in.servername) {
25075 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
25076 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25077 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
25078 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25080 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25081 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25082 if (r->in.buffer) {
25083 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
25085 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25087 if (flags & NDR_OUT) {
25088 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
25089 if (r->out.info) {
25090 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
25092 if (r->out.needed == NULL) {
25093 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25095 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25096 if (r->out.count == NULL) {
25097 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25099 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
25100 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25102 return NDR_ERR_SUCCESS;
25105 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPorts *r)
25107 uint32_t _ptr_servername;
25108 uint32_t _ptr_buffer;
25109 uint32_t _ptr_info;
25110 TALLOC_CTX *_mem_save_servername_0;
25111 TALLOC_CTX *_mem_save_buffer_0;
25112 TALLOC_CTX *_mem_save_info_0;
25113 TALLOC_CTX *_mem_save_needed_0;
25114 TALLOC_CTX *_mem_save_count_0;
25115 if (flags & NDR_IN) {
25116 ZERO_STRUCT(r->out);
25118 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
25119 if (_ptr_servername) {
25120 NDR_PULL_ALLOC(ndr, r->in.servername);
25121 } else {
25122 r->in.servername = NULL;
25124 if (r->in.servername) {
25125 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
25126 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
25127 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
25128 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
25129 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
25130 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));
25132 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
25133 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
25134 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
25136 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25137 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25138 if (_ptr_buffer) {
25139 NDR_PULL_ALLOC(ndr, r->in.buffer);
25140 } else {
25141 r->in.buffer = NULL;
25143 if (r->in.buffer) {
25144 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25145 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25146 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
25147 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25149 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25150 NDR_PULL_ALLOC(ndr, r->out.needed);
25151 ZERO_STRUCTP(r->out.needed);
25152 NDR_PULL_ALLOC(ndr, r->out.count);
25153 ZERO_STRUCTP(r->out.count);
25155 if (flags & NDR_OUT) {
25156 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25157 if (_ptr_info) {
25158 NDR_PULL_ALLOC(ndr, r->out.info);
25159 } else {
25160 r->out.info = NULL;
25162 if (r->out.info) {
25163 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25164 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25165 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
25166 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25168 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25169 NDR_PULL_ALLOC(ndr, r->out.needed);
25171 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25172 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25173 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25174 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25175 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25176 NDR_PULL_ALLOC(ndr, r->out.count);
25178 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
25179 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
25180 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
25181 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
25182 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25184 return NDR_ERR_SUCCESS;
25187 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPorts *r)
25189 uint32_t cntr_info_0;
25190 if (flags & NDR_IN) {
25191 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25192 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
25194 if (flags & NDR_OUT) {
25195 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25196 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25197 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25199 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25200 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25203 return NDR_ERR_SUCCESS;
25206 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPorts *r)
25208 uint32_t cntr_info_0;
25209 TALLOC_CTX *_mem_save_info_0;
25210 if (flags & NDR_IN) {
25211 ZERO_STRUCT(r->out);
25213 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25214 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
25216 if (flags & NDR_OUT) {
25217 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
25218 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25219 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25220 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25221 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25222 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25224 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25225 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25227 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25229 return NDR_ERR_SUCCESS;
25232 _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPorts *r)
25234 uint32_t cntr_info_2;
25235 ndr_print_struct(ndr, name, "spoolss_EnumPorts");
25236 ndr->depth++;
25237 if (flags & NDR_SET_VALUES) {
25238 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25240 if (flags & NDR_IN) {
25241 ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
25242 ndr->depth++;
25243 ndr_print_ptr(ndr, "servername", r->in.servername);
25244 ndr->depth++;
25245 if (r->in.servername) {
25246 ndr_print_string(ndr, "servername", r->in.servername);
25248 ndr->depth--;
25249 ndr_print_uint32(ndr, "level", r->in.level);
25250 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25251 ndr->depth++;
25252 if (r->in.buffer) {
25253 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
25255 ndr->depth--;
25256 ndr_print_uint32(ndr, "offered", r->in.offered);
25257 ndr->depth--;
25259 if (flags & NDR_OUT) {
25260 ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
25261 ndr->depth++;
25262 ndr_print_ptr(ndr, "count", r->out.count);
25263 ndr->depth++;
25264 ndr_print_uint32(ndr, "count", *r->out.count);
25265 ndr->depth--;
25266 ndr_print_ptr(ndr, "info", r->out.info);
25267 ndr->depth++;
25268 ndr_print_ptr(ndr, "info", *r->out.info);
25269 ndr->depth++;
25270 if (*r->out.info) {
25271 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
25272 ndr->depth++;
25273 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
25274 char *idx_2=NULL;
25275 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
25276 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
25277 ndr_print_spoolss_PortInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
25278 free(idx_2);
25281 ndr->depth--;
25283 ndr->depth--;
25284 ndr->depth--;
25285 ndr_print_ptr(ndr, "needed", r->out.needed);
25286 ndr->depth++;
25287 ndr_print_uint32(ndr, "needed", *r->out.needed);
25288 ndr->depth--;
25289 ndr_print_WERROR(ndr, "result", r->out.result);
25290 ndr->depth--;
25292 ndr->depth--;
25295 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumMonitors *r)
25297 if (flags & NDR_IN) {
25298 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
25299 if (r->in.servername) {
25300 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
25301 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25302 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
25303 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25305 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25306 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25307 if (r->in.buffer) {
25308 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
25310 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25312 if (flags & NDR_OUT) {
25313 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
25314 if (r->out.info) {
25315 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
25317 if (r->out.needed == NULL) {
25318 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25320 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25321 if (r->out.count == NULL) {
25322 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25324 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
25325 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25327 return NDR_ERR_SUCCESS;
25330 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumMonitors *r)
25332 uint32_t _ptr_servername;
25333 uint32_t _ptr_buffer;
25334 uint32_t _ptr_info;
25335 TALLOC_CTX *_mem_save_servername_0;
25336 TALLOC_CTX *_mem_save_buffer_0;
25337 TALLOC_CTX *_mem_save_info_0;
25338 TALLOC_CTX *_mem_save_needed_0;
25339 TALLOC_CTX *_mem_save_count_0;
25340 if (flags & NDR_IN) {
25341 ZERO_STRUCT(r->out);
25343 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
25344 if (_ptr_servername) {
25345 NDR_PULL_ALLOC(ndr, r->in.servername);
25346 } else {
25347 r->in.servername = NULL;
25349 if (r->in.servername) {
25350 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
25351 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
25352 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
25353 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
25354 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
25355 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));
25357 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
25358 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
25359 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
25361 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25362 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25363 if (_ptr_buffer) {
25364 NDR_PULL_ALLOC(ndr, r->in.buffer);
25365 } else {
25366 r->in.buffer = NULL;
25368 if (r->in.buffer) {
25369 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25370 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25371 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
25372 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25374 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25375 NDR_PULL_ALLOC(ndr, r->out.needed);
25376 ZERO_STRUCTP(r->out.needed);
25377 NDR_PULL_ALLOC(ndr, r->out.count);
25378 ZERO_STRUCTP(r->out.count);
25380 if (flags & NDR_OUT) {
25381 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25382 if (_ptr_info) {
25383 NDR_PULL_ALLOC(ndr, r->out.info);
25384 } else {
25385 r->out.info = NULL;
25387 if (r->out.info) {
25388 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25389 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25390 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
25391 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25393 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25394 NDR_PULL_ALLOC(ndr, r->out.needed);
25396 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25397 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25398 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25399 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25400 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25401 NDR_PULL_ALLOC(ndr, r->out.count);
25403 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
25404 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
25405 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
25406 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
25407 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25409 return NDR_ERR_SUCCESS;
25412 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumMonitors *r)
25414 uint32_t cntr_info_0;
25415 if (flags & NDR_IN) {
25416 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25417 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
25419 if (flags & NDR_OUT) {
25420 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25421 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25422 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25424 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25425 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25428 return NDR_ERR_SUCCESS;
25431 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumMonitors *r)
25433 uint32_t cntr_info_0;
25434 TALLOC_CTX *_mem_save_info_0;
25435 if (flags & NDR_IN) {
25436 ZERO_STRUCT(r->out);
25438 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25439 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
25441 if (flags & NDR_OUT) {
25442 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
25443 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25444 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25445 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25446 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25447 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25449 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25450 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25452 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25454 return NDR_ERR_SUCCESS;
25457 _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumMonitors *r)
25459 uint32_t cntr_info_2;
25460 ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
25461 ndr->depth++;
25462 if (flags & NDR_SET_VALUES) {
25463 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25465 if (flags & NDR_IN) {
25466 ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
25467 ndr->depth++;
25468 ndr_print_ptr(ndr, "servername", r->in.servername);
25469 ndr->depth++;
25470 if (r->in.servername) {
25471 ndr_print_string(ndr, "servername", r->in.servername);
25473 ndr->depth--;
25474 ndr_print_uint32(ndr, "level", r->in.level);
25475 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25476 ndr->depth++;
25477 if (r->in.buffer) {
25478 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
25480 ndr->depth--;
25481 ndr_print_uint32(ndr, "offered", r->in.offered);
25482 ndr->depth--;
25484 if (flags & NDR_OUT) {
25485 ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
25486 ndr->depth++;
25487 ndr_print_ptr(ndr, "count", r->out.count);
25488 ndr->depth++;
25489 ndr_print_uint32(ndr, "count", *r->out.count);
25490 ndr->depth--;
25491 ndr_print_ptr(ndr, "info", r->out.info);
25492 ndr->depth++;
25493 ndr_print_ptr(ndr, "info", *r->out.info);
25494 ndr->depth++;
25495 if (*r->out.info) {
25496 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
25497 ndr->depth++;
25498 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
25499 char *idx_2=NULL;
25500 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
25501 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
25502 ndr_print_spoolss_MonitorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
25503 free(idx_2);
25506 ndr->depth--;
25508 ndr->depth--;
25509 ndr->depth--;
25510 ndr_print_ptr(ndr, "needed", r->out.needed);
25511 ndr->depth++;
25512 ndr_print_uint32(ndr, "needed", *r->out.needed);
25513 ndr->depth--;
25514 ndr_print_WERROR(ndr, "result", r->out.result);
25515 ndr->depth--;
25517 ndr->depth--;
25520 static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, int flags, const struct spoolss_AddPort *r)
25522 if (flags & NDR_IN) {
25523 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
25524 if (r->in.server_name) {
25525 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
25526 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25527 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
25528 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));
25530 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
25531 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
25532 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25533 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
25534 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));
25536 if (flags & NDR_OUT) {
25537 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25539 return NDR_ERR_SUCCESS;
25542 static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, int flags, struct spoolss_AddPort *r)
25544 uint32_t _ptr_server_name;
25545 TALLOC_CTX *_mem_save_server_name_0;
25546 if (flags & NDR_IN) {
25547 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
25548 if (_ptr_server_name) {
25549 NDR_PULL_ALLOC(ndr, r->in.server_name);
25550 } else {
25551 r->in.server_name = NULL;
25553 if (r->in.server_name) {
25554 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
25555 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
25556 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
25557 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
25558 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
25559 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));
25561 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
25562 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));
25563 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
25565 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
25566 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
25567 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
25568 if (ndr_get_array_length(ndr, &r->in.monitor_name) > ndr_get_array_size(ndr, &r->in.monitor_name)) {
25569 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));
25571 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t)));
25572 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));
25574 if (flags & NDR_OUT) {
25575 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25577 return NDR_ERR_SUCCESS;
25580 _PUBLIC_ void ndr_print_spoolss_AddPort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPort *r)
25582 ndr_print_struct(ndr, name, "spoolss_AddPort");
25583 ndr->depth++;
25584 if (flags & NDR_SET_VALUES) {
25585 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25587 if (flags & NDR_IN) {
25588 ndr_print_struct(ndr, "in", "spoolss_AddPort");
25589 ndr->depth++;
25590 ndr_print_ptr(ndr, "server_name", r->in.server_name);
25591 ndr->depth++;
25592 if (r->in.server_name) {
25593 ndr_print_string(ndr, "server_name", r->in.server_name);
25595 ndr->depth--;
25596 ndr_print_uint32(ndr, "unknown", r->in.unknown);
25597 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
25598 ndr->depth--;
25600 if (flags & NDR_OUT) {
25601 ndr_print_struct(ndr, "out", "spoolss_AddPort");
25602 ndr->depth++;
25603 ndr_print_WERROR(ndr, "result", r->out.result);
25604 ndr->depth--;
25606 ndr->depth--;
25609 static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, int flags, const struct spoolss_ConfigurePort *r)
25611 if (flags & NDR_IN) {
25613 if (flags & NDR_OUT) {
25614 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25616 return NDR_ERR_SUCCESS;
25619 static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, int flags, struct spoolss_ConfigurePort *r)
25621 if (flags & NDR_IN) {
25623 if (flags & NDR_OUT) {
25624 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25626 return NDR_ERR_SUCCESS;
25629 _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ConfigurePort *r)
25631 ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
25632 ndr->depth++;
25633 if (flags & NDR_SET_VALUES) {
25634 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25636 if (flags & NDR_IN) {
25637 ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
25638 ndr->depth++;
25639 ndr->depth--;
25641 if (flags & NDR_OUT) {
25642 ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
25643 ndr->depth++;
25644 ndr_print_WERROR(ndr, "result", r->out.result);
25645 ndr->depth--;
25647 ndr->depth--;
25650 static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, int flags, const struct spoolss_DeletePort *r)
25652 if (flags & NDR_IN) {
25654 if (flags & NDR_OUT) {
25655 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25657 return NDR_ERR_SUCCESS;
25660 static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, int flags, struct spoolss_DeletePort *r)
25662 if (flags & NDR_IN) {
25664 if (flags & NDR_OUT) {
25665 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25667 return NDR_ERR_SUCCESS;
25670 _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePort *r)
25672 ndr_print_struct(ndr, name, "spoolss_DeletePort");
25673 ndr->depth++;
25674 if (flags & NDR_SET_VALUES) {
25675 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25677 if (flags & NDR_IN) {
25678 ndr_print_struct(ndr, "in", "spoolss_DeletePort");
25679 ndr->depth++;
25680 ndr->depth--;
25682 if (flags & NDR_OUT) {
25683 ndr_print_struct(ndr, "out", "spoolss_DeletePort");
25684 ndr->depth++;
25685 ndr_print_WERROR(ndr, "result", r->out.result);
25686 ndr->depth--;
25688 ndr->depth--;
25691 static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_CreatePrinterIC *r)
25693 if (flags & NDR_IN) {
25694 if (r->in.handle == NULL) {
25695 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25697 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25698 if (r->in.devmode_ctr == NULL) {
25699 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25701 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25703 if (flags & NDR_OUT) {
25704 if (r->out.gdi_handle == NULL) {
25705 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25707 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
25708 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25710 return NDR_ERR_SUCCESS;
25713 static enum ndr_err_code ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_CreatePrinterIC *r)
25715 TALLOC_CTX *_mem_save_handle_0;
25716 TALLOC_CTX *_mem_save_gdi_handle_0;
25717 TALLOC_CTX *_mem_save_devmode_ctr_0;
25718 if (flags & NDR_IN) {
25719 ZERO_STRUCT(r->out);
25721 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25722 NDR_PULL_ALLOC(ndr, r->in.handle);
25724 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25725 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25726 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25727 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25728 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25729 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
25731 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25732 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
25733 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25734 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25735 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
25736 ZERO_STRUCTP(r->out.gdi_handle);
25738 if (flags & NDR_OUT) {
25739 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25740 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
25742 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25743 NDR_PULL_SET_MEM_CTX(ndr, r->out.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
25744 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
25745 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
25746 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25748 return NDR_ERR_SUCCESS;
25751 _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_CreatePrinterIC *r)
25753 ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
25754 ndr->depth++;
25755 if (flags & NDR_SET_VALUES) {
25756 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25758 if (flags & NDR_IN) {
25759 ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
25760 ndr->depth++;
25761 ndr_print_ptr(ndr, "handle", r->in.handle);
25762 ndr->depth++;
25763 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25764 ndr->depth--;
25765 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
25766 ndr->depth++;
25767 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
25768 ndr->depth--;
25769 ndr->depth--;
25771 if (flags & NDR_OUT) {
25772 ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
25773 ndr->depth++;
25774 ndr_print_ptr(ndr, "gdi_handle", r->out.gdi_handle);
25775 ndr->depth++;
25776 ndr_print_policy_handle(ndr, "gdi_handle", r->out.gdi_handle);
25777 ndr->depth--;
25778 ndr_print_WERROR(ndr, "result", r->out.result);
25779 ndr->depth--;
25781 ndr->depth--;
25784 static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
25786 if (flags & NDR_IN) {
25788 if (flags & NDR_OUT) {
25789 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25791 return NDR_ERR_SUCCESS;
25794 static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
25796 if (flags & NDR_IN) {
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_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
25806 ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
25807 ndr->depth++;
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_PlayGDIScriptOnPrinterIC");
25813 ndr->depth++;
25814 ndr->depth--;
25816 if (flags & NDR_OUT) {
25817 ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
25818 ndr->depth++;
25819 ndr_print_WERROR(ndr, "result", r->out.result);
25820 ndr->depth--;
25822 ndr->depth--;
25825 static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterIC *r)
25827 if (flags & NDR_IN) {
25828 if (r->in.gdi_handle == NULL) {
25829 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25831 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
25833 if (flags & NDR_OUT) {
25834 if (r->out.gdi_handle == NULL) {
25835 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25837 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
25838 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25840 return NDR_ERR_SUCCESS;
25843 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterIC *r)
25845 TALLOC_CTX *_mem_save_gdi_handle_0;
25846 if (flags & NDR_IN) {
25847 ZERO_STRUCT(r->out);
25849 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25850 NDR_PULL_ALLOC(ndr, r->in.gdi_handle);
25852 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25853 NDR_PULL_SET_MEM_CTX(ndr, r->in.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
25854 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
25855 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
25856 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
25857 *r->out.gdi_handle = *r->in.gdi_handle;
25859 if (flags & NDR_OUT) {
25860 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25861 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
25863 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25864 NDR_PULL_SET_MEM_CTX(ndr, r->out.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
25865 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
25866 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
25867 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25869 return NDR_ERR_SUCCESS;
25872 _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterIC *r)
25874 ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
25875 ndr->depth++;
25876 if (flags & NDR_SET_VALUES) {
25877 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25879 if (flags & NDR_IN) {
25880 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
25881 ndr->depth++;
25882 ndr_print_ptr(ndr, "gdi_handle", r->in.gdi_handle);
25883 ndr->depth++;
25884 ndr_print_policy_handle(ndr, "gdi_handle", r->in.gdi_handle);
25885 ndr->depth--;
25886 ndr->depth--;
25888 if (flags & NDR_OUT) {
25889 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
25890 ndr->depth++;
25891 ndr_print_ptr(ndr, "gdi_handle", r->out.gdi_handle);
25892 ndr->depth++;
25893 ndr_print_policy_handle(ndr, "gdi_handle", r->out.gdi_handle);
25894 ndr->depth--;
25895 ndr_print_WERROR(ndr, "result", r->out.result);
25896 ndr->depth--;
25898 ndr->depth--;
25901 static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterConnection *r)
25903 if (flags & NDR_IN) {
25905 if (flags & NDR_OUT) {
25906 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25908 return NDR_ERR_SUCCESS;
25911 static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterConnection *r)
25913 if (flags & NDR_IN) {
25915 if (flags & NDR_OUT) {
25916 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25918 return NDR_ERR_SUCCESS;
25921 _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterConnection *r)
25923 ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
25924 ndr->depth++;
25925 if (flags & NDR_SET_VALUES) {
25926 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25928 if (flags & NDR_IN) {
25929 ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
25930 ndr->depth++;
25931 ndr->depth--;
25933 if (flags & NDR_OUT) {
25934 ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
25935 ndr->depth++;
25936 ndr_print_WERROR(ndr, "result", r->out.result);
25937 ndr->depth--;
25939 ndr->depth--;
25942 static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterConnection *r)
25944 if (flags & NDR_IN) {
25946 if (flags & NDR_OUT) {
25947 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25949 return NDR_ERR_SUCCESS;
25952 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterConnection *r)
25954 if (flags & NDR_IN) {
25956 if (flags & NDR_OUT) {
25957 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25959 return NDR_ERR_SUCCESS;
25962 _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterConnection *r)
25964 ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
25965 ndr->depth++;
25966 if (flags & NDR_SET_VALUES) {
25967 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25969 if (flags & NDR_IN) {
25970 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
25971 ndr->depth++;
25972 ndr->depth--;
25974 if (flags & NDR_OUT) {
25975 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
25976 ndr->depth++;
25977 ndr_print_WERROR(ndr, "result", r->out.result);
25978 ndr->depth--;
25980 ndr->depth--;
25983 static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, int flags, const struct spoolss_PrinterMessageBox *r)
25985 if (flags & NDR_IN) {
25987 if (flags & NDR_OUT) {
25988 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25990 return NDR_ERR_SUCCESS;
25993 static enum ndr_err_code ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull *ndr, int flags, struct spoolss_PrinterMessageBox *r)
25995 if (flags & NDR_IN) {
25997 if (flags & NDR_OUT) {
25998 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26000 return NDR_ERR_SUCCESS;
26003 _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PrinterMessageBox *r)
26005 ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
26006 ndr->depth++;
26007 if (flags & NDR_SET_VALUES) {
26008 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26010 if (flags & NDR_IN) {
26011 ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
26012 ndr->depth++;
26013 ndr->depth--;
26015 if (flags & NDR_OUT) {
26016 ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
26017 ndr->depth++;
26018 ndr_print_WERROR(ndr, "result", r->out.result);
26019 ndr->depth--;
26021 ndr->depth--;
26024 static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, int flags, const struct spoolss_AddMonitor *r)
26026 if (flags & NDR_IN) {
26028 if (flags & NDR_OUT) {
26029 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26031 return NDR_ERR_SUCCESS;
26034 static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, int flags, struct spoolss_AddMonitor *r)
26036 if (flags & NDR_IN) {
26038 if (flags & NDR_OUT) {
26039 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26041 return NDR_ERR_SUCCESS;
26044 _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddMonitor *r)
26046 ndr_print_struct(ndr, name, "spoolss_AddMonitor");
26047 ndr->depth++;
26048 if (flags & NDR_SET_VALUES) {
26049 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26051 if (flags & NDR_IN) {
26052 ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
26053 ndr->depth++;
26054 ndr->depth--;
26056 if (flags & NDR_OUT) {
26057 ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
26058 ndr->depth++;
26059 ndr_print_WERROR(ndr, "result", r->out.result);
26060 ndr->depth--;
26062 ndr->depth--;
26065 static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, int flags, const struct spoolss_DeleteMonitor *r)
26067 if (flags & NDR_IN) {
26069 if (flags & NDR_OUT) {
26070 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26072 return NDR_ERR_SUCCESS;
26075 static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, int flags, struct spoolss_DeleteMonitor *r)
26077 if (flags & NDR_IN) {
26079 if (flags & NDR_OUT) {
26080 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26082 return NDR_ERR_SUCCESS;
26085 _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteMonitor *r)
26087 ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
26088 ndr->depth++;
26089 if (flags & NDR_SET_VALUES) {
26090 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26092 if (flags & NDR_IN) {
26093 ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
26094 ndr->depth++;
26095 ndr->depth--;
26097 if (flags & NDR_OUT) {
26098 ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
26099 ndr->depth++;
26100 ndr_print_WERROR(ndr, "result", r->out.result);
26101 ndr->depth--;
26103 ndr->depth--;
26106 static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProcessor *r)
26108 if (flags & NDR_IN) {
26110 if (flags & NDR_OUT) {
26111 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26113 return NDR_ERR_SUCCESS;
26116 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProcessor *r)
26118 if (flags & NDR_IN) {
26120 if (flags & NDR_OUT) {
26121 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26123 return NDR_ERR_SUCCESS;
26126 _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProcessor *r)
26128 ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
26129 ndr->depth++;
26130 if (flags & NDR_SET_VALUES) {
26131 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26133 if (flags & NDR_IN) {
26134 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
26135 ndr->depth++;
26136 ndr->depth--;
26138 if (flags & NDR_OUT) {
26139 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
26140 ndr->depth++;
26141 ndr_print_WERROR(ndr, "result", r->out.result);
26142 ndr->depth--;
26144 ndr->depth--;
26147 static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProvidor *r)
26149 if (flags & NDR_IN) {
26151 if (flags & NDR_OUT) {
26152 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26154 return NDR_ERR_SUCCESS;
26157 static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProvidor *r)
26159 if (flags & NDR_IN) {
26161 if (flags & NDR_OUT) {
26162 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26164 return NDR_ERR_SUCCESS;
26167 _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProvidor *r)
26169 ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
26170 ndr->depth++;
26171 if (flags & NDR_SET_VALUES) {
26172 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26174 if (flags & NDR_IN) {
26175 ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
26176 ndr->depth++;
26177 ndr->depth--;
26179 if (flags & NDR_OUT) {
26180 ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
26181 ndr->depth++;
26182 ndr_print_WERROR(ndr, "result", r->out.result);
26183 ndr->depth--;
26185 ndr->depth--;
26188 static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProvidor *r)
26190 if (flags & NDR_IN) {
26192 if (flags & NDR_OUT) {
26193 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26195 return NDR_ERR_SUCCESS;
26198 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProvidor *r)
26200 if (flags & NDR_IN) {
26202 if (flags & NDR_OUT) {
26203 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26205 return NDR_ERR_SUCCESS;
26208 _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProvidor *r)
26210 ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
26211 ndr->depth++;
26212 if (flags & NDR_SET_VALUES) {
26213 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26215 if (flags & NDR_IN) {
26216 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
26217 ndr->depth++;
26218 ndr->depth--;
26220 if (flags & NDR_OUT) {
26221 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
26222 ndr->depth++;
26223 ndr_print_WERROR(ndr, "result", r->out.result);
26224 ndr->depth--;
26226 ndr->depth--;
26229 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcDataTypes *r)
26231 if (flags & NDR_IN) {
26232 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
26233 if (r->in.servername) {
26234 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
26235 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26236 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
26237 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26239 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.print_processor_name));
26240 if (r->in.print_processor_name) {
26241 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
26242 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26243 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
26244 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));
26246 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
26247 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
26248 if (r->in.buffer) {
26249 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
26251 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26253 if (flags & NDR_OUT) {
26254 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
26255 if (r->out.info) {
26256 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
26258 if (r->out.needed == NULL) {
26259 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26261 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26262 if (r->out.count == NULL) {
26263 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26265 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
26266 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26268 return NDR_ERR_SUCCESS;
26271 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcDataTypes *r)
26273 uint32_t _ptr_servername;
26274 uint32_t _ptr_print_processor_name;
26275 uint32_t _ptr_buffer;
26276 uint32_t _ptr_info;
26277 TALLOC_CTX *_mem_save_servername_0;
26278 TALLOC_CTX *_mem_save_print_processor_name_0;
26279 TALLOC_CTX *_mem_save_buffer_0;
26280 TALLOC_CTX *_mem_save_info_0;
26281 TALLOC_CTX *_mem_save_needed_0;
26282 TALLOC_CTX *_mem_save_count_0;
26283 if (flags & NDR_IN) {
26284 ZERO_STRUCT(r->out);
26286 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
26287 if (_ptr_servername) {
26288 NDR_PULL_ALLOC(ndr, r->in.servername);
26289 } else {
26290 r->in.servername = NULL;
26292 if (r->in.servername) {
26293 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
26294 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
26295 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
26296 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
26297 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
26298 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));
26300 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
26301 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
26302 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
26304 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
26305 if (_ptr_print_processor_name) {
26306 NDR_PULL_ALLOC(ndr, r->in.print_processor_name);
26307 } else {
26308 r->in.print_processor_name = NULL;
26310 if (r->in.print_processor_name) {
26311 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
26312 NDR_PULL_SET_MEM_CTX(ndr, r->in.print_processor_name, 0);
26313 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
26314 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
26315 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
26316 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));
26318 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
26319 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));
26320 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
26322 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
26323 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
26324 if (_ptr_buffer) {
26325 NDR_PULL_ALLOC(ndr, r->in.buffer);
26326 } else {
26327 r->in.buffer = NULL;
26329 if (r->in.buffer) {
26330 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26331 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
26332 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
26333 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
26335 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26336 NDR_PULL_ALLOC(ndr, r->out.needed);
26337 ZERO_STRUCTP(r->out.needed);
26338 NDR_PULL_ALLOC(ndr, r->out.count);
26339 ZERO_STRUCTP(r->out.count);
26341 if (flags & NDR_OUT) {
26342 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
26343 if (_ptr_info) {
26344 NDR_PULL_ALLOC(ndr, r->out.info);
26345 } else {
26346 r->out.info = NULL;
26348 if (r->out.info) {
26349 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26350 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
26351 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
26352 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
26354 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26355 NDR_PULL_ALLOC(ndr, r->out.needed);
26357 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26358 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26359 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26360 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26361 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26362 NDR_PULL_ALLOC(ndr, r->out.count);
26364 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
26365 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
26366 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
26367 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
26368 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26370 return NDR_ERR_SUCCESS;
26373 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcDataTypes *r)
26375 uint32_t cntr_info_0;
26376 if (flags & NDR_IN) {
26377 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
26378 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
26380 if (flags & NDR_OUT) {
26381 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
26382 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
26383 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
26385 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
26386 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
26389 return NDR_ERR_SUCCESS;
26392 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcDataTypes *r)
26394 uint32_t cntr_info_0;
26395 TALLOC_CTX *_mem_save_info_0;
26396 if (flags & NDR_IN) {
26397 ZERO_STRUCT(r->out);
26399 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
26400 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
26402 if (flags & NDR_OUT) {
26403 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
26404 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26405 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
26406 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
26407 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
26408 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
26410 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
26411 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
26413 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
26415 return NDR_ERR_SUCCESS;
26418 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
26420 uint32_t cntr_info_2;
26421 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcDataTypes");
26422 ndr->depth++;
26423 if (flags & NDR_SET_VALUES) {
26424 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26426 if (flags & NDR_IN) {
26427 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcDataTypes");
26428 ndr->depth++;
26429 ndr_print_ptr(ndr, "servername", r->in.servername);
26430 ndr->depth++;
26431 if (r->in.servername) {
26432 ndr_print_string(ndr, "servername", r->in.servername);
26434 ndr->depth--;
26435 ndr_print_ptr(ndr, "print_processor_name", r->in.print_processor_name);
26436 ndr->depth++;
26437 if (r->in.print_processor_name) {
26438 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
26440 ndr->depth--;
26441 ndr_print_uint32(ndr, "level", r->in.level);
26442 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26443 ndr->depth++;
26444 if (r->in.buffer) {
26445 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
26447 ndr->depth--;
26448 ndr_print_uint32(ndr, "offered", r->in.offered);
26449 ndr->depth--;
26451 if (flags & NDR_OUT) {
26452 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcDataTypes");
26453 ndr->depth++;
26454 ndr_print_ptr(ndr, "count", r->out.count);
26455 ndr->depth++;
26456 ndr_print_uint32(ndr, "count", *r->out.count);
26457 ndr->depth--;
26458 ndr_print_ptr(ndr, "info", r->out.info);
26459 ndr->depth++;
26460 ndr_print_ptr(ndr, "info", *r->out.info);
26461 ndr->depth++;
26462 if (*r->out.info) {
26463 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
26464 ndr->depth++;
26465 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
26466 char *idx_2=NULL;
26467 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
26468 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
26469 ndr_print_spoolss_PrintProcDataTypesInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
26470 free(idx_2);
26473 ndr->depth--;
26475 ndr->depth--;
26476 ndr->depth--;
26477 ndr_print_ptr(ndr, "needed", r->out.needed);
26478 ndr->depth++;
26479 ndr_print_uint32(ndr, "needed", *r->out.needed);
26480 ndr->depth--;
26481 ndr_print_WERROR(ndr, "result", r->out.result);
26482 ndr->depth--;
26484 ndr->depth--;
26487 static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinter *r)
26489 if (flags & NDR_IN) {
26490 if (r->in.handle == NULL) {
26491 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26493 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26494 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_type));
26495 if (r->in.data_type) {
26496 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
26497 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26498 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
26499 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));
26501 if (r->in.devmode_ctr == NULL) {
26502 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26504 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
26506 if (flags & NDR_OUT) {
26507 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26509 return NDR_ERR_SUCCESS;
26512 static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinter *r)
26514 uint32_t _ptr_data_type;
26515 TALLOC_CTX *_mem_save_handle_0;
26516 TALLOC_CTX *_mem_save_data_type_0;
26517 TALLOC_CTX *_mem_save_devmode_ctr_0;
26518 if (flags & NDR_IN) {
26519 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26520 NDR_PULL_ALLOC(ndr, r->in.handle);
26522 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26523 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26524 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26525 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26526 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
26527 if (_ptr_data_type) {
26528 NDR_PULL_ALLOC(ndr, r->in.data_type);
26529 } else {
26530 r->in.data_type = NULL;
26532 if (r->in.data_type) {
26533 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
26534 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
26535 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
26536 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
26537 if (ndr_get_array_length(ndr, &r->in.data_type) > ndr_get_array_size(ndr, &r->in.data_type)) {
26538 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));
26540 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t)));
26541 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));
26542 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
26544 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26545 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
26547 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26548 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
26549 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
26550 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26552 if (flags & NDR_OUT) {
26553 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26555 return NDR_ERR_SUCCESS;
26558 _PUBLIC_ void ndr_print_spoolss_ResetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinter *r)
26560 ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
26561 ndr->depth++;
26562 if (flags & NDR_SET_VALUES) {
26563 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26565 if (flags & NDR_IN) {
26566 ndr_print_struct(ndr, "in", "spoolss_ResetPrinter");
26567 ndr->depth++;
26568 ndr_print_ptr(ndr, "handle", r->in.handle);
26569 ndr->depth++;
26570 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26571 ndr->depth--;
26572 ndr_print_ptr(ndr, "data_type", r->in.data_type);
26573 ndr->depth++;
26574 if (r->in.data_type) {
26575 ndr_print_string(ndr, "data_type", r->in.data_type);
26577 ndr->depth--;
26578 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
26579 ndr->depth++;
26580 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
26581 ndr->depth--;
26582 ndr->depth--;
26584 if (flags & NDR_OUT) {
26585 ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
26586 ndr->depth++;
26587 ndr_print_WERROR(ndr, "result", r->out.result);
26588 ndr->depth--;
26590 ndr->depth--;
26593 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver2 *r)
26595 if (flags & NDR_IN) {
26596 if (r->in.handle == NULL) {
26597 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26599 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26600 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
26601 if (r->in.architecture) {
26602 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
26603 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26604 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
26605 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26607 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
26608 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
26609 if (r->in.buffer) {
26610 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
26612 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26613 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
26614 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
26616 if (flags & NDR_OUT) {
26617 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
26618 if (r->out.info) {
26620 struct ndr_push *_ndr_info;
26621 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
26622 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
26623 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
26624 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
26627 if (r->out.needed == NULL) {
26628 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26630 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26631 if (r->out.server_major_version == NULL) {
26632 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26634 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
26635 if (r->out.server_minor_version == NULL) {
26636 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26638 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
26639 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26641 return NDR_ERR_SUCCESS;
26644 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver2 *r)
26646 uint32_t _ptr_architecture;
26647 uint32_t _ptr_buffer;
26648 uint32_t _ptr_info;
26649 TALLOC_CTX *_mem_save_handle_0;
26650 TALLOC_CTX *_mem_save_architecture_0;
26651 TALLOC_CTX *_mem_save_buffer_0;
26652 TALLOC_CTX *_mem_save_info_0;
26653 TALLOC_CTX *_mem_save_needed_0;
26654 TALLOC_CTX *_mem_save_server_major_version_0;
26655 TALLOC_CTX *_mem_save_server_minor_version_0;
26656 if (flags & NDR_IN) {
26657 ZERO_STRUCT(r->out);
26659 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26660 NDR_PULL_ALLOC(ndr, r->in.handle);
26662 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26663 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26664 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26665 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26666 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
26667 if (_ptr_architecture) {
26668 NDR_PULL_ALLOC(ndr, r->in.architecture);
26669 } else {
26670 r->in.architecture = NULL;
26672 if (r->in.architecture) {
26673 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
26674 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
26675 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
26676 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
26677 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
26678 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));
26680 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
26681 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
26682 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
26684 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
26685 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
26686 if (_ptr_buffer) {
26687 NDR_PULL_ALLOC(ndr, r->in.buffer);
26688 } else {
26689 r->in.buffer = NULL;
26691 if (r->in.buffer) {
26692 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26693 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
26694 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
26695 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
26697 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26698 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
26699 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
26700 NDR_PULL_ALLOC(ndr, r->out.needed);
26701 ZERO_STRUCTP(r->out.needed);
26702 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
26703 ZERO_STRUCTP(r->out.server_major_version);
26704 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
26705 ZERO_STRUCTP(r->out.server_minor_version);
26707 if (flags & NDR_OUT) {
26708 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
26709 if (_ptr_info) {
26710 NDR_PULL_ALLOC(ndr, r->out.info);
26711 } else {
26712 r->out.info = NULL;
26714 if (r->out.info) {
26715 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26716 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
26718 struct ndr_pull *_ndr_info;
26719 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
26720 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
26721 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
26722 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
26724 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
26726 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26727 NDR_PULL_ALLOC(ndr, r->out.needed);
26729 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26730 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26731 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26732 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26733 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26734 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
26736 _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
26737 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
26738 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
26739 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
26740 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26741 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
26743 _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
26744 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
26745 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
26746 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
26747 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26749 return NDR_ERR_SUCCESS;
26752 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver2 *r)
26754 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
26755 ndr->depth++;
26756 if (flags & NDR_SET_VALUES) {
26757 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26759 if (flags & NDR_IN) {
26760 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
26761 ndr->depth++;
26762 ndr_print_ptr(ndr, "handle", r->in.handle);
26763 ndr->depth++;
26764 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26765 ndr->depth--;
26766 ndr_print_ptr(ndr, "architecture", r->in.architecture);
26767 ndr->depth++;
26768 if (r->in.architecture) {
26769 ndr_print_string(ndr, "architecture", r->in.architecture);
26771 ndr->depth--;
26772 ndr_print_uint32(ndr, "level", r->in.level);
26773 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26774 ndr->depth++;
26775 if (r->in.buffer) {
26776 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
26778 ndr->depth--;
26779 ndr_print_uint32(ndr, "offered", r->in.offered);
26780 ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
26781 ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
26782 ndr->depth--;
26784 if (flags & NDR_OUT) {
26785 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
26786 ndr->depth++;
26787 ndr_print_ptr(ndr, "info", r->out.info);
26788 ndr->depth++;
26789 if (r->out.info) {
26790 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
26791 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
26793 ndr->depth--;
26794 ndr_print_ptr(ndr, "needed", r->out.needed);
26795 ndr->depth++;
26796 ndr_print_uint32(ndr, "needed", *r->out.needed);
26797 ndr->depth--;
26798 ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
26799 ndr->depth++;
26800 ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
26801 ndr->depth--;
26802 ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
26803 ndr->depth++;
26804 ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
26805 ndr->depth--;
26806 ndr_print_WERROR(ndr, "result", r->out.result);
26807 ndr->depth--;
26809 ndr->depth--;
26812 static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
26814 if (flags & NDR_IN) {
26816 if (flags & NDR_OUT) {
26817 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26819 return NDR_ERR_SUCCESS;
26822 static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindFirstPrinterChangeNotification *r)
26824 if (flags & NDR_IN) {
26826 if (flags & NDR_OUT) {
26827 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26829 return NDR_ERR_SUCCESS;
26832 _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
26834 ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
26835 ndr->depth++;
26836 if (flags & NDR_SET_VALUES) {
26837 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26839 if (flags & NDR_IN) {
26840 ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
26841 ndr->depth++;
26842 ndr->depth--;
26844 if (flags & NDR_OUT) {
26845 ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
26846 ndr->depth++;
26847 ndr_print_WERROR(ndr, "result", r->out.result);
26848 ndr->depth--;
26850 ndr->depth--;
26853 static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
26855 if (flags & NDR_IN) {
26857 if (flags & NDR_OUT) {
26858 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26860 return NDR_ERR_SUCCESS;
26863 static enum ndr_err_code ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindNextPrinterChangeNotification *r)
26865 if (flags & NDR_IN) {
26867 if (flags & NDR_OUT) {
26868 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26870 return NDR_ERR_SUCCESS;
26873 _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
26875 ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
26876 ndr->depth++;
26877 if (flags & NDR_SET_VALUES) {
26878 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26880 if (flags & NDR_IN) {
26881 ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
26882 ndr->depth++;
26883 ndr->depth--;
26885 if (flags & NDR_OUT) {
26886 ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
26887 ndr->depth++;
26888 ndr_print_WERROR(ndr, "result", r->out.result);
26889 ndr->depth--;
26891 ndr->depth--;
26894 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, int flags, const struct spoolss_FindClosePrinterNotify *r)
26896 if (flags & NDR_IN) {
26897 if (r->in.handle == NULL) {
26898 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26900 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26902 if (flags & NDR_OUT) {
26903 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26905 return NDR_ERR_SUCCESS;
26908 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, int flags, struct spoolss_FindClosePrinterNotify *r)
26910 TALLOC_CTX *_mem_save_handle_0;
26911 if (flags & NDR_IN) {
26912 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26913 NDR_PULL_ALLOC(ndr, r->in.handle);
26915 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26916 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26917 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26918 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26920 if (flags & NDR_OUT) {
26921 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26923 return NDR_ERR_SUCCESS;
26926 _PUBLIC_ void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindClosePrinterNotify *r)
26928 ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
26929 ndr->depth++;
26930 if (flags & NDR_SET_VALUES) {
26931 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26933 if (flags & NDR_IN) {
26934 ndr_print_struct(ndr, "in", "spoolss_FindClosePrinterNotify");
26935 ndr->depth++;
26936 ndr_print_ptr(ndr, "handle", r->in.handle);
26937 ndr->depth++;
26938 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26939 ndr->depth--;
26940 ndr->depth--;
26942 if (flags & NDR_OUT) {
26943 ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
26944 ndr->depth++;
26945 ndr_print_WERROR(ndr, "result", r->out.result);
26946 ndr->depth--;
26948 ndr->depth--;
26951 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
26953 if (flags & NDR_IN) {
26955 if (flags & NDR_OUT) {
26956 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26958 return NDR_ERR_SUCCESS;
26961 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
26963 if (flags & NDR_IN) {
26965 if (flags & NDR_OUT) {
26966 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26968 return NDR_ERR_SUCCESS;
26971 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
26973 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26974 ndr->depth++;
26975 if (flags & NDR_SET_VALUES) {
26976 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26978 if (flags & NDR_IN) {
26979 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26980 ndr->depth++;
26981 ndr->depth--;
26983 if (flags & NDR_OUT) {
26984 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26985 ndr->depth++;
26986 ndr_print_WERROR(ndr, "result", r->out.result);
26987 ndr->depth--;
26989 ndr->depth--;
26992 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyOpenPrinter *r)
26994 if (flags & NDR_IN) {
26995 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
26996 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26997 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
26998 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));
26999 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
27000 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
27001 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
27002 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
27003 if (r->in.buffer) {
27004 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.bufsize));
27005 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
27008 if (flags & NDR_OUT) {
27009 if (r->out.handle == NULL) {
27010 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27012 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27013 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27015 return NDR_ERR_SUCCESS;
27018 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyOpenPrinter *r)
27020 uint32_t _ptr_buffer;
27021 TALLOC_CTX *_mem_save_buffer_0;
27022 TALLOC_CTX *_mem_save_handle_0;
27023 if (flags & NDR_IN) {
27024 ZERO_STRUCT(r->out);
27026 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
27027 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
27028 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
27029 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));
27031 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
27032 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));
27033 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
27034 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
27035 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
27036 if (r->in.bufsize > 512) {
27037 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
27039 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
27040 if (_ptr_buffer) {
27041 NDR_PULL_ALLOC(ndr, r->in.buffer);
27042 } else {
27043 r->in.buffer = NULL;
27045 if (r->in.buffer) {
27046 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
27047 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
27048 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
27049 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
27050 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
27051 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
27053 NDR_PULL_ALLOC(ndr, r->out.handle);
27054 ZERO_STRUCTP(r->out.handle);
27055 if (r->in.buffer) {
27056 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
27059 if (flags & NDR_OUT) {
27060 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27061 NDR_PULL_ALLOC(ndr, r->out.handle);
27063 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27064 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
27065 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27066 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27067 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27069 return NDR_ERR_SUCCESS;
27072 _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyOpenPrinter *r)
27074 ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
27075 ndr->depth++;
27076 if (flags & NDR_SET_VALUES) {
27077 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27079 if (flags & NDR_IN) {
27080 ndr_print_struct(ndr, "in", "spoolss_ReplyOpenPrinter");
27081 ndr->depth++;
27082 ndr_print_string(ndr, "server_name", r->in.server_name);
27083 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
27084 ndr_print_winreg_Type(ndr, "type", r->in.type);
27085 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
27086 ndr_print_ptr(ndr, "buffer", r->in.buffer);
27087 ndr->depth++;
27088 if (r->in.buffer) {
27089 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
27091 ndr->depth--;
27092 ndr->depth--;
27094 if (flags & NDR_OUT) {
27095 ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
27096 ndr->depth++;
27097 ndr_print_ptr(ndr, "handle", r->out.handle);
27098 ndr->depth++;
27099 ndr_print_policy_handle(ndr, "handle", r->out.handle);
27100 ndr->depth--;
27101 ndr_print_WERROR(ndr, "result", r->out.result);
27102 ndr->depth--;
27104 ndr->depth--;
27107 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinter *r)
27109 if (flags & NDR_IN) {
27110 if (r->in.handle == NULL) {
27111 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27113 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27114 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
27115 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
27116 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
27117 if (r->in.buffer) {
27118 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.bufsize));
27119 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
27122 if (flags & NDR_OUT) {
27123 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27125 return NDR_ERR_SUCCESS;
27128 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinter *r)
27130 uint32_t _ptr_buffer;
27131 TALLOC_CTX *_mem_save_handle_0;
27132 TALLOC_CTX *_mem_save_buffer_0;
27133 if (flags & NDR_IN) {
27134 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27135 NDR_PULL_ALLOC(ndr, r->in.handle);
27137 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27138 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27139 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27140 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27141 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
27142 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
27143 if (r->in.bufsize > 512) {
27144 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
27146 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
27147 if (_ptr_buffer) {
27148 NDR_PULL_ALLOC(ndr, r->in.buffer);
27149 } else {
27150 r->in.buffer = NULL;
27152 if (r->in.buffer) {
27153 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
27154 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
27155 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
27156 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
27157 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
27158 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
27160 if (r->in.buffer) {
27161 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
27164 if (flags & NDR_OUT) {
27165 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27167 return NDR_ERR_SUCCESS;
27170 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinter *r)
27172 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
27173 ndr->depth++;
27174 if (flags & NDR_SET_VALUES) {
27175 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27177 if (flags & NDR_IN) {
27178 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
27179 ndr->depth++;
27180 ndr_print_ptr(ndr, "handle", r->in.handle);
27181 ndr->depth++;
27182 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27183 ndr->depth--;
27184 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
27185 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
27186 ndr_print_ptr(ndr, "buffer", r->in.buffer);
27187 ndr->depth++;
27188 if (r->in.buffer) {
27189 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
27191 ndr->depth--;
27192 ndr->depth--;
27194 if (flags & NDR_OUT) {
27195 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
27196 ndr->depth++;
27197 ndr_print_WERROR(ndr, "result", r->out.result);
27198 ndr->depth--;
27200 ndr->depth--;
27203 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyClosePrinter *r)
27205 if (flags & NDR_IN) {
27206 if (r->in.handle == NULL) {
27207 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27209 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27211 if (flags & NDR_OUT) {
27212 if (r->out.handle == NULL) {
27213 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27215 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27216 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27218 return NDR_ERR_SUCCESS;
27221 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyClosePrinter *r)
27223 TALLOC_CTX *_mem_save_handle_0;
27224 if (flags & NDR_IN) {
27225 ZERO_STRUCT(r->out);
27227 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27228 NDR_PULL_ALLOC(ndr, r->in.handle);
27230 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27231 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27232 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27233 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27234 NDR_PULL_ALLOC(ndr, r->out.handle);
27235 *r->out.handle = *r->in.handle;
27237 if (flags & NDR_OUT) {
27238 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27239 NDR_PULL_ALLOC(ndr, r->out.handle);
27241 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27242 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
27243 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27244 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27245 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27247 return NDR_ERR_SUCCESS;
27250 _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyClosePrinter *r)
27252 ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
27253 ndr->depth++;
27254 if (flags & NDR_SET_VALUES) {
27255 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27257 if (flags & NDR_IN) {
27258 ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
27259 ndr->depth++;
27260 ndr_print_ptr(ndr, "handle", r->in.handle);
27261 ndr->depth++;
27262 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27263 ndr->depth--;
27264 ndr->depth--;
27266 if (flags & NDR_OUT) {
27267 ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
27268 ndr->depth++;
27269 ndr_print_ptr(ndr, "handle", r->out.handle);
27270 ndr->depth++;
27271 ndr_print_policy_handle(ndr, "handle", r->out.handle);
27272 ndr->depth--;
27273 ndr_print_WERROR(ndr, "result", r->out.result);
27274 ndr->depth--;
27276 ndr->depth--;
27279 static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPortEx *r)
27281 if (flags & NDR_IN) {
27283 if (flags & NDR_OUT) {
27284 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27286 return NDR_ERR_SUCCESS;
27289 static enum ndr_err_code ndr_pull_spoolss_AddPortEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPortEx *r)
27291 if (flags & NDR_IN) {
27293 if (flags & NDR_OUT) {
27294 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27296 return NDR_ERR_SUCCESS;
27299 _PUBLIC_ void ndr_print_spoolss_AddPortEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPortEx *r)
27301 ndr_print_struct(ndr, name, "spoolss_AddPortEx");
27302 ndr->depth++;
27303 if (flags & NDR_SET_VALUES) {
27304 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27306 if (flags & NDR_IN) {
27307 ndr_print_struct(ndr, "in", "spoolss_AddPortEx");
27308 ndr->depth++;
27309 ndr->depth--;
27311 if (flags & NDR_OUT) {
27312 ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
27313 ndr->depth++;
27314 ndr_print_WERROR(ndr, "result", r->out.result);
27315 ndr->depth--;
27317 ndr->depth--;
27320 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
27322 if (flags & NDR_IN) {
27324 if (flags & NDR_OUT) {
27325 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27327 return NDR_ERR_SUCCESS;
27330 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
27332 if (flags & NDR_IN) {
27334 if (flags & NDR_OUT) {
27335 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27337 return NDR_ERR_SUCCESS;
27340 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
27342 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
27343 ndr->depth++;
27344 if (flags & NDR_SET_VALUES) {
27345 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27347 if (flags & NDR_IN) {
27348 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
27349 ndr->depth++;
27350 ndr->depth--;
27352 if (flags & NDR_OUT) {
27353 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
27354 ndr->depth++;
27355 ndr_print_WERROR(ndr, "result", r->out.result);
27356 ndr->depth--;
27358 ndr->depth--;
27361 static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, int flags, const struct spoolss_SpoolerInit *r)
27363 if (flags & NDR_IN) {
27365 if (flags & NDR_OUT) {
27366 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27368 return NDR_ERR_SUCCESS;
27371 static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, int flags, struct spoolss_SpoolerInit *r)
27373 if (flags & NDR_IN) {
27375 if (flags & NDR_OUT) {
27376 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27378 return NDR_ERR_SUCCESS;
27381 _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SpoolerInit *r)
27383 ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
27384 ndr->depth++;
27385 if (flags & NDR_SET_VALUES) {
27386 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27388 if (flags & NDR_IN) {
27389 ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
27390 ndr->depth++;
27391 ndr->depth--;
27393 if (flags & NDR_OUT) {
27394 ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
27395 ndr->depth++;
27396 ndr_print_WERROR(ndr, "result", r->out.result);
27397 ndr->depth--;
27399 ndr->depth--;
27402 static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinterEx *r)
27404 if (flags & NDR_IN) {
27406 if (flags & NDR_OUT) {
27407 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27409 return NDR_ERR_SUCCESS;
27412 static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinterEx *r)
27414 if (flags & NDR_IN) {
27416 if (flags & NDR_OUT) {
27417 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27419 return NDR_ERR_SUCCESS;
27422 _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinterEx *r)
27424 ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
27425 ndr->depth++;
27426 if (flags & NDR_SET_VALUES) {
27427 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27429 if (flags & NDR_IN) {
27430 ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
27431 ndr->depth++;
27432 ndr->depth--;
27434 if (flags & NDR_OUT) {
27435 ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
27436 ndr->depth++;
27437 ndr_print_WERROR(ndr, "result", r->out.result);
27438 ndr->depth--;
27440 ndr->depth--;
27443 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
27445 if (flags & NDR_IN) {
27446 if (r->in.handle == NULL) {
27447 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27449 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27450 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
27451 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
27452 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.local_machine));
27453 if (r->in.local_machine) {
27454 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
27455 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27456 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
27457 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));
27459 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
27460 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.notify_options));
27461 if (r->in.notify_options) {
27462 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
27465 if (flags & NDR_OUT) {
27466 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27468 return NDR_ERR_SUCCESS;
27471 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
27473 uint32_t _ptr_local_machine;
27474 uint32_t _ptr_notify_options;
27475 TALLOC_CTX *_mem_save_handle_0;
27476 TALLOC_CTX *_mem_save_local_machine_0;
27477 TALLOC_CTX *_mem_save_notify_options_0;
27478 if (flags & NDR_IN) {
27479 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27480 NDR_PULL_ALLOC(ndr, r->in.handle);
27482 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27483 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27484 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27485 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27486 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
27487 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
27488 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local_machine));
27489 if (_ptr_local_machine) {
27490 NDR_PULL_ALLOC(ndr, r->in.local_machine);
27491 } else {
27492 r->in.local_machine = NULL;
27494 if (r->in.local_machine) {
27495 _mem_save_local_machine_0 = NDR_PULL_GET_MEM_CTX(ndr);
27496 NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
27497 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
27498 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
27499 if (ndr_get_array_length(ndr, &r->in.local_machine) > ndr_get_array_size(ndr, &r->in.local_machine)) {
27500 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));
27502 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t)));
27503 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));
27504 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
27506 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
27507 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_options));
27508 if (_ptr_notify_options) {
27509 NDR_PULL_ALLOC(ndr, r->in.notify_options);
27510 } else {
27511 r->in.notify_options = NULL;
27513 if (r->in.notify_options) {
27514 _mem_save_notify_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
27515 NDR_PULL_SET_MEM_CTX(ndr, r->in.notify_options, 0);
27516 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
27517 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_options_0, 0);
27520 if (flags & NDR_OUT) {
27521 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27523 return NDR_ERR_SUCCESS;
27526 _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
27528 ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
27529 ndr->depth++;
27530 if (flags & NDR_SET_VALUES) {
27531 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27533 if (flags & NDR_IN) {
27534 ndr_print_struct(ndr, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
27535 ndr->depth++;
27536 ndr_print_ptr(ndr, "handle", r->in.handle);
27537 ndr->depth++;
27538 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27539 ndr->depth--;
27540 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
27541 ndr_print_uint32(ndr, "options", r->in.options);
27542 ndr_print_ptr(ndr, "local_machine", r->in.local_machine);
27543 ndr->depth++;
27544 if (r->in.local_machine) {
27545 ndr_print_string(ndr, "local_machine", r->in.local_machine);
27547 ndr->depth--;
27548 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
27549 ndr_print_ptr(ndr, "notify_options", r->in.notify_options);
27550 ndr->depth++;
27551 if (r->in.notify_options) {
27552 ndr_print_spoolss_NotifyOption(ndr, "notify_options", r->in.notify_options);
27554 ndr->depth--;
27555 ndr->depth--;
27557 if (flags & NDR_OUT) {
27558 ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
27559 ndr->depth++;
27560 ndr_print_WERROR(ndr, "result", r->out.result);
27561 ndr->depth--;
27563 ndr->depth--;
27566 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinterEx *r)
27568 if (flags & NDR_IN) {
27569 if (r->in.handle == NULL) {
27570 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27572 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27573 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.color));
27574 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
27575 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reply_type));
27576 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.reply_type));
27577 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
27579 if (flags & NDR_OUT) {
27580 if (r->out.reply_result == NULL) {
27581 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27583 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, *r->out.reply_result));
27584 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27586 return NDR_ERR_SUCCESS;
27589 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinterEx *r)
27591 TALLOC_CTX *_mem_save_handle_0;
27592 TALLOC_CTX *_mem_save_reply_result_0;
27593 if (flags & NDR_IN) {
27594 ZERO_STRUCT(r->out);
27596 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27597 NDR_PULL_ALLOC(ndr, r->in.handle);
27599 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27600 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27601 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27602 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27603 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.color));
27604 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
27605 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reply_type));
27606 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.reply_type));
27607 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
27608 NDR_PULL_ALLOC(ndr, r->out.reply_result);
27609 ZERO_STRUCTP(r->out.reply_result);
27611 if (flags & NDR_OUT) {
27612 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27613 NDR_PULL_ALLOC(ndr, r->out.reply_result);
27615 _mem_save_reply_result_0 = NDR_PULL_GET_MEM_CTX(ndr);
27616 NDR_PULL_SET_MEM_CTX(ndr, r->out.reply_result, LIBNDR_FLAG_REF_ALLOC);
27617 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, r->out.reply_result));
27618 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reply_result_0, LIBNDR_FLAG_REF_ALLOC);
27619 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27621 return NDR_ERR_SUCCESS;
27624 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinterEx *r)
27626 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinterEx");
27627 ndr->depth++;
27628 if (flags & NDR_SET_VALUES) {
27629 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27631 if (flags & NDR_IN) {
27632 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinterEx");
27633 ndr->depth++;
27634 ndr_print_ptr(ndr, "handle", r->in.handle);
27635 ndr->depth++;
27636 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27637 ndr->depth--;
27638 ndr_print_uint32(ndr, "color", r->in.color);
27639 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
27640 ndr_print_uint32(ndr, "reply_type", r->in.reply_type);
27641 ndr_print_set_switch_value(ndr, &r->in.info, r->in.reply_type);
27642 ndr_print_spoolss_ReplyPrinterInfo(ndr, "info", &r->in.info);
27643 ndr->depth--;
27645 if (flags & NDR_OUT) {
27646 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinterEx");
27647 ndr->depth++;
27648 ndr_print_ptr(ndr, "reply_result", r->out.reply_result);
27649 ndr->depth++;
27650 ndr_print_spoolss_PrinterNotifyFlags(ndr, "reply_result", *r->out.reply_result);
27651 ndr->depth--;
27652 ndr_print_WERROR(ndr, "result", r->out.result);
27653 ndr->depth--;
27655 ndr->depth--;
27658 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push *ndr, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
27660 if (flags & NDR_IN) {
27661 if (r->in.handle == NULL) {
27662 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27664 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27665 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
27666 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.options));
27667 if (r->in.options) {
27668 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
27671 if (flags & NDR_OUT) {
27672 if (r->out.info == NULL) {
27673 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27675 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
27676 if (*r->out.info) {
27677 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
27679 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27681 return NDR_ERR_SUCCESS;
27684 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull *ndr, int flags, struct spoolss_RouterRefreshPrinterChangeNotify *r)
27686 uint32_t _ptr_options;
27687 uint32_t _ptr_info;
27688 TALLOC_CTX *_mem_save_handle_0;
27689 TALLOC_CTX *_mem_save_options_0;
27690 TALLOC_CTX *_mem_save_info_0;
27691 TALLOC_CTX *_mem_save_info_1;
27692 if (flags & NDR_IN) {
27693 ZERO_STRUCT(r->out);
27695 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27696 NDR_PULL_ALLOC(ndr, r->in.handle);
27698 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27699 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27700 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27701 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27702 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
27703 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
27704 if (_ptr_options) {
27705 NDR_PULL_ALLOC(ndr, r->in.options);
27706 } else {
27707 r->in.options = NULL;
27709 if (r->in.options) {
27710 _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
27711 NDR_PULL_SET_MEM_CTX(ndr, r->in.options, 0);
27712 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
27713 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
27715 NDR_PULL_ALLOC(ndr, r->out.info);
27716 ZERO_STRUCTP(r->out.info);
27718 if (flags & NDR_OUT) {
27719 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27720 NDR_PULL_ALLOC(ndr, r->out.info);
27722 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
27723 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
27724 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
27725 if (_ptr_info) {
27726 NDR_PULL_ALLOC(ndr, *r->out.info);
27727 } else {
27728 *r->out.info = NULL;
27730 if (*r->out.info) {
27731 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
27732 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
27733 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
27734 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
27736 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
27737 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27739 return NDR_ERR_SUCCESS;
27742 _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
27744 ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotify");
27745 ndr->depth++;
27746 if (flags & NDR_SET_VALUES) {
27747 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27749 if (flags & NDR_IN) {
27750 ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotify");
27751 ndr->depth++;
27752 ndr_print_ptr(ndr, "handle", r->in.handle);
27753 ndr->depth++;
27754 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27755 ndr->depth--;
27756 ndr_print_uint32(ndr, "change_low", r->in.change_low);
27757 ndr_print_ptr(ndr, "options", r->in.options);
27758 ndr->depth++;
27759 if (r->in.options) {
27760 ndr_print_spoolss_NotifyOption(ndr, "options", r->in.options);
27762 ndr->depth--;
27763 ndr->depth--;
27765 if (flags & NDR_OUT) {
27766 ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotify");
27767 ndr->depth++;
27768 ndr_print_ptr(ndr, "info", r->out.info);
27769 ndr->depth++;
27770 ndr_print_ptr(ndr, "info", *r->out.info);
27771 ndr->depth++;
27772 if (*r->out.info) {
27773 ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
27775 ndr->depth--;
27776 ndr->depth--;
27777 ndr_print_WERROR(ndr, "result", r->out.result);
27778 ndr->depth--;
27780 ndr->depth--;
27783 static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, int flags, const struct spoolss_44 *r)
27785 if (flags & NDR_IN) {
27787 if (flags & NDR_OUT) {
27788 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27790 return NDR_ERR_SUCCESS;
27793 static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, int flags, struct spoolss_44 *r)
27795 if (flags & NDR_IN) {
27797 if (flags & NDR_OUT) {
27798 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27800 return NDR_ERR_SUCCESS;
27803 _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_44 *r)
27805 ndr_print_struct(ndr, name, "spoolss_44");
27806 ndr->depth++;
27807 if (flags & NDR_SET_VALUES) {
27808 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27810 if (flags & NDR_IN) {
27811 ndr_print_struct(ndr, "in", "spoolss_44");
27812 ndr->depth++;
27813 ndr->depth--;
27815 if (flags & NDR_OUT) {
27816 ndr_print_struct(ndr, "out", "spoolss_44");
27817 ndr->depth++;
27818 ndr_print_WERROR(ndr, "result", r->out.result);
27819 ndr->depth--;
27821 ndr->depth--;
27824 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinterEx *r)
27826 if (flags & NDR_IN) {
27827 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
27828 if (r->in.printername) {
27829 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
27830 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27831 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
27832 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27834 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
27835 if (r->in.datatype) {
27836 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
27837 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27838 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
27839 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27841 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
27842 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
27843 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
27844 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.userlevel, r->in.level));
27845 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
27847 if (flags & NDR_OUT) {
27848 if (r->out.handle == NULL) {
27849 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27851 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27852 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27854 return NDR_ERR_SUCCESS;
27857 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinterEx *r)
27859 uint32_t _ptr_printername;
27860 uint32_t _ptr_datatype;
27861 TALLOC_CTX *_mem_save_printername_0;
27862 TALLOC_CTX *_mem_save_datatype_0;
27863 TALLOC_CTX *_mem_save_handle_0;
27864 if (flags & NDR_IN) {
27865 ZERO_STRUCT(r->out);
27867 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
27868 if (_ptr_printername) {
27869 NDR_PULL_ALLOC(ndr, r->in.printername);
27870 } else {
27871 r->in.printername = NULL;
27873 if (r->in.printername) {
27874 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
27875 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
27876 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
27877 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
27878 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
27879 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));
27881 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
27882 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
27883 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
27885 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
27886 if (_ptr_datatype) {
27887 NDR_PULL_ALLOC(ndr, r->in.datatype);
27888 } else {
27889 r->in.datatype = NULL;
27891 if (r->in.datatype) {
27892 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
27893 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
27894 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
27895 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
27896 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
27897 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));
27899 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
27900 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
27901 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
27903 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
27904 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
27905 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
27906 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.userlevel, r->in.level));
27907 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
27908 NDR_PULL_ALLOC(ndr, r->out.handle);
27909 ZERO_STRUCTP(r->out.handle);
27911 if (flags & NDR_OUT) {
27912 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27913 NDR_PULL_ALLOC(ndr, r->out.handle);
27915 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27916 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
27917 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27918 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27919 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27921 return NDR_ERR_SUCCESS;
27924 _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinterEx *r)
27926 ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
27927 ndr->depth++;
27928 if (flags & NDR_SET_VALUES) {
27929 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27931 if (flags & NDR_IN) {
27932 ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
27933 ndr->depth++;
27934 ndr_print_ptr(ndr, "printername", r->in.printername);
27935 ndr->depth++;
27936 if (r->in.printername) {
27937 ndr_print_string(ndr, "printername", r->in.printername);
27939 ndr->depth--;
27940 ndr_print_ptr(ndr, "datatype", r->in.datatype);
27941 ndr->depth++;
27942 if (r->in.datatype) {
27943 ndr_print_string(ndr, "datatype", r->in.datatype);
27945 ndr->depth--;
27946 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
27947 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
27948 ndr_print_uint32(ndr, "level", r->in.level);
27949 ndr_print_set_switch_value(ndr, &r->in.userlevel, r->in.level);
27950 ndr_print_spoolss_UserLevel(ndr, "userlevel", &r->in.userlevel);
27951 ndr->depth--;
27953 if (flags & NDR_OUT) {
27954 ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
27955 ndr->depth++;
27956 ndr_print_ptr(ndr, "handle", r->out.handle);
27957 ndr->depth++;
27958 ndr_print_policy_handle(ndr, "handle", r->out.handle);
27959 ndr->depth--;
27960 ndr_print_WERROR(ndr, "result", r->out.result);
27961 ndr->depth--;
27963 ndr->depth--;
27966 static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterEx *r)
27968 if (flags & NDR_IN) {
27969 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
27970 if (r->in.server) {
27971 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27972 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27973 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27974 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27976 if (r->in.info_ctr == NULL) {
27977 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27979 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27980 if (r->in.devmode_ctr == NULL) {
27981 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27983 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
27984 if (r->in.secdesc_ctr == NULL) {
27985 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27987 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
27988 if (r->in.userlevel_ctr == NULL) {
27989 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27991 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
27993 if (flags & NDR_OUT) {
27994 if (r->out.handle == NULL) {
27995 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27997 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27998 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28000 return NDR_ERR_SUCCESS;
28003 static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterEx *r)
28005 uint32_t _ptr_server;
28006 TALLOC_CTX *_mem_save_server_0;
28007 TALLOC_CTX *_mem_save_info_ctr_0;
28008 TALLOC_CTX *_mem_save_devmode_ctr_0;
28009 TALLOC_CTX *_mem_save_secdesc_ctr_0;
28010 TALLOC_CTX *_mem_save_userlevel_ctr_0;
28011 TALLOC_CTX *_mem_save_handle_0;
28012 if (flags & NDR_IN) {
28013 ZERO_STRUCT(r->out);
28015 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
28016 if (_ptr_server) {
28017 NDR_PULL_ALLOC(ndr, r->in.server);
28018 } else {
28019 r->in.server = NULL;
28021 if (r->in.server) {
28022 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
28023 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
28024 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
28025 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
28026 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
28027 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));
28029 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
28030 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
28031 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
28033 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28034 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
28036 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
28037 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
28038 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
28039 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
28040 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28041 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
28043 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
28044 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
28045 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
28046 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
28047 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28048 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
28050 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
28051 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
28052 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
28053 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
28054 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28055 NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
28057 _mem_save_userlevel_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
28058 NDR_PULL_SET_MEM_CTX(ndr, r->in.userlevel_ctr, LIBNDR_FLAG_REF_ALLOC);
28059 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
28060 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userlevel_ctr_0, LIBNDR_FLAG_REF_ALLOC);
28061 NDR_PULL_ALLOC(ndr, r->out.handle);
28062 ZERO_STRUCTP(r->out.handle);
28064 if (flags & NDR_OUT) {
28065 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28066 NDR_PULL_ALLOC(ndr, r->out.handle);
28068 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28069 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
28070 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
28071 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28072 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28074 return NDR_ERR_SUCCESS;
28077 _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterEx *r)
28079 ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
28080 ndr->depth++;
28081 if (flags & NDR_SET_VALUES) {
28082 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28084 if (flags & NDR_IN) {
28085 ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
28086 ndr->depth++;
28087 ndr_print_ptr(ndr, "server", r->in.server);
28088 ndr->depth++;
28089 if (r->in.server) {
28090 ndr_print_string(ndr, "server", r->in.server);
28092 ndr->depth--;
28093 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
28094 ndr->depth++;
28095 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
28096 ndr->depth--;
28097 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
28098 ndr->depth++;
28099 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
28100 ndr->depth--;
28101 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
28102 ndr->depth++;
28103 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
28104 ndr->depth--;
28105 ndr_print_ptr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
28106 ndr->depth++;
28107 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
28108 ndr->depth--;
28109 ndr->depth--;
28111 if (flags & NDR_OUT) {
28112 ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
28113 ndr->depth++;
28114 ndr_print_ptr(ndr, "handle", r->out.handle);
28115 ndr->depth++;
28116 ndr_print_policy_handle(ndr, "handle", r->out.handle);
28117 ndr->depth--;
28118 ndr_print_WERROR(ndr, "result", r->out.result);
28119 ndr->depth--;
28121 ndr->depth--;
28124 static enum ndr_err_code ndr_push_spoolss_47(struct ndr_push *ndr, int flags, const struct spoolss_47 *r)
28126 if (flags & NDR_IN) {
28128 if (flags & NDR_OUT) {
28129 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28131 return NDR_ERR_SUCCESS;
28134 static enum ndr_err_code ndr_pull_spoolss_47(struct ndr_pull *ndr, int flags, struct spoolss_47 *r)
28136 if (flags & NDR_IN) {
28138 if (flags & NDR_OUT) {
28139 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28141 return NDR_ERR_SUCCESS;
28144 _PUBLIC_ void ndr_print_spoolss_47(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_47 *r)
28146 ndr_print_struct(ndr, name, "spoolss_47");
28147 ndr->depth++;
28148 if (flags & NDR_SET_VALUES) {
28149 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28151 if (flags & NDR_IN) {
28152 ndr_print_struct(ndr, "in", "spoolss_47");
28153 ndr->depth++;
28154 ndr->depth--;
28156 if (flags & NDR_OUT) {
28157 ndr_print_struct(ndr, "out", "spoolss_47");
28158 ndr->depth++;
28159 ndr_print_WERROR(ndr, "result", r->out.result);
28160 ndr->depth--;
28162 ndr->depth--;
28165 static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterData *r)
28167 if (flags & NDR_IN) {
28168 if (r->in.handle == NULL) {
28169 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28171 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28172 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
28173 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
28174 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
28176 if (flags & NDR_OUT) {
28177 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.value_offered / 2));
28178 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
28179 if (r->out.value_needed == NULL) {
28180 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28182 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
28183 if (r->out.type == NULL) {
28184 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28186 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
28188 uint32_t _flags_save_uint8 = ndr->flags;
28189 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
28190 if (r->out.data == NULL) {
28191 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28193 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_offered));
28194 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_offered));
28195 ndr->flags = _flags_save_uint8;
28197 if (r->out.data_needed == NULL) {
28198 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28200 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
28201 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28203 return NDR_ERR_SUCCESS;
28206 static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterData *r)
28208 TALLOC_CTX *_mem_save_handle_0;
28209 TALLOC_CTX *_mem_save_value_needed_0;
28210 TALLOC_CTX *_mem_save_type_0;
28211 TALLOC_CTX *_mem_save_data_needed_0;
28212 if (flags & NDR_IN) {
28213 ZERO_STRUCT(r->out);
28215 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28216 NDR_PULL_ALLOC(ndr, r->in.handle);
28218 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28219 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28220 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28221 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28222 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
28223 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
28224 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
28225 NDR_PULL_ALLOC(ndr, r->out.value_needed);
28226 ZERO_STRUCTP(r->out.value_needed);
28227 NDR_PULL_ALLOC(ndr, r->out.type);
28228 ZERO_STRUCTP(r->out.type);
28229 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_offered);
28230 memset(r->out.data, 0, (r->in.data_offered) * sizeof(*r->out.data));
28231 NDR_PULL_ALLOC(ndr, r->out.data_needed);
28232 ZERO_STRUCTP(r->out.data_needed);
28234 if (flags & NDR_OUT) {
28235 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
28236 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));
28237 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28238 NDR_PULL_ALLOC(ndr, r->out.value_needed);
28240 _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28241 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
28242 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
28243 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
28244 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28245 NDR_PULL_ALLOC(ndr, r->out.type);
28247 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
28248 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
28249 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
28250 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
28252 uint32_t _flags_save_uint8 = ndr->flags;
28253 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
28254 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
28255 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28256 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
28258 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
28259 ndr->flags = _flags_save_uint8;
28261 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28262 NDR_PULL_ALLOC(ndr, r->out.data_needed);
28264 _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28265 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
28266 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
28267 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
28268 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28269 if (r->out.value_name) {
28270 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
28272 if (r->out.data) {
28273 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_offered));
28276 return NDR_ERR_SUCCESS;
28279 _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterData *r)
28281 ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
28282 ndr->depth++;
28283 if (flags & NDR_SET_VALUES) {
28284 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28286 if (flags & NDR_IN) {
28287 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
28288 ndr->depth++;
28289 ndr_print_ptr(ndr, "handle", r->in.handle);
28290 ndr->depth++;
28291 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28292 ndr->depth--;
28293 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
28294 ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
28295 ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
28296 ndr->depth--;
28298 if (flags & NDR_OUT) {
28299 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
28300 ndr->depth++;
28301 ndr_print_string(ndr, "value_name", r->out.value_name);
28302 ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
28303 ndr->depth++;
28304 ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
28305 ndr->depth--;
28306 ndr_print_ptr(ndr, "type", r->out.type);
28307 ndr->depth++;
28308 ndr_print_winreg_Type(ndr, "type", *r->out.type);
28309 ndr->depth--;
28310 ndr_print_ptr(ndr, "data", r->out.data);
28311 ndr->depth++;
28312 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_offered);
28313 ndr->depth--;
28314 ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
28315 ndr->depth++;
28316 ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
28317 ndr->depth--;
28318 ndr_print_WERROR(ndr, "result", r->out.result);
28319 ndr->depth--;
28321 ndr->depth--;
28324 static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterData *r)
28326 if (flags & NDR_IN) {
28327 if (r->in.handle == NULL) {
28328 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28330 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28331 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28332 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28333 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28334 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));
28336 if (flags & NDR_OUT) {
28337 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28339 return NDR_ERR_SUCCESS;
28342 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterData(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterData *r)
28344 TALLOC_CTX *_mem_save_handle_0;
28345 if (flags & NDR_IN) {
28346 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28347 NDR_PULL_ALLOC(ndr, r->in.handle);
28349 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28350 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28351 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28352 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28353 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
28354 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
28355 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
28356 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));
28358 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
28359 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));
28361 if (flags & NDR_OUT) {
28362 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28364 return NDR_ERR_SUCCESS;
28367 _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterData *r)
28369 ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
28370 ndr->depth++;
28371 if (flags & NDR_SET_VALUES) {
28372 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28374 if (flags & NDR_IN) {
28375 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
28376 ndr->depth++;
28377 ndr_print_ptr(ndr, "handle", r->in.handle);
28378 ndr->depth++;
28379 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28380 ndr->depth--;
28381 ndr_print_string(ndr, "value_name", r->in.value_name);
28382 ndr->depth--;
28384 if (flags & NDR_OUT) {
28385 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
28386 ndr->depth++;
28387 ndr_print_WERROR(ndr, "result", r->out.result);
28388 ndr->depth--;
28390 ndr->depth--;
28393 static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, int flags, const struct spoolss_4a *r)
28395 if (flags & NDR_IN) {
28397 if (flags & NDR_OUT) {
28398 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28400 return NDR_ERR_SUCCESS;
28403 static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, int flags, struct spoolss_4a *r)
28405 if (flags & NDR_IN) {
28407 if (flags & NDR_OUT) {
28408 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28410 return NDR_ERR_SUCCESS;
28413 _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4a *r)
28415 ndr_print_struct(ndr, name, "spoolss_4a");
28416 ndr->depth++;
28417 if (flags & NDR_SET_VALUES) {
28418 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28420 if (flags & NDR_IN) {
28421 ndr_print_struct(ndr, "in", "spoolss_4a");
28422 ndr->depth++;
28423 ndr->depth--;
28425 if (flags & NDR_OUT) {
28426 ndr_print_struct(ndr, "out", "spoolss_4a");
28427 ndr->depth++;
28428 ndr_print_WERROR(ndr, "result", r->out.result);
28429 ndr->depth--;
28431 ndr->depth--;
28434 static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, int flags, const struct spoolss_4b *r)
28436 if (flags & NDR_IN) {
28438 if (flags & NDR_OUT) {
28439 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28441 return NDR_ERR_SUCCESS;
28444 static enum ndr_err_code ndr_pull_spoolss_4b(struct ndr_pull *ndr, int flags, struct spoolss_4b *r)
28446 if (flags & NDR_IN) {
28448 if (flags & NDR_OUT) {
28449 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28451 return NDR_ERR_SUCCESS;
28454 _PUBLIC_ void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r)
28456 ndr_print_struct(ndr, name, "spoolss_4b");
28457 ndr->depth++;
28458 if (flags & NDR_SET_VALUES) {
28459 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28461 if (flags & NDR_IN) {
28462 ndr_print_struct(ndr, "in", "spoolss_4b");
28463 ndr->depth++;
28464 ndr->depth--;
28466 if (flags & NDR_OUT) {
28467 ndr_print_struct(ndr, "out", "spoolss_4b");
28468 ndr->depth++;
28469 ndr_print_WERROR(ndr, "result", r->out.result);
28470 ndr->depth--;
28472 ndr->depth--;
28475 static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, int flags, const struct spoolss_4c *r)
28477 if (flags & NDR_IN) {
28479 if (flags & NDR_OUT) {
28480 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28482 return NDR_ERR_SUCCESS;
28485 static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, int flags, struct spoolss_4c *r)
28487 if (flags & NDR_IN) {
28489 if (flags & NDR_OUT) {
28490 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28492 return NDR_ERR_SUCCESS;
28495 _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4c *r)
28497 ndr_print_struct(ndr, name, "spoolss_4c");
28498 ndr->depth++;
28499 if (flags & NDR_SET_VALUES) {
28500 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28502 if (flags & NDR_IN) {
28503 ndr_print_struct(ndr, "in", "spoolss_4c");
28504 ndr->depth++;
28505 ndr->depth--;
28507 if (flags & NDR_OUT) {
28508 ndr_print_struct(ndr, "out", "spoolss_4c");
28509 ndr->depth++;
28510 ndr_print_WERROR(ndr, "result", r->out.result);
28511 ndr->depth--;
28513 ndr->depth--;
28516 static enum ndr_err_code ndr_push_spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterDataEx *r)
28518 if (flags & NDR_IN) {
28519 if (r->in.handle == NULL) {
28520 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28522 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28523 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28524 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28525 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28526 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));
28527 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28528 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28529 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28530 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));
28531 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
28532 if (r->in.data == NULL) {
28533 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28535 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
28536 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, r->in.offered));
28537 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
28539 if (flags & NDR_OUT) {
28540 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28542 return NDR_ERR_SUCCESS;
28545 static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterDataEx *r)
28547 TALLOC_CTX *_mem_save_handle_0;
28548 if (flags & NDR_IN) {
28549 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28550 NDR_PULL_ALLOC(ndr, r->in.handle);
28552 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28553 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28554 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28555 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28556 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28557 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28558 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28559 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));
28561 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28562 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));
28563 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
28564 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
28565 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
28566 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));
28568 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
28569 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));
28570 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
28571 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data));
28572 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28573 NDR_PULL_ALLOC_N(ndr, r->in.data, ndr_get_array_size(ndr, &r->in.data));
28575 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, ndr_get_array_size(ndr, &r->in.data)));
28576 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
28577 if (r->in.data) {
28578 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, r->in.offered));
28581 if (flags & NDR_OUT) {
28582 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28584 return NDR_ERR_SUCCESS;
28587 _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterDataEx *r)
28589 ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
28590 ndr->depth++;
28591 if (flags & NDR_SET_VALUES) {
28592 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28594 if (flags & NDR_IN) {
28595 ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
28596 ndr->depth++;
28597 ndr_print_ptr(ndr, "handle", r->in.handle);
28598 ndr->depth++;
28599 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28600 ndr->depth--;
28601 ndr_print_string(ndr, "key_name", r->in.key_name);
28602 ndr_print_string(ndr, "value_name", r->in.value_name);
28603 ndr_print_winreg_Type(ndr, "type", r->in.type);
28604 ndr_print_ptr(ndr, "data", r->in.data);
28605 ndr->depth++;
28606 ndr_print_array_uint8(ndr, "data", r->in.data, r->in.offered);
28607 ndr->depth--;
28608 ndr_print_uint32(ndr, "offered", r->in.offered);
28609 ndr->depth--;
28611 if (flags & NDR_OUT) {
28612 ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
28613 ndr->depth++;
28614 ndr_print_WERROR(ndr, "result", r->out.result);
28615 ndr->depth--;
28617 ndr->depth--;
28620 static enum ndr_err_code ndr_push_spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDataEx *r)
28622 if (flags & NDR_IN) {
28623 if (r->in.handle == NULL) {
28624 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28626 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28627 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28628 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28629 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28630 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));
28631 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28632 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28633 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28634 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));
28635 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
28637 if (flags & NDR_OUT) {
28638 if (r->out.type == NULL) {
28639 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28641 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
28642 if (r->out.data == NULL) {
28643 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28645 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
28646 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.offered));
28647 if (r->out.needed == NULL) {
28648 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28650 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28651 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28653 return NDR_ERR_SUCCESS;
28656 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDataEx *r)
28658 TALLOC_CTX *_mem_save_handle_0;
28659 TALLOC_CTX *_mem_save_type_0;
28660 TALLOC_CTX *_mem_save_needed_0;
28661 if (flags & NDR_IN) {
28662 ZERO_STRUCT(r->out);
28664 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28665 NDR_PULL_ALLOC(ndr, r->in.handle);
28667 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28668 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28669 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28670 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28671 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28672 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28673 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28674 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));
28676 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28677 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));
28678 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
28679 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
28680 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
28681 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));
28683 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
28684 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));
28685 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
28686 NDR_PULL_ALLOC(ndr, r->out.type);
28687 ZERO_STRUCTP(r->out.type);
28688 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.offered);
28689 memset(r->out.data, 0, (r->in.offered) * sizeof(*r->out.data));
28690 NDR_PULL_ALLOC(ndr, r->out.needed);
28691 ZERO_STRUCTP(r->out.needed);
28693 if (flags & NDR_OUT) {
28694 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28695 NDR_PULL_ALLOC(ndr, r->out.type);
28697 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
28698 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
28699 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
28700 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
28701 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
28702 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28703 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
28705 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
28706 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28707 NDR_PULL_ALLOC(ndr, r->out.needed);
28709 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28710 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28711 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28712 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28713 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28714 if (r->out.data) {
28715 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.offered));
28718 return NDR_ERR_SUCCESS;
28721 _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r)
28723 ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
28724 ndr->depth++;
28725 if (flags & NDR_SET_VALUES) {
28726 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28728 if (flags & NDR_IN) {
28729 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
28730 ndr->depth++;
28731 ndr_print_ptr(ndr, "handle", r->in.handle);
28732 ndr->depth++;
28733 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28734 ndr->depth--;
28735 ndr_print_string(ndr, "key_name", r->in.key_name);
28736 ndr_print_string(ndr, "value_name", r->in.value_name);
28737 ndr_print_uint32(ndr, "offered", r->in.offered);
28738 ndr->depth--;
28740 if (flags & NDR_OUT) {
28741 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
28742 ndr->depth++;
28743 ndr_print_ptr(ndr, "type", r->out.type);
28744 ndr->depth++;
28745 ndr_print_winreg_Type(ndr, "type", *r->out.type);
28746 ndr->depth--;
28747 ndr_print_ptr(ndr, "data", r->out.data);
28748 ndr->depth++;
28749 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.offered);
28750 ndr->depth--;
28751 ndr_print_ptr(ndr, "needed", r->out.needed);
28752 ndr->depth++;
28753 ndr_print_uint32(ndr, "needed", *r->out.needed);
28754 ndr->depth--;
28755 ndr_print_WERROR(ndr, "result", r->out.result);
28756 ndr->depth--;
28758 ndr->depth--;
28761 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDataEx *r)
28763 if (flags & NDR_IN) {
28764 if (r->in.handle == NULL) {
28765 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28767 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28768 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28769 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28770 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28771 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));
28772 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
28774 if (flags & NDR_OUT) {
28775 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
28776 if (r->out.needed == NULL) {
28777 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28779 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28780 if (r->out.count == NULL) {
28781 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28783 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
28784 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28786 return NDR_ERR_SUCCESS;
28789 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDataEx *r)
28791 TALLOC_CTX *_mem_save_handle_0;
28792 TALLOC_CTX *_mem_save_needed_0;
28793 TALLOC_CTX *_mem_save_count_0;
28794 if (flags & NDR_IN) {
28795 ZERO_STRUCT(r->out);
28797 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28798 NDR_PULL_ALLOC(ndr, r->in.handle);
28800 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28801 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28802 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28803 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28804 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28805 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28806 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28807 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));
28809 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28810 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));
28811 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
28812 NDR_PULL_ALLOC(ndr, r->out.needed);
28813 ZERO_STRUCTP(r->out.needed);
28814 NDR_PULL_ALLOC(ndr, r->out.count);
28815 ZERO_STRUCTP(r->out.count);
28817 if (flags & NDR_OUT) {
28818 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->out.info));
28819 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28820 NDR_PULL_ALLOC(ndr, r->out.needed);
28822 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28823 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28824 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28825 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28826 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28827 NDR_PULL_ALLOC(ndr, r->out.count);
28829 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
28830 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
28831 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
28832 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
28833 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28835 return NDR_ERR_SUCCESS;
28838 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDataEx *r)
28840 uint32_t cntr_info_0;
28841 if (flags & NDR_IN) {
28842 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
28844 if (flags & NDR_OUT) {
28845 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28846 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
28848 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28849 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
28852 return NDR_ERR_SUCCESS;
28855 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDataEx *r)
28857 uint32_t cntr_info_0;
28858 TALLOC_CTX *_mem_save_info_0;
28859 if (flags & NDR_IN) {
28860 ZERO_STRUCT(r->out);
28862 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
28864 if (flags & NDR_OUT) {
28865 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
28866 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
28867 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
28868 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28869 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
28871 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28872 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
28874 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
28876 return NDR_ERR_SUCCESS;
28879 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDataEx *r)
28881 uint32_t cntr_info_2;
28882 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
28883 ndr->depth++;
28884 if (flags & NDR_SET_VALUES) {
28885 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28887 if (flags & NDR_IN) {
28888 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDataEx");
28889 ndr->depth++;
28890 ndr_print_ptr(ndr, "handle", r->in.handle);
28891 ndr->depth++;
28892 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28893 ndr->depth--;
28894 ndr_print_string(ndr, "key_name", r->in.key_name);
28895 ndr_print_uint32(ndr, "offered", r->in.offered);
28896 ndr->depth--;
28898 if (flags & NDR_OUT) {
28899 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
28900 ndr->depth++;
28901 ndr_print_ptr(ndr, "count", r->out.count);
28902 ndr->depth++;
28903 ndr_print_uint32(ndr, "count", *r->out.count);
28904 ndr->depth--;
28905 ndr_print_ptr(ndr, "info", r->out.info);
28906 ndr->depth++;
28907 ndr_print_ptr(ndr, "info", *r->out.info);
28908 ndr->depth++;
28909 if (*r->out.info) {
28910 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
28911 ndr->depth++;
28912 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
28913 char *idx_2=NULL;
28914 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
28915 ndr_print_spoolss_PrinterEnumValues(ndr, "info", &(*r->out.info)[cntr_info_2]);
28916 free(idx_2);
28919 ndr->depth--;
28921 ndr->depth--;
28922 ndr->depth--;
28923 ndr_print_ptr(ndr, "needed", r->out.needed);
28924 ndr->depth++;
28925 ndr_print_uint32(ndr, "needed", *r->out.needed);
28926 ndr->depth--;
28927 ndr_print_WERROR(ndr, "result", r->out.result);
28928 ndr->depth--;
28930 ndr->depth--;
28933 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterKey *r)
28935 if (flags & NDR_IN) {
28936 if (r->in.handle == NULL) {
28937 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28939 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28940 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28941 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28942 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28943 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));
28944 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
28946 if (flags & NDR_OUT) {
28947 if (r->out._ndr_size == NULL) {
28948 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28950 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._ndr_size));
28951 if (r->out.key_buffer == NULL) {
28952 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28955 struct ndr_push *_ndr_key_buffer;
28956 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_key_buffer, 0, *r->out._ndr_size * 2));
28957 NDR_CHECK(ndr_push_set_switch_value(_ndr_key_buffer, r->out.key_buffer, *r->out._ndr_size));
28958 NDR_CHECK(ndr_push_spoolss_KeyNames(_ndr_key_buffer, NDR_SCALARS|NDR_BUFFERS, r->out.key_buffer));
28959 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_key_buffer, 0, *r->out._ndr_size * 2));
28961 if (r->out.needed == NULL) {
28962 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28964 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28965 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28967 return NDR_ERR_SUCCESS;
28970 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterKey *r)
28972 TALLOC_CTX *_mem_save_handle_0;
28973 TALLOC_CTX *_mem_save__ndr_size_0;
28974 TALLOC_CTX *_mem_save_key_buffer_0;
28975 TALLOC_CTX *_mem_save_needed_0;
28976 if (flags & NDR_IN) {
28977 ZERO_STRUCT(r->out);
28979 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28980 NDR_PULL_ALLOC(ndr, r->in.handle);
28982 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28983 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28984 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28985 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28986 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28987 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28988 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28989 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));
28991 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28992 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));
28993 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
28994 NDR_PULL_ALLOC(ndr, r->out._ndr_size);
28995 ZERO_STRUCTP(r->out._ndr_size);
28996 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
28997 ZERO_STRUCTP(r->out.key_buffer);
28998 NDR_PULL_ALLOC(ndr, r->out.needed);
28999 ZERO_STRUCTP(r->out.needed);
29001 if (flags & NDR_OUT) {
29002 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29003 NDR_PULL_ALLOC(ndr, r->out._ndr_size);
29005 _mem_save__ndr_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
29006 NDR_PULL_SET_MEM_CTX(ndr, r->out._ndr_size, LIBNDR_FLAG_REF_ALLOC);
29007 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._ndr_size));
29008 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__ndr_size_0, LIBNDR_FLAG_REF_ALLOC);
29009 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29010 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
29012 _mem_save_key_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
29013 NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, LIBNDR_FLAG_REF_ALLOC);
29015 struct ndr_pull *_ndr_key_buffer;
29016 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_key_buffer, 0, *r->out._ndr_size * 2));
29017 NDR_CHECK(ndr_pull_set_switch_value(_ndr_key_buffer, r->out.key_buffer, *r->out._ndr_size));
29018 NDR_CHECK(ndr_pull_spoolss_KeyNames(_ndr_key_buffer, NDR_SCALARS|NDR_BUFFERS, r->out.key_buffer));
29019 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_key_buffer, 0, *r->out._ndr_size * 2));
29021 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_0, LIBNDR_FLAG_REF_ALLOC);
29022 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29023 NDR_PULL_ALLOC(ndr, r->out.needed);
29025 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
29026 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
29027 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
29028 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
29029 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29031 return NDR_ERR_SUCCESS;
29034 _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterKey *r)
29036 ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
29037 ndr->depth++;
29038 if (flags & NDR_SET_VALUES) {
29039 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29041 if (flags & NDR_IN) {
29042 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterKey");
29043 ndr->depth++;
29044 ndr_print_ptr(ndr, "handle", r->in.handle);
29045 ndr->depth++;
29046 ndr_print_policy_handle(ndr, "handle", r->in.handle);
29047 ndr->depth--;
29048 ndr_print_string(ndr, "key_name", r->in.key_name);
29049 ndr_print_uint32(ndr, "offered", r->in.offered);
29050 ndr->depth--;
29052 if (flags & NDR_OUT) {
29053 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
29054 ndr->depth++;
29055 ndr_print_ptr(ndr, "_ndr_size", r->out._ndr_size);
29056 ndr->depth++;
29057 ndr_print_uint32(ndr, "_ndr_size", *r->out._ndr_size);
29058 ndr->depth--;
29059 ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
29060 ndr->depth++;
29061 ndr_print_set_switch_value(ndr, r->out.key_buffer, *r->out._ndr_size);
29062 ndr_print_spoolss_KeyNames(ndr, "key_buffer", r->out.key_buffer);
29063 ndr->depth--;
29064 ndr_print_ptr(ndr, "needed", r->out.needed);
29065 ndr->depth++;
29066 ndr_print_uint32(ndr, "needed", *r->out.needed);
29067 ndr->depth--;
29068 ndr_print_WERROR(ndr, "result", r->out.result);
29069 ndr->depth--;
29071 ndr->depth--;
29074 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDataEx *r)
29076 if (flags & NDR_IN) {
29077 if (r->in.handle == NULL) {
29078 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29080 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29081 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
29082 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29083 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
29084 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));
29085 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
29086 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29087 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
29088 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));
29090 if (flags & NDR_OUT) {
29091 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29093 return NDR_ERR_SUCCESS;
29096 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDataEx *r)
29098 TALLOC_CTX *_mem_save_handle_0;
29099 if (flags & NDR_IN) {
29100 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29101 NDR_PULL_ALLOC(ndr, r->in.handle);
29103 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
29104 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
29105 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29106 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
29107 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
29108 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
29109 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
29110 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));
29112 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
29113 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));
29114 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
29115 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
29116 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
29117 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));
29119 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
29120 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));
29122 if (flags & NDR_OUT) {
29123 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29125 return NDR_ERR_SUCCESS;
29128 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDataEx *r)
29130 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
29131 ndr->depth++;
29132 if (flags & NDR_SET_VALUES) {
29133 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29135 if (flags & NDR_IN) {
29136 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDataEx");
29137 ndr->depth++;
29138 ndr_print_ptr(ndr, "handle", r->in.handle);
29139 ndr->depth++;
29140 ndr_print_policy_handle(ndr, "handle", r->in.handle);
29141 ndr->depth--;
29142 ndr_print_string(ndr, "key_name", r->in.key_name);
29143 ndr_print_string(ndr, "value_name", r->in.value_name);
29144 ndr->depth--;
29146 if (flags & NDR_OUT) {
29147 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
29148 ndr->depth++;
29149 ndr_print_WERROR(ndr, "result", r->out.result);
29150 ndr->depth--;
29152 ndr->depth--;
29155 static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterKey *r)
29157 if (flags & NDR_IN) {
29158 if (r->in.handle == NULL) {
29159 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29161 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29162 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
29163 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29164 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
29165 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));
29167 if (flags & NDR_OUT) {
29168 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29170 return NDR_ERR_SUCCESS;
29173 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterKey *r)
29175 TALLOC_CTX *_mem_save_handle_0;
29176 if (flags & NDR_IN) {
29177 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29178 NDR_PULL_ALLOC(ndr, r->in.handle);
29180 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
29181 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
29182 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29183 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
29184 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
29185 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
29186 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
29187 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));
29189 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
29190 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));
29192 if (flags & NDR_OUT) {
29193 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29195 return NDR_ERR_SUCCESS;
29198 _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterKey *r)
29200 ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
29201 ndr->depth++;
29202 if (flags & NDR_SET_VALUES) {
29203 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29205 if (flags & NDR_IN) {
29206 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
29207 ndr->depth++;
29208 ndr_print_ptr(ndr, "handle", r->in.handle);
29209 ndr->depth++;
29210 ndr_print_policy_handle(ndr, "handle", r->in.handle);
29211 ndr->depth--;
29212 ndr_print_string(ndr, "key_name", r->in.key_name);
29213 ndr->depth--;
29215 if (flags & NDR_OUT) {
29216 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
29217 ndr->depth++;
29218 ndr_print_WERROR(ndr, "result", r->out.result);
29219 ndr->depth--;
29221 ndr->depth--;
29224 static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, int flags, const struct spoolss_53 *r)
29226 if (flags & NDR_IN) {
29228 if (flags & NDR_OUT) {
29229 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29231 return NDR_ERR_SUCCESS;
29234 static enum ndr_err_code ndr_pull_spoolss_53(struct ndr_pull *ndr, int flags, struct spoolss_53 *r)
29236 if (flags & NDR_IN) {
29238 if (flags & NDR_OUT) {
29239 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29241 return NDR_ERR_SUCCESS;
29244 _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_53 *r)
29246 ndr_print_struct(ndr, name, "spoolss_53");
29247 ndr->depth++;
29248 if (flags & NDR_SET_VALUES) {
29249 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29251 if (flags & NDR_IN) {
29252 ndr_print_struct(ndr, "in", "spoolss_53");
29253 ndr->depth++;
29254 ndr->depth--;
29256 if (flags & NDR_OUT) {
29257 ndr_print_struct(ndr, "out", "spoolss_53");
29258 ndr->depth++;
29259 ndr_print_WERROR(ndr, "result", r->out.result);
29260 ndr->depth--;
29262 ndr->depth--;
29265 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriverEx *r)
29267 if (flags & NDR_IN) {
29268 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
29269 if (r->in.server) {
29270 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
29271 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29272 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
29273 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29275 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29276 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29277 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29278 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29279 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
29280 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29281 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
29282 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29283 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
29284 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
29286 if (flags & NDR_OUT) {
29287 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29289 return NDR_ERR_SUCCESS;
29292 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriverEx *r)
29294 uint32_t _ptr_server;
29295 TALLOC_CTX *_mem_save_server_0;
29296 if (flags & NDR_IN) {
29297 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
29298 if (_ptr_server) {
29299 NDR_PULL_ALLOC(ndr, r->in.server);
29300 } else {
29301 r->in.server = NULL;
29303 if (r->in.server) {
29304 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
29305 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
29306 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
29307 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
29308 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
29309 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));
29311 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
29312 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
29313 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
29315 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
29316 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
29317 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
29318 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));
29320 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
29321 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
29322 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
29323 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
29324 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
29325 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));
29327 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
29328 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
29329 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
29330 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
29332 if (flags & NDR_OUT) {
29333 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29335 return NDR_ERR_SUCCESS;
29338 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriverEx *r)
29340 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
29341 ndr->depth++;
29342 if (flags & NDR_SET_VALUES) {
29343 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29345 if (flags & NDR_IN) {
29346 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
29347 ndr->depth++;
29348 ndr_print_ptr(ndr, "server", r->in.server);
29349 ndr->depth++;
29350 if (r->in.server) {
29351 ndr_print_string(ndr, "server", r->in.server);
29353 ndr->depth--;
29354 ndr_print_string(ndr, "architecture", r->in.architecture);
29355 ndr_print_string(ndr, "driver", r->in.driver);
29356 ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
29357 ndr_print_uint32(ndr, "version", r->in.version);
29358 ndr->depth--;
29360 if (flags & NDR_OUT) {
29361 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
29362 ndr->depth++;
29363 ndr_print_WERROR(ndr, "result", r->out.result);
29364 ndr->depth--;
29366 ndr->depth--;
29369 static enum ndr_err_code ndr_push_spoolss_55(struct ndr_push *ndr, int flags, const struct spoolss_55 *r)
29371 if (flags & NDR_IN) {
29373 if (flags & NDR_OUT) {
29374 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29376 return NDR_ERR_SUCCESS;
29379 static enum ndr_err_code ndr_pull_spoolss_55(struct ndr_pull *ndr, int flags, struct spoolss_55 *r)
29381 if (flags & NDR_IN) {
29383 if (flags & NDR_OUT) {
29384 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29386 return NDR_ERR_SUCCESS;
29389 _PUBLIC_ void ndr_print_spoolss_55(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_55 *r)
29391 ndr_print_struct(ndr, name, "spoolss_55");
29392 ndr->depth++;
29393 if (flags & NDR_SET_VALUES) {
29394 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29396 if (flags & NDR_IN) {
29397 ndr_print_struct(ndr, "in", "spoolss_55");
29398 ndr->depth++;
29399 ndr->depth--;
29401 if (flags & NDR_OUT) {
29402 ndr_print_struct(ndr, "out", "spoolss_55");
29403 ndr->depth++;
29404 ndr_print_WERROR(ndr, "result", r->out.result);
29405 ndr->depth--;
29407 ndr->depth--;
29410 static enum ndr_err_code ndr_push_spoolss_56(struct ndr_push *ndr, int flags, const struct spoolss_56 *r)
29412 if (flags & NDR_IN) {
29414 if (flags & NDR_OUT) {
29415 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29417 return NDR_ERR_SUCCESS;
29420 static enum ndr_err_code ndr_pull_spoolss_56(struct ndr_pull *ndr, int flags, struct spoolss_56 *r)
29422 if (flags & NDR_IN) {
29424 if (flags & NDR_OUT) {
29425 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29427 return NDR_ERR_SUCCESS;
29430 _PUBLIC_ void ndr_print_spoolss_56(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_56 *r)
29432 ndr_print_struct(ndr, name, "spoolss_56");
29433 ndr->depth++;
29434 if (flags & NDR_SET_VALUES) {
29435 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29437 if (flags & NDR_IN) {
29438 ndr_print_struct(ndr, "in", "spoolss_56");
29439 ndr->depth++;
29440 ndr->depth--;
29442 if (flags & NDR_OUT) {
29443 ndr_print_struct(ndr, "out", "spoolss_56");
29444 ndr->depth++;
29445 ndr_print_WERROR(ndr, "result", r->out.result);
29446 ndr->depth--;
29448 ndr->depth--;
29451 static enum ndr_err_code ndr_push_spoolss_57(struct ndr_push *ndr, int flags, const struct spoolss_57 *r)
29453 if (flags & NDR_IN) {
29455 if (flags & NDR_OUT) {
29456 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29458 return NDR_ERR_SUCCESS;
29461 static enum ndr_err_code ndr_pull_spoolss_57(struct ndr_pull *ndr, int flags, struct spoolss_57 *r)
29463 if (flags & NDR_IN) {
29465 if (flags & NDR_OUT) {
29466 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29468 return NDR_ERR_SUCCESS;
29471 _PUBLIC_ void ndr_print_spoolss_57(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_57 *r)
29473 ndr_print_struct(ndr, name, "spoolss_57");
29474 ndr->depth++;
29475 if (flags & NDR_SET_VALUES) {
29476 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29478 if (flags & NDR_IN) {
29479 ndr_print_struct(ndr, "in", "spoolss_57");
29480 ndr->depth++;
29481 ndr->depth--;
29483 if (flags & NDR_OUT) {
29484 ndr_print_struct(ndr, "out", "spoolss_57");
29485 ndr->depth++;
29486 ndr_print_WERROR(ndr, "result", r->out.result);
29487 ndr->depth--;
29489 ndr->depth--;
29492 static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, int flags, const struct spoolss_XcvData *r)
29494 if (flags & NDR_IN) {
29495 if (r->in.handle == NULL) {
29496 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29498 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29499 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
29500 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29501 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
29502 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));
29503 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
29504 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
29505 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
29506 if (r->in.status_code == NULL) {
29507 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29509 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
29511 if (flags & NDR_OUT) {
29512 if (r->out.out_data == NULL) {
29513 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29515 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.out_data_size));
29516 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
29517 if (r->out.needed == NULL) {
29518 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29520 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
29521 if (r->out.status_code == NULL) {
29522 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29524 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
29525 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29527 return NDR_ERR_SUCCESS;
29530 static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flags, struct spoolss_XcvData *r)
29532 TALLOC_CTX *_mem_save_handle_0;
29533 TALLOC_CTX *_mem_save_needed_0;
29534 TALLOC_CTX *_mem_save_status_code_0;
29535 if (flags & NDR_IN) {
29536 ZERO_STRUCT(r->out);
29538 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29539 NDR_PULL_ALLOC(ndr, r->in.handle);
29541 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
29542 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
29543 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29544 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
29545 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
29546 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
29547 if (ndr_get_array_length(ndr, &r->in.function_name) > ndr_get_array_size(ndr, &r->in.function_name)) {
29548 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));
29550 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t)));
29551 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));
29552 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
29553 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
29554 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
29555 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29556 NDR_PULL_ALLOC(ndr, r->in.status_code);
29558 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
29559 NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
29560 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
29561 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
29562 NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
29563 memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
29564 NDR_PULL_ALLOC(ndr, r->out.needed);
29565 ZERO_STRUCTP(r->out.needed);
29566 NDR_PULL_ALLOC(ndr, r->out.status_code);
29567 *r->out.status_code = *r->in.status_code;
29569 if (flags & NDR_OUT) {
29570 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
29571 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29572 NDR_PULL_ALLOC_N(ndr, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data));
29574 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data)));
29575 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29576 NDR_PULL_ALLOC(ndr, r->out.needed);
29578 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
29579 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
29580 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
29581 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
29582 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29583 NDR_PULL_ALLOC(ndr, r->out.status_code);
29585 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
29586 NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
29587 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
29588 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
29589 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29590 if (r->out.out_data) {
29591 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
29594 return NDR_ERR_SUCCESS;
29597 _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_XcvData *r)
29599 ndr_print_struct(ndr, name, "spoolss_XcvData");
29600 ndr->depth++;
29601 if (flags & NDR_SET_VALUES) {
29602 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29604 if (flags & NDR_IN) {
29605 ndr_print_struct(ndr, "in", "spoolss_XcvData");
29606 ndr->depth++;
29607 ndr_print_ptr(ndr, "handle", r->in.handle);
29608 ndr->depth++;
29609 ndr_print_policy_handle(ndr, "handle", r->in.handle);
29610 ndr->depth--;
29611 ndr_print_string(ndr, "function_name", r->in.function_name);
29612 ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
29613 ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
29614 ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
29615 ndr_print_ptr(ndr, "status_code", r->in.status_code);
29616 ndr->depth++;
29617 ndr_print_uint32(ndr, "status_code", *r->in.status_code);
29618 ndr->depth--;
29619 ndr->depth--;
29621 if (flags & NDR_OUT) {
29622 ndr_print_struct(ndr, "out", "spoolss_XcvData");
29623 ndr->depth++;
29624 ndr_print_ptr(ndr, "out_data", r->out.out_data);
29625 ndr->depth++;
29626 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
29627 ndr->depth--;
29628 ndr_print_ptr(ndr, "needed", r->out.needed);
29629 ndr->depth++;
29630 ndr_print_uint32(ndr, "needed", *r->out.needed);
29631 ndr->depth--;
29632 ndr_print_ptr(ndr, "status_code", r->out.status_code);
29633 ndr->depth++;
29634 ndr_print_uint32(ndr, "status_code", *r->out.status_code);
29635 ndr->depth--;
29636 ndr_print_WERROR(ndr, "result", r->out.result);
29637 ndr->depth--;
29639 ndr->depth--;
29642 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriverEx *r)
29644 if (flags & NDR_IN) {
29645 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
29646 if (r->in.servername) {
29647 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29648 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29649 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29650 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29652 if (r->in.info_ctr == NULL) {
29653 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29655 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
29656 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
29658 if (flags & NDR_OUT) {
29659 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29661 return NDR_ERR_SUCCESS;
29664 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriverEx *r)
29666 uint32_t _ptr_servername;
29667 TALLOC_CTX *_mem_save_servername_0;
29668 TALLOC_CTX *_mem_save_info_ctr_0;
29669 if (flags & NDR_IN) {
29670 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
29671 if (_ptr_servername) {
29672 NDR_PULL_ALLOC(ndr, r->in.servername);
29673 } else {
29674 r->in.servername = NULL;
29676 if (r->in.servername) {
29677 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
29678 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
29679 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
29680 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
29681 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
29682 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));
29684 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
29685 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
29686 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
29688 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29689 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
29691 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
29692 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
29693 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
29694 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
29695 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
29697 if (flags & NDR_OUT) {
29698 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29700 return NDR_ERR_SUCCESS;
29703 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriverEx *r)
29705 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
29706 ndr->depth++;
29707 if (flags & NDR_SET_VALUES) {
29708 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29710 if (flags & NDR_IN) {
29711 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
29712 ndr->depth++;
29713 ndr_print_ptr(ndr, "servername", r->in.servername);
29714 ndr->depth++;
29715 if (r->in.servername) {
29716 ndr_print_string(ndr, "servername", r->in.servername);
29718 ndr->depth--;
29719 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
29720 ndr->depth++;
29721 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
29722 ndr->depth--;
29723 ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
29724 ndr->depth--;
29726 if (flags & NDR_OUT) {
29727 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
29728 ndr->depth++;
29729 ndr_print_WERROR(ndr, "result", r->out.result);
29730 ndr->depth--;
29732 ndr->depth--;
29735 static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, int flags, const struct spoolss_5a *r)
29737 if (flags & NDR_IN) {
29739 if (flags & NDR_OUT) {
29740 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29742 return NDR_ERR_SUCCESS;
29745 static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, int flags, struct spoolss_5a *r)
29747 if (flags & NDR_IN) {
29749 if (flags & NDR_OUT) {
29750 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29752 return NDR_ERR_SUCCESS;
29755 _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5a *r)
29757 ndr_print_struct(ndr, name, "spoolss_5a");
29758 ndr->depth++;
29759 if (flags & NDR_SET_VALUES) {
29760 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29762 if (flags & NDR_IN) {
29763 ndr_print_struct(ndr, "in", "spoolss_5a");
29764 ndr->depth++;
29765 ndr->depth--;
29767 if (flags & NDR_OUT) {
29768 ndr_print_struct(ndr, "out", "spoolss_5a");
29769 ndr->depth++;
29770 ndr_print_WERROR(ndr, "result", r->out.result);
29771 ndr->depth--;
29773 ndr->depth--;
29776 static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, int flags, const struct spoolss_5b *r)
29778 if (flags & NDR_IN) {
29780 if (flags & NDR_OUT) {
29781 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29783 return NDR_ERR_SUCCESS;
29786 static enum ndr_err_code ndr_pull_spoolss_5b(struct ndr_pull *ndr, int flags, struct spoolss_5b *r)
29788 if (flags & NDR_IN) {
29790 if (flags & NDR_OUT) {
29791 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29793 return NDR_ERR_SUCCESS;
29796 _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5b *r)
29798 ndr_print_struct(ndr, name, "spoolss_5b");
29799 ndr->depth++;
29800 if (flags & NDR_SET_VALUES) {
29801 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29803 if (flags & NDR_IN) {
29804 ndr_print_struct(ndr, "in", "spoolss_5b");
29805 ndr->depth++;
29806 ndr->depth--;
29808 if (flags & NDR_OUT) {
29809 ndr_print_struct(ndr, "out", "spoolss_5b");
29810 ndr->depth++;
29811 ndr_print_WERROR(ndr, "result", r->out.result);
29812 ndr->depth--;
29814 ndr->depth--;
29817 static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, int flags, const struct spoolss_5c *r)
29819 if (flags & NDR_IN) {
29821 if (flags & NDR_OUT) {
29822 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29824 return NDR_ERR_SUCCESS;
29827 static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, int flags, struct spoolss_5c *r)
29829 if (flags & NDR_IN) {
29831 if (flags & NDR_OUT) {
29832 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29834 return NDR_ERR_SUCCESS;
29837 _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5c *r)
29839 ndr_print_struct(ndr, name, "spoolss_5c");
29840 ndr->depth++;
29841 if (flags & NDR_SET_VALUES) {
29842 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29844 if (flags & NDR_IN) {
29845 ndr_print_struct(ndr, "in", "spoolss_5c");
29846 ndr->depth++;
29847 ndr->depth--;
29849 if (flags & NDR_OUT) {
29850 ndr_print_struct(ndr, "out", "spoolss_5c");
29851 ndr->depth++;
29852 ndr_print_WERROR(ndr, "result", r->out.result);
29853 ndr->depth--;
29855 ndr->depth--;
29858 static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, int flags, const struct spoolss_5d *r)
29860 if (flags & NDR_IN) {
29862 if (flags & NDR_OUT) {
29863 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29865 return NDR_ERR_SUCCESS;
29868 static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, int flags, struct spoolss_5d *r)
29870 if (flags & NDR_IN) {
29872 if (flags & NDR_OUT) {
29873 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29875 return NDR_ERR_SUCCESS;
29878 _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5d *r)
29880 ndr_print_struct(ndr, name, "spoolss_5d");
29881 ndr->depth++;
29882 if (flags & NDR_SET_VALUES) {
29883 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29885 if (flags & NDR_IN) {
29886 ndr_print_struct(ndr, "in", "spoolss_5d");
29887 ndr->depth++;
29888 ndr->depth--;
29890 if (flags & NDR_OUT) {
29891 ndr_print_struct(ndr, "out", "spoolss_5d");
29892 ndr->depth++;
29893 ndr_print_WERROR(ndr, "result", r->out.result);
29894 ndr->depth--;
29896 ndr->depth--;
29899 static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, int flags, const struct spoolss_5e *r)
29901 if (flags & NDR_IN) {
29903 if (flags & NDR_OUT) {
29904 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29906 return NDR_ERR_SUCCESS;
29909 static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, int flags, struct spoolss_5e *r)
29911 if (flags & NDR_IN) {
29913 if (flags & NDR_OUT) {
29914 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29916 return NDR_ERR_SUCCESS;
29919 _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5e *r)
29921 ndr_print_struct(ndr, name, "spoolss_5e");
29922 ndr->depth++;
29923 if (flags & NDR_SET_VALUES) {
29924 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29926 if (flags & NDR_IN) {
29927 ndr_print_struct(ndr, "in", "spoolss_5e");
29928 ndr->depth++;
29929 ndr->depth--;
29931 if (flags & NDR_OUT) {
29932 ndr_print_struct(ndr, "out", "spoolss_5e");
29933 ndr->depth++;
29934 ndr_print_WERROR(ndr, "result", r->out.result);
29935 ndr->depth--;
29937 ndr->depth--;
29940 static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, int flags, const struct spoolss_5f *r)
29942 if (flags & NDR_IN) {
29944 if (flags & NDR_OUT) {
29945 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29947 return NDR_ERR_SUCCESS;
29950 static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, int flags, struct spoolss_5f *r)
29952 if (flags & NDR_IN) {
29954 if (flags & NDR_OUT) {
29955 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29957 return NDR_ERR_SUCCESS;
29960 _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5f *r)
29962 ndr_print_struct(ndr, name, "spoolss_5f");
29963 ndr->depth++;
29964 if (flags & NDR_SET_VALUES) {
29965 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29967 if (flags & NDR_IN) {
29968 ndr_print_struct(ndr, "in", "spoolss_5f");
29969 ndr->depth++;
29970 ndr->depth--;
29972 if (flags & NDR_OUT) {
29973 ndr_print_struct(ndr, "out", "spoolss_5f");
29974 ndr->depth++;
29975 ndr_print_WERROR(ndr, "result", r->out.result);
29976 ndr->depth--;
29978 ndr->depth--;
29981 static enum ndr_err_code ndr_push_spoolss_60(struct ndr_push *ndr, int flags, const struct spoolss_60 *r)
29983 if (flags & NDR_IN) {
29985 if (flags & NDR_OUT) {
29986 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29988 return NDR_ERR_SUCCESS;
29991 static enum ndr_err_code ndr_pull_spoolss_60(struct ndr_pull *ndr, int flags, struct spoolss_60 *r)
29993 if (flags & NDR_IN) {
29995 if (flags & NDR_OUT) {
29996 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29998 return NDR_ERR_SUCCESS;
30001 _PUBLIC_ void ndr_print_spoolss_60(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_60 *r)
30003 ndr_print_struct(ndr, name, "spoolss_60");
30004 ndr->depth++;
30005 if (flags & NDR_SET_VALUES) {
30006 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30008 if (flags & NDR_IN) {
30009 ndr_print_struct(ndr, "in", "spoolss_60");
30010 ndr->depth++;
30011 ndr->depth--;
30013 if (flags & NDR_OUT) {
30014 ndr_print_struct(ndr, "out", "spoolss_60");
30015 ndr->depth++;
30016 ndr_print_WERROR(ndr, "result", r->out.result);
30017 ndr->depth--;
30019 ndr->depth--;
30022 static enum ndr_err_code ndr_push_spoolss_61(struct ndr_push *ndr, int flags, const struct spoolss_61 *r)
30024 if (flags & NDR_IN) {
30026 if (flags & NDR_OUT) {
30027 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30029 return NDR_ERR_SUCCESS;
30032 static enum ndr_err_code ndr_pull_spoolss_61(struct ndr_pull *ndr, int flags, struct spoolss_61 *r)
30034 if (flags & NDR_IN) {
30036 if (flags & NDR_OUT) {
30037 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30039 return NDR_ERR_SUCCESS;
30042 _PUBLIC_ void ndr_print_spoolss_61(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_61 *r)
30044 ndr_print_struct(ndr, name, "spoolss_61");
30045 ndr->depth++;
30046 if (flags & NDR_SET_VALUES) {
30047 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30049 if (flags & NDR_IN) {
30050 ndr_print_struct(ndr, "in", "spoolss_61");
30051 ndr->depth++;
30052 ndr->depth--;
30054 if (flags & NDR_OUT) {
30055 ndr_print_struct(ndr, "out", "spoolss_61");
30056 ndr->depth++;
30057 ndr_print_WERROR(ndr, "result", r->out.result);
30058 ndr->depth--;
30060 ndr->depth--;
30063 static enum ndr_err_code ndr_push_spoolss_62(struct ndr_push *ndr, int flags, const struct spoolss_62 *r)
30065 if (flags & NDR_IN) {
30067 if (flags & NDR_OUT) {
30068 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30070 return NDR_ERR_SUCCESS;
30073 static enum ndr_err_code ndr_pull_spoolss_62(struct ndr_pull *ndr, int flags, struct spoolss_62 *r)
30075 if (flags & NDR_IN) {
30077 if (flags & NDR_OUT) {
30078 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30080 return NDR_ERR_SUCCESS;
30083 _PUBLIC_ void ndr_print_spoolss_62(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_62 *r)
30085 ndr_print_struct(ndr, name, "spoolss_62");
30086 ndr->depth++;
30087 if (flags & NDR_SET_VALUES) {
30088 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30090 if (flags & NDR_IN) {
30091 ndr_print_struct(ndr, "in", "spoolss_62");
30092 ndr->depth++;
30093 ndr->depth--;
30095 if (flags & NDR_OUT) {
30096 ndr_print_struct(ndr, "out", "spoolss_62");
30097 ndr->depth++;
30098 ndr_print_WERROR(ndr, "result", r->out.result);
30099 ndr->depth--;
30101 ndr->depth--;
30104 static enum ndr_err_code ndr_push_spoolss_63(struct ndr_push *ndr, int flags, const struct spoolss_63 *r)
30106 if (flags & NDR_IN) {
30108 if (flags & NDR_OUT) {
30109 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30111 return NDR_ERR_SUCCESS;
30114 static enum ndr_err_code ndr_pull_spoolss_63(struct ndr_pull *ndr, int flags, struct spoolss_63 *r)
30116 if (flags & NDR_IN) {
30118 if (flags & NDR_OUT) {
30119 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30121 return NDR_ERR_SUCCESS;
30124 _PUBLIC_ void ndr_print_spoolss_63(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_63 *r)
30126 ndr_print_struct(ndr, name, "spoolss_63");
30127 ndr->depth++;
30128 if (flags & NDR_SET_VALUES) {
30129 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30131 if (flags & NDR_IN) {
30132 ndr_print_struct(ndr, "in", "spoolss_63");
30133 ndr->depth++;
30134 ndr->depth--;
30136 if (flags & NDR_OUT) {
30137 ndr_print_struct(ndr, "out", "spoolss_63");
30138 ndr->depth++;
30139 ndr_print_WERROR(ndr, "result", r->out.result);
30140 ndr->depth--;
30142 ndr->depth--;
30145 static enum ndr_err_code ndr_push_spoolss_64(struct ndr_push *ndr, int flags, const struct spoolss_64 *r)
30147 if (flags & NDR_IN) {
30149 if (flags & NDR_OUT) {
30150 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30152 return NDR_ERR_SUCCESS;
30155 static enum ndr_err_code ndr_pull_spoolss_64(struct ndr_pull *ndr, int flags, struct spoolss_64 *r)
30157 if (flags & NDR_IN) {
30159 if (flags & NDR_OUT) {
30160 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30162 return NDR_ERR_SUCCESS;
30165 _PUBLIC_ void ndr_print_spoolss_64(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_64 *r)
30167 ndr_print_struct(ndr, name, "spoolss_64");
30168 ndr->depth++;
30169 if (flags & NDR_SET_VALUES) {
30170 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30172 if (flags & NDR_IN) {
30173 ndr_print_struct(ndr, "in", "spoolss_64");
30174 ndr->depth++;
30175 ndr->depth--;
30177 if (flags & NDR_OUT) {
30178 ndr_print_struct(ndr, "out", "spoolss_64");
30179 ndr->depth++;
30180 ndr_print_WERROR(ndr, "result", r->out.result);
30181 ndr->depth--;
30183 ndr->depth--;
30186 static enum ndr_err_code ndr_push_spoolss_65(struct ndr_push *ndr, int flags, const struct spoolss_65 *r)
30188 if (flags & NDR_IN) {
30190 if (flags & NDR_OUT) {
30191 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30193 return NDR_ERR_SUCCESS;
30196 static enum ndr_err_code ndr_pull_spoolss_65(struct ndr_pull *ndr, int flags, struct spoolss_65 *r)
30198 if (flags & NDR_IN) {
30200 if (flags & NDR_OUT) {
30201 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30203 return NDR_ERR_SUCCESS;
30206 _PUBLIC_ void ndr_print_spoolss_65(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_65 *r)
30208 ndr_print_struct(ndr, name, "spoolss_65");
30209 ndr->depth++;
30210 if (flags & NDR_SET_VALUES) {
30211 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30213 if (flags & NDR_IN) {
30214 ndr_print_struct(ndr, "in", "spoolss_65");
30215 ndr->depth++;
30216 ndr->depth--;
30218 if (flags & NDR_OUT) {
30219 ndr_print_struct(ndr, "out", "spoolss_65");
30220 ndr->depth++;
30221 ndr_print_WERROR(ndr, "result", r->out.result);
30222 ndr->depth--;
30224 ndr->depth--;
30227 static enum ndr_err_code ndr_push_spoolss_GetCorePrinterDrivers(struct ndr_push *ndr, int flags, const struct spoolss_GetCorePrinterDrivers *r)
30229 uint32_t cntr_core_printer_drivers_1;
30230 if (flags & NDR_IN) {
30231 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
30232 if (r->in.servername) {
30233 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
30234 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30235 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
30236 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
30238 if (r->in.architecture == NULL) {
30239 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30241 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
30242 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30243 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
30244 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
30245 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.core_driver_size));
30246 if (r->in.core_driver_dependencies == NULL) {
30247 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30249 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.core_driver_size));
30250 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.core_driver_dependencies, r->in.core_driver_size, sizeof(uint16_t), CH_UTF16));
30251 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.core_printer_driver_count));
30253 if (flags & NDR_OUT) {
30254 if (r->out.core_printer_drivers == NULL) {
30255 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30257 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.core_printer_driver_count));
30258 for (cntr_core_printer_drivers_1 = 0; cntr_core_printer_drivers_1 < r->in.core_printer_driver_count; cntr_core_printer_drivers_1++) {
30259 NDR_CHECK(ndr_push_spoolss_CorePrinterDriver(ndr, NDR_SCALARS, &r->out.core_printer_drivers[cntr_core_printer_drivers_1]));
30261 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30263 return NDR_ERR_SUCCESS;
30266 static enum ndr_err_code ndr_pull_spoolss_GetCorePrinterDrivers(struct ndr_pull *ndr, int flags, struct spoolss_GetCorePrinterDrivers *r)
30268 uint32_t _ptr_servername;
30269 uint32_t cntr_core_printer_drivers_1;
30270 TALLOC_CTX *_mem_save_servername_0;
30271 TALLOC_CTX *_mem_save_core_printer_drivers_1;
30272 if (flags & NDR_IN) {
30273 ZERO_STRUCT(r->out);
30275 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
30276 if (_ptr_servername) {
30277 NDR_PULL_ALLOC(ndr, r->in.servername);
30278 } else {
30279 r->in.servername = NULL;
30281 if (r->in.servername) {
30282 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
30283 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
30284 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
30285 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
30286 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
30287 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));
30289 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
30290 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
30291 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
30293 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
30294 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
30295 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
30296 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));
30298 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
30299 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
30300 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.core_driver_size));
30301 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.core_driver_dependencies));
30302 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.core_driver_dependencies, ndr_get_array_size(ndr, &r->in.core_driver_dependencies), sizeof(uint16_t), CH_UTF16));
30303 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.core_printer_driver_count));
30304 NDR_PULL_ALLOC_N(ndr, r->out.core_printer_drivers, r->in.core_printer_driver_count);
30305 memset(r->out.core_printer_drivers, 0, (r->in.core_printer_driver_count) * sizeof(*r->out.core_printer_drivers));
30306 if (r->in.core_driver_dependencies) {
30307 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.core_driver_dependencies, r->in.core_driver_size));
30310 if (flags & NDR_OUT) {
30311 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.core_printer_drivers));
30312 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
30313 NDR_PULL_ALLOC_N(ndr, r->out.core_printer_drivers, ndr_get_array_size(ndr, &r->out.core_printer_drivers));
30315 _mem_save_core_printer_drivers_1 = NDR_PULL_GET_MEM_CTX(ndr);
30316 NDR_PULL_SET_MEM_CTX(ndr, r->out.core_printer_drivers, 0);
30317 for (cntr_core_printer_drivers_1 = 0; cntr_core_printer_drivers_1 < r->in.core_printer_driver_count; cntr_core_printer_drivers_1++) {
30318 NDR_CHECK(ndr_pull_spoolss_CorePrinterDriver(ndr, NDR_SCALARS, &r->out.core_printer_drivers[cntr_core_printer_drivers_1]));
30320 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_printer_drivers_1, 0);
30321 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30322 if (r->out.core_printer_drivers) {
30323 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.core_printer_drivers, r->in.core_printer_driver_count));
30326 return NDR_ERR_SUCCESS;
30329 _PUBLIC_ void ndr_print_spoolss_GetCorePrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetCorePrinterDrivers *r)
30331 uint32_t cntr_core_printer_drivers_1;
30332 ndr_print_struct(ndr, name, "spoolss_GetCorePrinterDrivers");
30333 ndr->depth++;
30334 if (flags & NDR_SET_VALUES) {
30335 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30337 if (flags & NDR_IN) {
30338 ndr_print_struct(ndr, "in", "spoolss_GetCorePrinterDrivers");
30339 ndr->depth++;
30340 ndr_print_ptr(ndr, "servername", r->in.servername);
30341 ndr->depth++;
30342 if (r->in.servername) {
30343 ndr_print_string(ndr, "servername", r->in.servername);
30345 ndr->depth--;
30346 ndr_print_ptr(ndr, "architecture", r->in.architecture);
30347 ndr->depth++;
30348 ndr_print_string(ndr, "architecture", r->in.architecture);
30349 ndr->depth--;
30350 ndr_print_uint32(ndr, "core_driver_size", r->in.core_driver_size);
30351 ndr_print_ptr(ndr, "core_driver_dependencies", r->in.core_driver_dependencies);
30352 ndr->depth++;
30353 ndr_print_string(ndr, "core_driver_dependencies", r->in.core_driver_dependencies);
30354 ndr->depth--;
30355 ndr_print_uint32(ndr, "core_printer_driver_count", r->in.core_printer_driver_count);
30356 ndr->depth--;
30358 if (flags & NDR_OUT) {
30359 ndr_print_struct(ndr, "out", "spoolss_GetCorePrinterDrivers");
30360 ndr->depth++;
30361 ndr_print_ptr(ndr, "core_printer_drivers", r->out.core_printer_drivers);
30362 ndr->depth++;
30363 ndr->print(ndr, "%s: ARRAY(%d)", "core_printer_drivers", (int)r->in.core_printer_driver_count);
30364 ndr->depth++;
30365 for (cntr_core_printer_drivers_1=0;cntr_core_printer_drivers_1<r->in.core_printer_driver_count;cntr_core_printer_drivers_1++) {
30366 char *idx_1=NULL;
30367 if (asprintf(&idx_1, "[%d]", cntr_core_printer_drivers_1) != -1) {
30368 ndr_print_spoolss_CorePrinterDriver(ndr, "core_printer_drivers", &r->out.core_printer_drivers[cntr_core_printer_drivers_1]);
30369 free(idx_1);
30372 ndr->depth--;
30373 ndr->depth--;
30374 ndr_print_WERROR(ndr, "result", r->out.result);
30375 ndr->depth--;
30377 ndr->depth--;
30380 static enum ndr_err_code ndr_push_spoolss_67(struct ndr_push *ndr, int flags, const struct spoolss_67 *r)
30382 if (flags & NDR_IN) {
30384 if (flags & NDR_OUT) {
30385 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30387 return NDR_ERR_SUCCESS;
30390 static enum ndr_err_code ndr_pull_spoolss_67(struct ndr_pull *ndr, int flags, struct spoolss_67 *r)
30392 if (flags & NDR_IN) {
30394 if (flags & NDR_OUT) {
30395 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30397 return NDR_ERR_SUCCESS;
30400 _PUBLIC_ void ndr_print_spoolss_67(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_67 *r)
30402 ndr_print_struct(ndr, name, "spoolss_67");
30403 ndr->depth++;
30404 if (flags & NDR_SET_VALUES) {
30405 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30407 if (flags & NDR_IN) {
30408 ndr_print_struct(ndr, "in", "spoolss_67");
30409 ndr->depth++;
30410 ndr->depth--;
30412 if (flags & NDR_OUT) {
30413 ndr_print_struct(ndr, "out", "spoolss_67");
30414 ndr->depth++;
30415 ndr_print_WERROR(ndr, "result", r->out.result);
30416 ndr->depth--;
30418 ndr->depth--;
30421 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriverPackagePath(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverPackagePath *r)
30423 if (flags & NDR_IN) {
30424 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
30425 if (r->in.servername) {
30426 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
30427 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30428 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
30429 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
30431 if (r->in.architecture == NULL) {
30432 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30434 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
30435 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30436 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
30437 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
30438 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.language));
30439 if (r->in.language) {
30440 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.language, CH_UTF16)));
30441 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30442 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.language, CH_UTF16)));
30443 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.language, ndr_charset_length(r->in.language, CH_UTF16), sizeof(uint16_t), CH_UTF16));
30445 if (r->in.package_id == NULL) {
30446 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30448 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.package_id, CH_UTF16)));
30449 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30450 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.package_id, CH_UTF16)));
30451 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.package_id, ndr_charset_length(r->in.package_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
30452 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.driver_package_cab));
30453 if (r->in.driver_package_cab) {
30454 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
30455 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver_package_cab, r->in.driver_package_cab_size, sizeof(uint16_t), CH_UTF16));
30457 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
30459 if (flags & NDR_OUT) {
30460 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.driver_package_cab));
30461 if (r->out.driver_package_cab) {
30462 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
30463 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.driver_package_cab, r->in.driver_package_cab_size, sizeof(uint16_t), CH_UTF16));
30465 if (r->out.required == NULL) {
30466 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30468 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.required));
30469 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30471 return NDR_ERR_SUCCESS;
30474 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverPackagePath(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverPackagePath *r)
30476 uint32_t _ptr_servername;
30477 uint32_t _ptr_language;
30478 uint32_t _ptr_driver_package_cab;
30479 TALLOC_CTX *_mem_save_servername_0;
30480 TALLOC_CTX *_mem_save_language_0;
30481 TALLOC_CTX *_mem_save_driver_package_cab_0;
30482 TALLOC_CTX *_mem_save_required_0;
30483 if (flags & NDR_IN) {
30484 ZERO_STRUCT(r->out);
30486 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
30487 if (_ptr_servername) {
30488 NDR_PULL_ALLOC(ndr, r->in.servername);
30489 } else {
30490 r->in.servername = NULL;
30492 if (r->in.servername) {
30493 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
30494 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
30495 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
30496 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
30497 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
30498 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));
30500 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
30501 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
30502 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
30504 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
30505 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
30506 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
30507 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));
30509 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
30510 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
30511 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_language));
30512 if (_ptr_language) {
30513 NDR_PULL_ALLOC(ndr, r->in.language);
30514 } else {
30515 r->in.language = NULL;
30517 if (r->in.language) {
30518 _mem_save_language_0 = NDR_PULL_GET_MEM_CTX(ndr);
30519 NDR_PULL_SET_MEM_CTX(ndr, r->in.language, 0);
30520 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.language));
30521 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.language));
30522 if (ndr_get_array_length(ndr, &r->in.language) > ndr_get_array_size(ndr, &r->in.language)) {
30523 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.language), ndr_get_array_length(ndr, &r->in.language));
30525 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.language), sizeof(uint16_t)));
30526 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.language, ndr_get_array_length(ndr, &r->in.language), sizeof(uint16_t), CH_UTF16));
30527 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_language_0, 0);
30529 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.package_id));
30530 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.package_id));
30531 if (ndr_get_array_length(ndr, &r->in.package_id) > ndr_get_array_size(ndr, &r->in.package_id)) {
30532 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.package_id), ndr_get_array_length(ndr, &r->in.package_id));
30534 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.package_id), sizeof(uint16_t)));
30535 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.package_id, ndr_get_array_length(ndr, &r->in.package_id), sizeof(uint16_t), CH_UTF16));
30536 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_package_cab));
30537 if (_ptr_driver_package_cab) {
30538 NDR_PULL_ALLOC(ndr, r->in.driver_package_cab);
30539 } else {
30540 r->in.driver_package_cab = NULL;
30542 if (r->in.driver_package_cab) {
30543 _mem_save_driver_package_cab_0 = NDR_PULL_GET_MEM_CTX(ndr);
30544 NDR_PULL_SET_MEM_CTX(ndr, r->in.driver_package_cab, 0);
30545 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver_package_cab));
30546 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver_package_cab, ndr_get_array_size(ndr, &r->in.driver_package_cab), sizeof(uint16_t), CH_UTF16));
30547 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_package_cab_0, 0);
30549 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.driver_package_cab_size));
30550 NDR_PULL_ALLOC(ndr, r->out.required);
30551 ZERO_STRUCTP(r->out.required);
30552 if (r->in.driver_package_cab) {
30553 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.driver_package_cab, r->in.driver_package_cab_size));
30556 if (flags & NDR_OUT) {
30557 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_package_cab));
30558 if (_ptr_driver_package_cab) {
30559 NDR_PULL_ALLOC(ndr, r->out.driver_package_cab);
30560 } else {
30561 r->out.driver_package_cab = NULL;
30563 if (r->out.driver_package_cab) {
30564 _mem_save_driver_package_cab_0 = NDR_PULL_GET_MEM_CTX(ndr);
30565 NDR_PULL_SET_MEM_CTX(ndr, r->out.driver_package_cab, 0);
30566 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.driver_package_cab));
30567 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->out.driver_package_cab, ndr_get_array_size(ndr, &r->out.driver_package_cab), sizeof(uint16_t), CH_UTF16));
30568 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_package_cab_0, 0);
30570 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
30571 NDR_PULL_ALLOC(ndr, r->out.required);
30573 _mem_save_required_0 = NDR_PULL_GET_MEM_CTX(ndr);
30574 NDR_PULL_SET_MEM_CTX(ndr, r->out.required, LIBNDR_FLAG_REF_ALLOC);
30575 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.required));
30576 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_required_0, LIBNDR_FLAG_REF_ALLOC);
30577 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30578 if (r->out.driver_package_cab) {
30579 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.driver_package_cab, r->in.driver_package_cab_size));
30582 return NDR_ERR_SUCCESS;
30585 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverPackagePath(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverPackagePath *r)
30587 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverPackagePath");
30588 ndr->depth++;
30589 if (flags & NDR_SET_VALUES) {
30590 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30592 if (flags & NDR_IN) {
30593 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverPackagePath");
30594 ndr->depth++;
30595 ndr_print_ptr(ndr, "servername", r->in.servername);
30596 ndr->depth++;
30597 if (r->in.servername) {
30598 ndr_print_string(ndr, "servername", r->in.servername);
30600 ndr->depth--;
30601 ndr_print_ptr(ndr, "architecture", r->in.architecture);
30602 ndr->depth++;
30603 ndr_print_string(ndr, "architecture", r->in.architecture);
30604 ndr->depth--;
30605 ndr_print_ptr(ndr, "language", r->in.language);
30606 ndr->depth++;
30607 if (r->in.language) {
30608 ndr_print_string(ndr, "language", r->in.language);
30610 ndr->depth--;
30611 ndr_print_ptr(ndr, "package_id", r->in.package_id);
30612 ndr->depth++;
30613 ndr_print_string(ndr, "package_id", r->in.package_id);
30614 ndr->depth--;
30615 ndr_print_ptr(ndr, "driver_package_cab", r->in.driver_package_cab);
30616 ndr->depth++;
30617 if (r->in.driver_package_cab) {
30618 ndr_print_string(ndr, "driver_package_cab", r->in.driver_package_cab);
30620 ndr->depth--;
30621 ndr_print_uint32(ndr, "driver_package_cab_size", r->in.driver_package_cab_size);
30622 ndr->depth--;
30624 if (flags & NDR_OUT) {
30625 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverPackagePath");
30626 ndr->depth++;
30627 ndr_print_ptr(ndr, "driver_package_cab", r->out.driver_package_cab);
30628 ndr->depth++;
30629 if (r->out.driver_package_cab) {
30630 ndr_print_string(ndr, "driver_package_cab", r->out.driver_package_cab);
30632 ndr->depth--;
30633 ndr_print_ptr(ndr, "required", r->out.required);
30634 ndr->depth++;
30635 ndr_print_uint32(ndr, "required", *r->out.required);
30636 ndr->depth--;
30637 ndr_print_WERROR(ndr, "result", r->out.result);
30638 ndr->depth--;
30640 ndr->depth--;
30643 static enum ndr_err_code ndr_push_spoolss_69(struct ndr_push *ndr, int flags, const struct spoolss_69 *r)
30645 if (flags & NDR_IN) {
30647 if (flags & NDR_OUT) {
30648 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30650 return NDR_ERR_SUCCESS;
30653 static enum ndr_err_code ndr_pull_spoolss_69(struct ndr_pull *ndr, int flags, struct spoolss_69 *r)
30655 if (flags & NDR_IN) {
30657 if (flags & NDR_OUT) {
30658 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30660 return NDR_ERR_SUCCESS;
30663 _PUBLIC_ void ndr_print_spoolss_69(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_69 *r)
30665 ndr_print_struct(ndr, name, "spoolss_69");
30666 ndr->depth++;
30667 if (flags & NDR_SET_VALUES) {
30668 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30670 if (flags & NDR_IN) {
30671 ndr_print_struct(ndr, "in", "spoolss_69");
30672 ndr->depth++;
30673 ndr->depth--;
30675 if (flags & NDR_OUT) {
30676 ndr_print_struct(ndr, "out", "spoolss_69");
30677 ndr->depth++;
30678 ndr_print_WERROR(ndr, "result", r->out.result);
30679 ndr->depth--;
30681 ndr->depth--;
30684 static enum ndr_err_code ndr_push_spoolss_6a(struct ndr_push *ndr, int flags, const struct spoolss_6a *r)
30686 if (flags & NDR_IN) {
30688 if (flags & NDR_OUT) {
30689 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30691 return NDR_ERR_SUCCESS;
30694 static enum ndr_err_code ndr_pull_spoolss_6a(struct ndr_pull *ndr, int flags, struct spoolss_6a *r)
30696 if (flags & NDR_IN) {
30698 if (flags & NDR_OUT) {
30699 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30701 return NDR_ERR_SUCCESS;
30704 _PUBLIC_ void ndr_print_spoolss_6a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6a *r)
30706 ndr_print_struct(ndr, name, "spoolss_6a");
30707 ndr->depth++;
30708 if (flags & NDR_SET_VALUES) {
30709 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30711 if (flags & NDR_IN) {
30712 ndr_print_struct(ndr, "in", "spoolss_6a");
30713 ndr->depth++;
30714 ndr->depth--;
30716 if (flags & NDR_OUT) {
30717 ndr_print_struct(ndr, "out", "spoolss_6a");
30718 ndr->depth++;
30719 ndr_print_WERROR(ndr, "result", r->out.result);
30720 ndr->depth--;
30722 ndr->depth--;
30725 static enum ndr_err_code ndr_push_spoolss_6b(struct ndr_push *ndr, int flags, const struct spoolss_6b *r)
30727 if (flags & NDR_IN) {
30729 if (flags & NDR_OUT) {
30730 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30732 return NDR_ERR_SUCCESS;
30735 static enum ndr_err_code ndr_pull_spoolss_6b(struct ndr_pull *ndr, int flags, struct spoolss_6b *r)
30737 if (flags & NDR_IN) {
30739 if (flags & NDR_OUT) {
30740 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30742 return NDR_ERR_SUCCESS;
30745 _PUBLIC_ void ndr_print_spoolss_6b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6b *r)
30747 ndr_print_struct(ndr, name, "spoolss_6b");
30748 ndr->depth++;
30749 if (flags & NDR_SET_VALUES) {
30750 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30752 if (flags & NDR_IN) {
30753 ndr_print_struct(ndr, "in", "spoolss_6b");
30754 ndr->depth++;
30755 ndr->depth--;
30757 if (flags & NDR_OUT) {
30758 ndr_print_struct(ndr, "out", "spoolss_6b");
30759 ndr->depth++;
30760 ndr_print_WERROR(ndr, "result", r->out.result);
30761 ndr->depth--;
30763 ndr->depth--;
30766 static enum ndr_err_code ndr_push_spoolss_6c(struct ndr_push *ndr, int flags, const struct spoolss_6c *r)
30768 if (flags & NDR_IN) {
30770 if (flags & NDR_OUT) {
30771 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30773 return NDR_ERR_SUCCESS;
30776 static enum ndr_err_code ndr_pull_spoolss_6c(struct ndr_pull *ndr, int flags, struct spoolss_6c *r)
30778 if (flags & NDR_IN) {
30780 if (flags & NDR_OUT) {
30781 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30783 return NDR_ERR_SUCCESS;
30786 _PUBLIC_ void ndr_print_spoolss_6c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6c *r)
30788 ndr_print_struct(ndr, name, "spoolss_6c");
30789 ndr->depth++;
30790 if (flags & NDR_SET_VALUES) {
30791 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30793 if (flags & NDR_IN) {
30794 ndr_print_struct(ndr, "in", "spoolss_6c");
30795 ndr->depth++;
30796 ndr->depth--;
30798 if (flags & NDR_OUT) {
30799 ndr_print_struct(ndr, "out", "spoolss_6c");
30800 ndr->depth++;
30801 ndr_print_WERROR(ndr, "result", r->out.result);
30802 ndr->depth--;
30804 ndr->depth--;
30807 static enum ndr_err_code ndr_push_spoolss_6d(struct ndr_push *ndr, int flags, const struct spoolss_6d *r)
30809 if (flags & NDR_IN) {
30811 if (flags & NDR_OUT) {
30812 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30814 return NDR_ERR_SUCCESS;
30817 static enum ndr_err_code ndr_pull_spoolss_6d(struct ndr_pull *ndr, int flags, struct spoolss_6d *r)
30819 if (flags & NDR_IN) {
30821 if (flags & NDR_OUT) {
30822 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30824 return NDR_ERR_SUCCESS;
30827 _PUBLIC_ void ndr_print_spoolss_6d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6d *r)
30829 ndr_print_struct(ndr, name, "spoolss_6d");
30830 ndr->depth++;
30831 if (flags & NDR_SET_VALUES) {
30832 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30834 if (flags & NDR_IN) {
30835 ndr_print_struct(ndr, "in", "spoolss_6d");
30836 ndr->depth++;
30837 ndr->depth--;
30839 if (flags & NDR_OUT) {
30840 ndr_print_struct(ndr, "out", "spoolss_6d");
30841 ndr->depth++;
30842 ndr_print_WERROR(ndr, "result", r->out.result);
30843 ndr->depth--;
30845 ndr->depth--;
30848 static const struct ndr_interface_call spoolss_calls[] = {
30850 "spoolss_EnumPrinters",
30851 sizeof(struct spoolss_EnumPrinters),
30852 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
30853 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
30854 (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
30855 false,
30858 "spoolss_OpenPrinter",
30859 sizeof(struct spoolss_OpenPrinter),
30860 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
30861 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
30862 (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
30863 false,
30866 "spoolss_SetJob",
30867 sizeof(struct spoolss_SetJob),
30868 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
30869 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
30870 (ndr_print_function_t) ndr_print_spoolss_SetJob,
30871 false,
30874 "spoolss_GetJob",
30875 sizeof(struct spoolss_GetJob),
30876 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
30877 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
30878 (ndr_print_function_t) ndr_print_spoolss_GetJob,
30879 false,
30882 "spoolss_EnumJobs",
30883 sizeof(struct spoolss_EnumJobs),
30884 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
30885 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
30886 (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
30887 false,
30890 "spoolss_AddPrinter",
30891 sizeof(struct spoolss_AddPrinter),
30892 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
30893 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
30894 (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
30895 false,
30898 "spoolss_DeletePrinter",
30899 sizeof(struct spoolss_DeletePrinter),
30900 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
30901 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
30902 (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
30903 false,
30906 "spoolss_SetPrinter",
30907 sizeof(struct spoolss_SetPrinter),
30908 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
30909 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
30910 (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
30911 false,
30914 "spoolss_GetPrinter",
30915 sizeof(struct spoolss_GetPrinter),
30916 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
30917 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
30918 (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
30919 false,
30922 "spoolss_AddPrinterDriver",
30923 sizeof(struct spoolss_AddPrinterDriver),
30924 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
30925 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
30926 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
30927 false,
30930 "spoolss_EnumPrinterDrivers",
30931 sizeof(struct spoolss_EnumPrinterDrivers),
30932 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
30933 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
30934 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
30935 false,
30938 "spoolss_GetPrinterDriver",
30939 sizeof(struct spoolss_GetPrinterDriver),
30940 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
30941 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
30942 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
30943 false,
30946 "spoolss_GetPrinterDriverDirectory",
30947 sizeof(struct spoolss_GetPrinterDriverDirectory),
30948 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
30949 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
30950 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
30951 false,
30954 "spoolss_DeletePrinterDriver",
30955 sizeof(struct spoolss_DeletePrinterDriver),
30956 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
30957 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
30958 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
30959 false,
30962 "spoolss_AddPrintProcessor",
30963 sizeof(struct spoolss_AddPrintProcessor),
30964 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
30965 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
30966 (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
30967 false,
30970 "spoolss_EnumPrintProcessors",
30971 sizeof(struct spoolss_EnumPrintProcessors),
30972 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
30973 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
30974 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
30975 false,
30978 "spoolss_GetPrintProcessorDirectory",
30979 sizeof(struct spoolss_GetPrintProcessorDirectory),
30980 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
30981 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
30982 (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
30983 false,
30986 "spoolss_StartDocPrinter",
30987 sizeof(struct spoolss_StartDocPrinter),
30988 (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
30989 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
30990 (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
30991 false,
30994 "spoolss_StartPagePrinter",
30995 sizeof(struct spoolss_StartPagePrinter),
30996 (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
30997 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
30998 (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
30999 false,
31002 "spoolss_WritePrinter",
31003 sizeof(struct spoolss_WritePrinter),
31004 (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
31005 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
31006 (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
31007 false,
31010 "spoolss_EndPagePrinter",
31011 sizeof(struct spoolss_EndPagePrinter),
31012 (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
31013 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
31014 (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
31015 false,
31018 "spoolss_AbortPrinter",
31019 sizeof(struct spoolss_AbortPrinter),
31020 (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
31021 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
31022 (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
31023 false,
31026 "spoolss_ReadPrinter",
31027 sizeof(struct spoolss_ReadPrinter),
31028 (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
31029 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
31030 (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
31031 false,
31034 "spoolss_EndDocPrinter",
31035 sizeof(struct spoolss_EndDocPrinter),
31036 (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
31037 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
31038 (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
31039 false,
31042 "spoolss_AddJob",
31043 sizeof(struct spoolss_AddJob),
31044 (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
31045 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
31046 (ndr_print_function_t) ndr_print_spoolss_AddJob,
31047 false,
31050 "spoolss_ScheduleJob",
31051 sizeof(struct spoolss_ScheduleJob),
31052 (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
31053 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
31054 (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
31055 false,
31058 "spoolss_GetPrinterData",
31059 sizeof(struct spoolss_GetPrinterData),
31060 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
31061 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
31062 (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
31063 false,
31066 "spoolss_SetPrinterData",
31067 sizeof(struct spoolss_SetPrinterData),
31068 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
31069 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
31070 (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
31071 false,
31074 "spoolss_WaitForPrinterChange",
31075 sizeof(struct spoolss_WaitForPrinterChange),
31076 (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
31077 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
31078 (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
31079 false,
31082 "spoolss_ClosePrinter",
31083 sizeof(struct spoolss_ClosePrinter),
31084 (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
31085 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
31086 (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
31087 false,
31090 "spoolss_AddForm",
31091 sizeof(struct spoolss_AddForm),
31092 (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
31093 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
31094 (ndr_print_function_t) ndr_print_spoolss_AddForm,
31095 false,
31098 "spoolss_DeleteForm",
31099 sizeof(struct spoolss_DeleteForm),
31100 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
31101 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
31102 (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
31103 false,
31106 "spoolss_GetForm",
31107 sizeof(struct spoolss_GetForm),
31108 (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
31109 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
31110 (ndr_print_function_t) ndr_print_spoolss_GetForm,
31111 false,
31114 "spoolss_SetForm",
31115 sizeof(struct spoolss_SetForm),
31116 (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
31117 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
31118 (ndr_print_function_t) ndr_print_spoolss_SetForm,
31119 false,
31122 "spoolss_EnumForms",
31123 sizeof(struct spoolss_EnumForms),
31124 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
31125 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
31126 (ndr_print_function_t) ndr_print_spoolss_EnumForms,
31127 false,
31130 "spoolss_EnumPorts",
31131 sizeof(struct spoolss_EnumPorts),
31132 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
31133 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
31134 (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
31135 false,
31138 "spoolss_EnumMonitors",
31139 sizeof(struct spoolss_EnumMonitors),
31140 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
31141 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
31142 (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
31143 false,
31146 "spoolss_AddPort",
31147 sizeof(struct spoolss_AddPort),
31148 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
31149 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
31150 (ndr_print_function_t) ndr_print_spoolss_AddPort,
31151 false,
31154 "spoolss_ConfigurePort",
31155 sizeof(struct spoolss_ConfigurePort),
31156 (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
31157 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
31158 (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
31159 false,
31162 "spoolss_DeletePort",
31163 sizeof(struct spoolss_DeletePort),
31164 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
31165 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
31166 (ndr_print_function_t) ndr_print_spoolss_DeletePort,
31167 false,
31170 "spoolss_CreatePrinterIC",
31171 sizeof(struct spoolss_CreatePrinterIC),
31172 (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
31173 (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
31174 (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
31175 false,
31178 "spoolss_PlayGDIScriptOnPrinterIC",
31179 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
31180 (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
31181 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
31182 (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
31183 false,
31186 "spoolss_DeletePrinterIC",
31187 sizeof(struct spoolss_DeletePrinterIC),
31188 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
31189 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
31190 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
31191 false,
31194 "spoolss_AddPrinterConnection",
31195 sizeof(struct spoolss_AddPrinterConnection),
31196 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
31197 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
31198 (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
31199 false,
31202 "spoolss_DeletePrinterConnection",
31203 sizeof(struct spoolss_DeletePrinterConnection),
31204 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
31205 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
31206 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
31207 false,
31210 "spoolss_PrinterMessageBox",
31211 sizeof(struct spoolss_PrinterMessageBox),
31212 (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
31213 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
31214 (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
31215 false,
31218 "spoolss_AddMonitor",
31219 sizeof(struct spoolss_AddMonitor),
31220 (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
31221 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
31222 (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
31223 false,
31226 "spoolss_DeleteMonitor",
31227 sizeof(struct spoolss_DeleteMonitor),
31228 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
31229 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
31230 (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
31231 false,
31234 "spoolss_DeletePrintProcessor",
31235 sizeof(struct spoolss_DeletePrintProcessor),
31236 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
31237 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
31238 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
31239 false,
31242 "spoolss_AddPrintProvidor",
31243 sizeof(struct spoolss_AddPrintProvidor),
31244 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
31245 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
31246 (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
31247 false,
31250 "spoolss_DeletePrintProvidor",
31251 sizeof(struct spoolss_DeletePrintProvidor),
31252 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
31253 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
31254 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
31255 false,
31258 "spoolss_EnumPrintProcDataTypes",
31259 sizeof(struct spoolss_EnumPrintProcDataTypes),
31260 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcDataTypes,
31261 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcDataTypes,
31262 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcDataTypes,
31263 false,
31266 "spoolss_ResetPrinter",
31267 sizeof(struct spoolss_ResetPrinter),
31268 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
31269 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
31270 (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
31271 false,
31274 "spoolss_GetPrinterDriver2",
31275 sizeof(struct spoolss_GetPrinterDriver2),
31276 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
31277 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
31278 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
31279 false,
31282 "spoolss_FindFirstPrinterChangeNotification",
31283 sizeof(struct spoolss_FindFirstPrinterChangeNotification),
31284 (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
31285 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
31286 (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
31287 false,
31290 "spoolss_FindNextPrinterChangeNotification",
31291 sizeof(struct spoolss_FindNextPrinterChangeNotification),
31292 (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
31293 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
31294 (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
31295 false,
31298 "spoolss_FindClosePrinterNotify",
31299 sizeof(struct spoolss_FindClosePrinterNotify),
31300 (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
31301 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
31302 (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
31303 false,
31306 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
31307 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
31308 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
31309 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
31310 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
31311 false,
31314 "spoolss_ReplyOpenPrinter",
31315 sizeof(struct spoolss_ReplyOpenPrinter),
31316 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
31317 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
31318 (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
31319 false,
31322 "spoolss_RouterReplyPrinter",
31323 sizeof(struct spoolss_RouterReplyPrinter),
31324 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
31325 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
31326 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
31327 false,
31330 "spoolss_ReplyClosePrinter",
31331 sizeof(struct spoolss_ReplyClosePrinter),
31332 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
31333 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
31334 (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
31335 false,
31338 "spoolss_AddPortEx",
31339 sizeof(struct spoolss_AddPortEx),
31340 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
31341 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
31342 (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
31343 false,
31346 "spoolss_RouterFindFirstPrinterChangeNotification",
31347 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
31348 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
31349 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
31350 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
31351 false,
31354 "spoolss_SpoolerInit",
31355 sizeof(struct spoolss_SpoolerInit),
31356 (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
31357 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
31358 (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
31359 false,
31362 "spoolss_ResetPrinterEx",
31363 sizeof(struct spoolss_ResetPrinterEx),
31364 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
31365 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
31366 (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
31367 false,
31370 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
31371 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
31372 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
31373 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
31374 (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
31375 false,
31378 "spoolss_RouterReplyPrinterEx",
31379 sizeof(struct spoolss_RouterReplyPrinterEx),
31380 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinterEx,
31381 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinterEx,
31382 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinterEx,
31383 false,
31386 "spoolss_RouterRefreshPrinterChangeNotify",
31387 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify),
31388 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotify,
31389 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify,
31390 (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotify,
31391 false,
31394 "spoolss_44",
31395 sizeof(struct spoolss_44),
31396 (ndr_push_flags_fn_t) ndr_push_spoolss_44,
31397 (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
31398 (ndr_print_function_t) ndr_print_spoolss_44,
31399 false,
31402 "spoolss_OpenPrinterEx",
31403 sizeof(struct spoolss_OpenPrinterEx),
31404 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
31405 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
31406 (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
31407 false,
31410 "spoolss_AddPrinterEx",
31411 sizeof(struct spoolss_AddPrinterEx),
31412 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
31413 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
31414 (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
31415 false,
31418 "spoolss_47",
31419 sizeof(struct spoolss_47),
31420 (ndr_push_flags_fn_t) ndr_push_spoolss_47,
31421 (ndr_pull_flags_fn_t) ndr_pull_spoolss_47,
31422 (ndr_print_function_t) ndr_print_spoolss_47,
31423 false,
31426 "spoolss_EnumPrinterData",
31427 sizeof(struct spoolss_EnumPrinterData),
31428 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
31429 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
31430 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
31431 false,
31434 "spoolss_DeletePrinterData",
31435 sizeof(struct spoolss_DeletePrinterData),
31436 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
31437 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
31438 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
31439 false,
31442 "spoolss_4a",
31443 sizeof(struct spoolss_4a),
31444 (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
31445 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
31446 (ndr_print_function_t) ndr_print_spoolss_4a,
31447 false,
31450 "spoolss_4b",
31451 sizeof(struct spoolss_4b),
31452 (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
31453 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
31454 (ndr_print_function_t) ndr_print_spoolss_4b,
31455 false,
31458 "spoolss_4c",
31459 sizeof(struct spoolss_4c),
31460 (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
31461 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
31462 (ndr_print_function_t) ndr_print_spoolss_4c,
31463 false,
31466 "spoolss_SetPrinterDataEx",
31467 sizeof(struct spoolss_SetPrinterDataEx),
31468 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
31469 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
31470 (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
31471 false,
31474 "spoolss_GetPrinterDataEx",
31475 sizeof(struct spoolss_GetPrinterDataEx),
31476 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
31477 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
31478 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
31479 false,
31482 "spoolss_EnumPrinterDataEx",
31483 sizeof(struct spoolss_EnumPrinterDataEx),
31484 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
31485 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
31486 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
31487 false,
31490 "spoolss_EnumPrinterKey",
31491 sizeof(struct spoolss_EnumPrinterKey),
31492 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
31493 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
31494 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
31495 false,
31498 "spoolss_DeletePrinterDataEx",
31499 sizeof(struct spoolss_DeletePrinterDataEx),
31500 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
31501 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
31502 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
31503 false,
31506 "spoolss_DeletePrinterKey",
31507 sizeof(struct spoolss_DeletePrinterKey),
31508 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
31509 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
31510 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
31511 false,
31514 "spoolss_53",
31515 sizeof(struct spoolss_53),
31516 (ndr_push_flags_fn_t) ndr_push_spoolss_53,
31517 (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
31518 (ndr_print_function_t) ndr_print_spoolss_53,
31519 false,
31522 "spoolss_DeletePrinterDriverEx",
31523 sizeof(struct spoolss_DeletePrinterDriverEx),
31524 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
31525 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
31526 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
31527 false,
31530 "spoolss_55",
31531 sizeof(struct spoolss_55),
31532 (ndr_push_flags_fn_t) ndr_push_spoolss_55,
31533 (ndr_pull_flags_fn_t) ndr_pull_spoolss_55,
31534 (ndr_print_function_t) ndr_print_spoolss_55,
31535 false,
31538 "spoolss_56",
31539 sizeof(struct spoolss_56),
31540 (ndr_push_flags_fn_t) ndr_push_spoolss_56,
31541 (ndr_pull_flags_fn_t) ndr_pull_spoolss_56,
31542 (ndr_print_function_t) ndr_print_spoolss_56,
31543 false,
31546 "spoolss_57",
31547 sizeof(struct spoolss_57),
31548 (ndr_push_flags_fn_t) ndr_push_spoolss_57,
31549 (ndr_pull_flags_fn_t) ndr_pull_spoolss_57,
31550 (ndr_print_function_t) ndr_print_spoolss_57,
31551 false,
31554 "spoolss_XcvData",
31555 sizeof(struct spoolss_XcvData),
31556 (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
31557 (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
31558 (ndr_print_function_t) ndr_print_spoolss_XcvData,
31559 false,
31562 "spoolss_AddPrinterDriverEx",
31563 sizeof(struct spoolss_AddPrinterDriverEx),
31564 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
31565 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
31566 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
31567 false,
31570 "spoolss_5a",
31571 sizeof(struct spoolss_5a),
31572 (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
31573 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
31574 (ndr_print_function_t) ndr_print_spoolss_5a,
31575 false,
31578 "spoolss_5b",
31579 sizeof(struct spoolss_5b),
31580 (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
31581 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
31582 (ndr_print_function_t) ndr_print_spoolss_5b,
31583 false,
31586 "spoolss_5c",
31587 sizeof(struct spoolss_5c),
31588 (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
31589 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
31590 (ndr_print_function_t) ndr_print_spoolss_5c,
31591 false,
31594 "spoolss_5d",
31595 sizeof(struct spoolss_5d),
31596 (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
31597 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
31598 (ndr_print_function_t) ndr_print_spoolss_5d,
31599 false,
31602 "spoolss_5e",
31603 sizeof(struct spoolss_5e),
31604 (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
31605 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
31606 (ndr_print_function_t) ndr_print_spoolss_5e,
31607 false,
31610 "spoolss_5f",
31611 sizeof(struct spoolss_5f),
31612 (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
31613 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
31614 (ndr_print_function_t) ndr_print_spoolss_5f,
31615 false,
31618 "spoolss_60",
31619 sizeof(struct spoolss_60),
31620 (ndr_push_flags_fn_t) ndr_push_spoolss_60,
31621 (ndr_pull_flags_fn_t) ndr_pull_spoolss_60,
31622 (ndr_print_function_t) ndr_print_spoolss_60,
31623 false,
31626 "spoolss_61",
31627 sizeof(struct spoolss_61),
31628 (ndr_push_flags_fn_t) ndr_push_spoolss_61,
31629 (ndr_pull_flags_fn_t) ndr_pull_spoolss_61,
31630 (ndr_print_function_t) ndr_print_spoolss_61,
31631 false,
31634 "spoolss_62",
31635 sizeof(struct spoolss_62),
31636 (ndr_push_flags_fn_t) ndr_push_spoolss_62,
31637 (ndr_pull_flags_fn_t) ndr_pull_spoolss_62,
31638 (ndr_print_function_t) ndr_print_spoolss_62,
31639 false,
31642 "spoolss_63",
31643 sizeof(struct spoolss_63),
31644 (ndr_push_flags_fn_t) ndr_push_spoolss_63,
31645 (ndr_pull_flags_fn_t) ndr_pull_spoolss_63,
31646 (ndr_print_function_t) ndr_print_spoolss_63,
31647 false,
31650 "spoolss_64",
31651 sizeof(struct spoolss_64),
31652 (ndr_push_flags_fn_t) ndr_push_spoolss_64,
31653 (ndr_pull_flags_fn_t) ndr_pull_spoolss_64,
31654 (ndr_print_function_t) ndr_print_spoolss_64,
31655 false,
31658 "spoolss_65",
31659 sizeof(struct spoolss_65),
31660 (ndr_push_flags_fn_t) ndr_push_spoolss_65,
31661 (ndr_pull_flags_fn_t) ndr_pull_spoolss_65,
31662 (ndr_print_function_t) ndr_print_spoolss_65,
31663 false,
31666 "spoolss_GetCorePrinterDrivers",
31667 sizeof(struct spoolss_GetCorePrinterDrivers),
31668 (ndr_push_flags_fn_t) ndr_push_spoolss_GetCorePrinterDrivers,
31669 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetCorePrinterDrivers,
31670 (ndr_print_function_t) ndr_print_spoolss_GetCorePrinterDrivers,
31671 false,
31674 "spoolss_67",
31675 sizeof(struct spoolss_67),
31676 (ndr_push_flags_fn_t) ndr_push_spoolss_67,
31677 (ndr_pull_flags_fn_t) ndr_pull_spoolss_67,
31678 (ndr_print_function_t) ndr_print_spoolss_67,
31679 false,
31682 "spoolss_GetPrinterDriverPackagePath",
31683 sizeof(struct spoolss_GetPrinterDriverPackagePath),
31684 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverPackagePath,
31685 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverPackagePath,
31686 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverPackagePath,
31687 false,
31690 "spoolss_69",
31691 sizeof(struct spoolss_69),
31692 (ndr_push_flags_fn_t) ndr_push_spoolss_69,
31693 (ndr_pull_flags_fn_t) ndr_pull_spoolss_69,
31694 (ndr_print_function_t) ndr_print_spoolss_69,
31695 false,
31698 "spoolss_6a",
31699 sizeof(struct spoolss_6a),
31700 (ndr_push_flags_fn_t) ndr_push_spoolss_6a,
31701 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6a,
31702 (ndr_print_function_t) ndr_print_spoolss_6a,
31703 false,
31706 "spoolss_6b",
31707 sizeof(struct spoolss_6b),
31708 (ndr_push_flags_fn_t) ndr_push_spoolss_6b,
31709 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6b,
31710 (ndr_print_function_t) ndr_print_spoolss_6b,
31711 false,
31714 "spoolss_6c",
31715 sizeof(struct spoolss_6c),
31716 (ndr_push_flags_fn_t) ndr_push_spoolss_6c,
31717 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6c,
31718 (ndr_print_function_t) ndr_print_spoolss_6c,
31719 false,
31722 "spoolss_6d",
31723 sizeof(struct spoolss_6d),
31724 (ndr_push_flags_fn_t) ndr_push_spoolss_6d,
31725 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6d,
31726 (ndr_print_function_t) ndr_print_spoolss_6d,
31727 false,
31729 { NULL, 0, NULL, NULL, NULL, false }
31732 static const char * const spoolss_endpoint_strings[] = {
31733 "ncacn_np:[\\pipe\\spoolss]",
31736 static const struct ndr_interface_string_array spoolss_endpoints = {
31737 .count = 1,
31738 .names = spoolss_endpoint_strings
31741 static const char * const spoolss_authservice_strings[] = {
31742 "host",
31745 static const struct ndr_interface_string_array spoolss_authservices = {
31746 .count = 1,
31747 .names = spoolss_authservice_strings
31751 const struct ndr_interface_table ndr_table_spoolss = {
31752 .name = "spoolss",
31753 .syntax_id = {
31754 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
31755 NDR_SPOOLSS_VERSION
31757 .helpstring = NDR_SPOOLSS_HELPSTRING,
31758 .num_calls = 110,
31759 .calls = spoolss_calls,
31760 .endpoints = &spoolss_endpoints,
31761 .authservices = &spoolss_authservices