s3: re-run make samba3-idl.
[Samba/kamenim.git] / librpc / gen_ndr / ndr_spoolss.c
blob2448f735b8fd782fad8e36a01aca285590b6f8d7
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 _PUBLIC_ void ndr_print_spoolss_Time(struct ndr_print *ndr, const char *name, const struct spoolss_Time *r)
49 ndr_print_struct(ndr, name, "spoolss_Time");
50 ndr->depth++;
51 ndr_print_uint16(ndr, "year", r->year);
52 ndr_print_uint16(ndr, "month", r->month);
53 ndr_print_uint16(ndr, "day_of_week", r->day_of_week);
54 ndr_print_uint16(ndr, "day", r->day);
55 ndr_print_uint16(ndr, "hour", r->hour);
56 ndr_print_uint16(ndr, "minute", r->minute);
57 ndr_print_uint16(ndr, "second", r->second);
58 ndr_print_uint16(ndr, "millisecond", r->millisecond);
59 ndr->depth--;
62 static size_t ndr_size_spoolss_Time(const struct spoolss_Time *r, struct smb_iconv_convenience *ic, int flags)
64 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_Time, ic);
67 static enum ndr_err_code ndr_push_spoolss_TimeCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_TimeCtr *r)
69 if (ndr_flags & NDR_SCALARS) {
70 NDR_CHECK(ndr_push_align(ndr, 5));
71 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_Time(r->time, ndr->iconv_convenience, ndr->flags)));
72 NDR_CHECK(ndr_push_unique_ptr(ndr, r->time));
73 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
75 if (ndr_flags & NDR_BUFFERS) {
76 if (r->time) {
77 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, r->time));
80 return NDR_ERR_SUCCESS;
83 static enum ndr_err_code ndr_pull_spoolss_TimeCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_TimeCtr *r)
85 uint32_t _ptr_time;
86 TALLOC_CTX *_mem_save_time_0;
87 if (ndr_flags & NDR_SCALARS) {
88 NDR_CHECK(ndr_pull_align(ndr, 5));
89 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
90 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_time));
91 if (_ptr_time) {
92 NDR_PULL_ALLOC(ndr, r->time);
93 } else {
94 r->time = NULL;
96 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
98 if (ndr_flags & NDR_BUFFERS) {
99 if (r->time) {
100 _mem_save_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
101 NDR_PULL_SET_MEM_CTX(ndr, r->time, 0);
102 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, r->time));
103 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_time_0, 0);
106 return NDR_ERR_SUCCESS;
109 _PUBLIC_ void ndr_print_spoolss_TimeCtr(struct ndr_print *ndr, const char *name, const struct spoolss_TimeCtr *r)
111 ndr_print_struct(ndr, name, "spoolss_TimeCtr");
112 ndr->depth++;
113 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_Time(r->time, ndr->iconv_convenience, ndr->flags):r->size);
114 ndr_print_ptr(ndr, "time", r->time);
115 ndr->depth++;
116 if (r->time) {
117 ndr_print_spoolss_Time(ndr, "time", r->time);
119 ndr->depth--;
120 ndr->depth--;
123 static enum ndr_err_code ndr_push_spoolss_ProcessorArchitecture(struct ndr_push *ndr, int ndr_flags, enum spoolss_ProcessorArchitecture r)
125 NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
126 return NDR_ERR_SUCCESS;
129 static enum ndr_err_code ndr_pull_spoolss_ProcessorArchitecture(struct ndr_pull *ndr, int ndr_flags, enum spoolss_ProcessorArchitecture *r)
131 uint16_t v;
132 NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
133 *r = v;
134 return NDR_ERR_SUCCESS;
137 _PUBLIC_ void ndr_print_spoolss_ProcessorArchitecture(struct ndr_print *ndr, const char *name, enum spoolss_ProcessorArchitecture r)
139 const char *val = NULL;
141 switch (r) {
142 case PROCESSOR_ARCHITECTURE_INTEL: val = "PROCESSOR_ARCHITECTURE_INTEL"; break;
143 case PROCESSOR_ARCHITECTURE_IA64: val = "PROCESSOR_ARCHITECTURE_IA64"; break;
144 case PROCESSOR_ARCHITECTURE_AMD64: val = "PROCESSOR_ARCHITECTURE_AMD64"; break;
146 ndr_print_enum(ndr, name, "ENUM", val, r);
149 static enum ndr_err_code ndr_push_spoolss_ProcessorType(struct ndr_push *ndr, int ndr_flags, enum spoolss_ProcessorType r)
151 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
152 return NDR_ERR_SUCCESS;
155 static enum ndr_err_code ndr_pull_spoolss_ProcessorType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_ProcessorType *r)
157 uint32_t v;
158 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
159 *r = v;
160 return NDR_ERR_SUCCESS;
163 _PUBLIC_ void ndr_print_spoolss_ProcessorType(struct ndr_print *ndr, const char *name, enum spoolss_ProcessorType r)
165 const char *val = NULL;
167 switch (r) {
168 case PROCESSOR_INTEL_386: val = "PROCESSOR_INTEL_386"; break;
169 case PROCESSOR_INTEL_486: val = "PROCESSOR_INTEL_486"; break;
170 case PROCESSOR_INTEL_PENTIUM: val = "PROCESSOR_INTEL_PENTIUM"; break;
171 case PROCESSOR_INTEL_IA64: val = "PROCESSOR_INTEL_IA64"; break;
172 case PROCESSOR_AMD_X8664: val = "PROCESSOR_AMD_X8664"; break;
174 ndr_print_enum(ndr, name, "ENUM", val, r);
177 static enum ndr_err_code ndr_push_spoolss_MajorVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_MajorVersion r)
179 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
180 return NDR_ERR_SUCCESS;
183 static enum ndr_err_code ndr_pull_spoolss_MajorVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_MajorVersion *r)
185 uint32_t v;
186 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
187 *r = v;
188 return NDR_ERR_SUCCESS;
191 _PUBLIC_ void ndr_print_spoolss_MajorVersion(struct ndr_print *ndr, const char *name, enum spoolss_MajorVersion r)
193 const char *val = NULL;
195 switch (r) {
196 case SPOOLSS_MAJOR_VERSION_NT4_95_98_ME: val = "SPOOLSS_MAJOR_VERSION_NT4_95_98_ME"; break;
197 case SPOOLSS_MAJOR_VERSION_2000_2003_XP: val = "SPOOLSS_MAJOR_VERSION_2000_2003_XP"; break;
198 case SPOOLSS_MAJOR_VERSION_2008_VISTA: val = "SPOOLSS_MAJOR_VERSION_2008_VISTA"; break;
200 ndr_print_enum(ndr, name, "ENUM", val, r);
203 static enum ndr_err_code ndr_push_spoolss_MinorVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_MinorVersion r)
205 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
206 return NDR_ERR_SUCCESS;
209 static enum ndr_err_code ndr_pull_spoolss_MinorVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_MinorVersion *r)
211 uint32_t v;
212 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
213 *r = v;
214 return NDR_ERR_SUCCESS;
217 _PUBLIC_ void ndr_print_spoolss_MinorVersion(struct ndr_print *ndr, const char *name, enum spoolss_MinorVersion r)
219 const char *val = NULL;
221 switch (r) {
222 case SPOOLSS_MINOR_VERSION_0: val = "SPOOLSS_MINOR_VERSION_0"; break;
223 case SPOOLSS_MINOR_VERSION_XP: val = "SPOOLSS_MINOR_VERSION_XP"; break;
224 case SPOOLSS_MINOR_VERSION_2003_XP64: val = "SPOOLSS_MINOR_VERSION_2003_XP64"; break;
225 case SPOOLSS_MINOR_VERSION_98: val = "SPOOLSS_MINOR_VERSION_98"; break;
226 case SPOOLSS_MINOR_VERSION_ME: val = "SPOOLSS_MINOR_VERSION_ME"; break;
228 ndr_print_enum(ndr, name, "ENUM", val, r);
231 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterStatus(struct ndr_push *ndr, int ndr_flags, uint32_t r)
233 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
234 return NDR_ERR_SUCCESS;
237 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterStatus(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
239 uint32_t v;
240 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
241 *r = v;
242 return NDR_ERR_SUCCESS;
245 _PUBLIC_ void ndr_print_spoolss_PrinterStatus(struct ndr_print *ndr, const char *name, uint32_t r)
247 ndr_print_uint32(ndr, name, r);
248 ndr->depth++;
249 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAUSED", PRINTER_STATUS_PAUSED, r);
250 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_ERROR", PRINTER_STATUS_ERROR, r);
251 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PENDING_DELETION", PRINTER_STATUS_PENDING_DELETION, r);
252 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_JAM", PRINTER_STATUS_PAPER_JAM, r);
253 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_OUT", PRINTER_STATUS_PAPER_OUT, r);
254 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_MANUAL_FEED", PRINTER_STATUS_MANUAL_FEED, r);
255 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_PROBLEM", PRINTER_STATUS_PAPER_PROBLEM, r);
256 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OFFLINE", PRINTER_STATUS_OFFLINE, r);
257 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_IO_ACTIVE", PRINTER_STATUS_IO_ACTIVE, r);
258 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_BUSY", PRINTER_STATUS_BUSY, r);
259 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PRINTING", PRINTER_STATUS_PRINTING, r);
260 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUTPUT_BIN_FULL", PRINTER_STATUS_OUTPUT_BIN_FULL, r);
261 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NOT_AVAILABLE", PRINTER_STATUS_NOT_AVAILABLE, r);
262 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WAITING", PRINTER_STATUS_WAITING, r);
263 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PROCESSING", PRINTER_STATUS_PROCESSING, r);
264 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_INITIALIZING", PRINTER_STATUS_INITIALIZING, r);
265 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WARMING_UP", PRINTER_STATUS_WARMING_UP, r);
266 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_TONER_LOW", PRINTER_STATUS_TONER_LOW, r);
267 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NO_TONER", PRINTER_STATUS_NO_TONER, r);
268 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAGE_PUNT", PRINTER_STATUS_PAGE_PUNT, r);
269 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_USER_INTERVENTION", PRINTER_STATUS_USER_INTERVENTION, r);
270 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUT_OF_MEMORY", PRINTER_STATUS_OUT_OF_MEMORY, r);
271 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_DOOR_OPEN", PRINTER_STATUS_DOOR_OPEN, r);
272 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_SERVER_UNKNOWN", PRINTER_STATUS_SERVER_UNKNOWN, r);
273 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_POWER_SAVE", PRINTER_STATUS_POWER_SAVE, r);
274 ndr->depth--;
277 static enum ndr_err_code ndr_push_spoolss_JobStatus(struct ndr_push *ndr, int ndr_flags, uint32_t r)
279 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
280 return NDR_ERR_SUCCESS;
283 static enum ndr_err_code ndr_pull_spoolss_JobStatus(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
285 uint32_t v;
286 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
287 *r = v;
288 return NDR_ERR_SUCCESS;
291 _PUBLIC_ void ndr_print_spoolss_JobStatus(struct ndr_print *ndr, const char *name, uint32_t r)
293 ndr_print_uint32(ndr, name, r);
294 ndr->depth++;
295 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PAUSED", JOB_STATUS_PAUSED, r);
296 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_ERROR", JOB_STATUS_ERROR, r);
297 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_DELETING", JOB_STATUS_DELETING, r);
298 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_SPOOLING", JOB_STATUS_SPOOLING, r);
299 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PRINTING", JOB_STATUS_PRINTING, r);
300 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_OFFLINE", JOB_STATUS_OFFLINE, r);
301 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PAPEROUT", JOB_STATUS_PAPEROUT, r);
302 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PRINTED", JOB_STATUS_PRINTED, r);
303 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_DELETED", JOB_STATUS_DELETED, r);
304 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_BLOCKED_DEVQ", JOB_STATUS_BLOCKED_DEVQ, r);
305 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_USER_INTERVENTION", JOB_STATUS_USER_INTERVENTION, r);
306 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_RESTART", JOB_STATUS_RESTART, r);
307 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_COMPLETE", JOB_STATUS_COMPLETE, r);
308 ndr->depth--;
311 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo0 *r)
313 if (ndr_flags & NDR_SCALARS) {
314 NDR_CHECK(ndr_push_align(ndr, 5));
316 uint32_t _flags_save_string = ndr->flags;
317 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
318 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
319 ndr->flags = _flags_save_string;
322 uint32_t _flags_save_string = ndr->flags;
323 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
324 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
325 ndr->flags = _flags_save_string;
327 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
329 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
330 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
332 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
333 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
334 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
335 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
336 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
337 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
338 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
339 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
340 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->job_error));
341 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
342 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
343 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
344 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
345 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
346 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
347 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
348 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
349 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
350 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
351 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
352 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
353 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
354 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
356 if (ndr_flags & NDR_BUFFERS) {
358 uint32_t _flags_save_string = ndr->flags;
359 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
360 if (r->printername) {
361 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printername));
362 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
363 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printername));
365 ndr->flags = _flags_save_string;
368 uint32_t _flags_save_string = ndr->flags;
369 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
370 if (r->servername) {
371 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->servername));
372 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
373 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->servername));
375 ndr->flags = _flags_save_string;
378 return NDR_ERR_SUCCESS;
381 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo0 *r)
383 uint32_t _ptr_printername;
384 TALLOC_CTX *_mem_save_printername_0;
385 uint32_t _ptr_servername;
386 TALLOC_CTX *_mem_save_servername_0;
387 if (ndr_flags & NDR_SCALARS) {
388 NDR_CHECK(ndr_pull_align(ndr, 5));
390 uint32_t _flags_save_string = ndr->flags;
391 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
392 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
393 if (_ptr_printername) {
394 NDR_PULL_ALLOC(ndr, r->printername);
395 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
396 } else {
397 r->printername = NULL;
399 ndr->flags = _flags_save_string;
402 uint32_t _flags_save_string = ndr->flags;
403 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
404 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
405 if (_ptr_servername) {
406 NDR_PULL_ALLOC(ndr, r->servername);
407 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
408 } else {
409 r->servername = NULL;
411 ndr->flags = _flags_save_string;
413 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
414 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
415 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
416 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
417 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
418 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
419 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
420 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
421 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
422 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
423 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
424 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
425 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
426 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->job_error));
427 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
428 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
429 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
430 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
431 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
432 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
433 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
434 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
435 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
436 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
437 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
438 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
439 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
440 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
442 if (ndr_flags & NDR_BUFFERS) {
444 uint32_t _flags_save_string = ndr->flags;
445 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
446 if (r->printername) {
447 uint32_t _relative_save_offset;
448 _relative_save_offset = ndr->offset;
449 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
450 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
451 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
452 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
453 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
454 if (ndr->offset > ndr->relative_highest_offset) {
455 ndr->relative_highest_offset = ndr->offset;
457 ndr->offset = _relative_save_offset;
459 ndr->flags = _flags_save_string;
462 uint32_t _flags_save_string = ndr->flags;
463 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
464 if (r->servername) {
465 uint32_t _relative_save_offset;
466 _relative_save_offset = ndr->offset;
467 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
468 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
469 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
470 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
471 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
472 if (ndr->offset > ndr->relative_highest_offset) {
473 ndr->relative_highest_offset = ndr->offset;
475 ndr->offset = _relative_save_offset;
477 ndr->flags = _flags_save_string;
480 return NDR_ERR_SUCCESS;
483 _PUBLIC_ void ndr_print_spoolss_PrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo0 *r)
485 ndr_print_struct(ndr, name, "spoolss_PrinterInfo0");
486 ndr->depth++;
487 ndr_print_ptr(ndr, "printername", r->printername);
488 ndr->depth++;
489 if (r->printername) {
490 ndr_print_string(ndr, "printername", r->printername);
492 ndr->depth--;
493 ndr_print_ptr(ndr, "servername", r->servername);
494 ndr->depth++;
495 if (r->servername) {
496 ndr_print_string(ndr, "servername", r->servername);
498 ndr->depth--;
499 ndr_print_uint32(ndr, "cjobs", r->cjobs);
500 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
501 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
502 ndr_print_spoolss_Time(ndr, "time", &r->time);
503 ndr_print_uint32(ndr, "global_counter", r->global_counter);
504 ndr_print_uint32(ndr, "total_pages", r->total_pages);
505 ndr_print_uint32(ndr, "version", r->version);
506 ndr_print_uint32(ndr, "free_build", r->free_build);
507 ndr_print_uint32(ndr, "spooling", r->spooling);
508 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
509 ndr_print_uint32(ndr, "session_counter", r->session_counter);
510 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
511 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
512 ndr_print_spoolss_JobStatus(ndr, "job_error", r->job_error);
513 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
514 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
515 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
516 ndr_print_uint32(ndr, "change_id", r->change_id);
517 ndr_print_WERROR(ndr, "last_error", r->last_error);
518 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
519 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
520 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
521 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
522 ndr_print_uint16(ndr, "processor_level", r->processor_level);
523 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
524 ndr_print_uint32(ndr, "reserved2", r->reserved2);
525 ndr_print_uint32(ndr, "reserved3", r->reserved3);
526 ndr->depth--;
529 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo0(const struct spoolss_PrinterInfo0 *r, struct smb_iconv_convenience *ic, int flags)
531 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo0, ic);
534 static enum ndr_err_code ndr_push_spoolss_DM_Signature(struct ndr_push *ndr, int ndr_flags, enum spoolss_DM_Signature r)
536 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
537 return NDR_ERR_SUCCESS;
540 static enum ndr_err_code ndr_pull_spoolss_DM_Signature(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DM_Signature *r)
542 uint32_t v;
543 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
544 *r = v;
545 return NDR_ERR_SUCCESS;
548 _PUBLIC_ void ndr_print_spoolss_DM_Signature(struct ndr_print *ndr, const char *name, enum spoolss_DM_Signature r)
550 const char *val = NULL;
552 switch (r) {
553 case SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA: val = "SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA"; break;
554 case SPOOLSS_DM_SIGNATURE_JTEXP: val = "SPOOLSS_DM_SIGNATURE_JTEXP"; break;
555 case SPOOLSS_DM_SIGNATURE_PSEXTRA: val = "SPOOLSS_DM_SIGNATURE_PSEXTRA"; break;
557 ndr_print_enum(ndr, name, "ENUM", val, r);
560 static enum ndr_err_code ndr_push_spoolss_DM_Layout(struct ndr_push *ndr, int ndr_flags, enum spoolss_DM_Layout r)
562 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
563 return NDR_ERR_SUCCESS;
566 static enum ndr_err_code ndr_pull_spoolss_DM_Layout(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DM_Layout *r)
568 uint32_t v;
569 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
570 *r = v;
571 return NDR_ERR_SUCCESS;
574 _PUBLIC_ void ndr_print_spoolss_DM_Layout(struct ndr_print *ndr, const char *name, enum spoolss_DM_Layout r)
576 const char *val = NULL;
578 switch (r) {
579 case SPOOLSS_DM_LAYOUT_NUP_DISABLED: val = "SPOOLSS_DM_LAYOUT_NUP_DISABLED"; break;
580 case SPOOLSS_DM_LAYOUT_NUP_2: val = "SPOOLSS_DM_LAYOUT_NUP_2"; break;
581 case SPOOLSS_DM_LAYOUT_NUP_4: val = "SPOOLSS_DM_LAYOUT_NUP_4"; break;
582 case SPOOLSS_DM_LAYOUT_NUP_6: val = "SPOOLSS_DM_LAYOUT_NUP_6"; break;
583 case SPOOLSS_DM_LAYOUT_NUP_9: val = "SPOOLSS_DM_LAYOUT_NUP_9"; break;
584 case SPOOLSS_DM_LAYOUT_NUP_16: val = "SPOOLSS_DM_LAYOUT_NUP_16"; break;
585 case SPOOLSS_DM_LAYOUT_BOOKLET: val = "SPOOLSS_DM_LAYOUT_BOOKLET"; break;
587 ndr_print_enum(ndr, name, "ENUM", val, r);
590 static enum ndr_err_code ndr_push_spoolss_DM_NupDirection(struct ndr_push *ndr, int ndr_flags, enum spoolss_DM_NupDirection r)
592 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
593 return NDR_ERR_SUCCESS;
596 static enum ndr_err_code ndr_pull_spoolss_DM_NupDirection(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DM_NupDirection *r)
598 uint32_t v;
599 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
600 *r = v;
601 return NDR_ERR_SUCCESS;
604 _PUBLIC_ void ndr_print_spoolss_DM_NupDirection(struct ndr_print *ndr, const char *name, enum spoolss_DM_NupDirection r)
606 const char *val = NULL;
608 switch (r) {
609 case SPOOLSS_DM_NUP_DIRECTION_L2R_T2B: val = "SPOOLSS_DM_NUP_DIRECTION_L2R_T2B"; break;
610 case SPOOLSS_DM_NUP_DIRECTION_T2B_L2R: val = "SPOOLSS_DM_NUP_DIRECTION_T2B_L2R"; break;
611 case SPOOLSS_DM_NUP_DIRECTION_R2L_T2B: val = "SPOOLSS_DM_NUP_DIRECTION_R2L_T2B"; break;
612 case SPOOLSS_DM_NUP_DIRECTION_T2B_R2L: val = "SPOOLSS_DM_NUP_DIRECTION_T2B_R2L"; break;
614 ndr_print_enum(ndr, name, "ENUM", val, r);
617 static enum ndr_err_code ndr_push_spoolss_DM_NupBorderFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_DM_NupBorderFlags r)
619 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
620 return NDR_ERR_SUCCESS;
623 static enum ndr_err_code ndr_pull_spoolss_DM_NupBorderFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DM_NupBorderFlags *r)
625 uint32_t v;
626 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
627 *r = v;
628 return NDR_ERR_SUCCESS;
631 _PUBLIC_ void ndr_print_spoolss_DM_NupBorderFlags(struct ndr_print *ndr, const char *name, enum spoolss_DM_NupBorderFlags r)
633 const char *val = NULL;
635 switch (r) {
636 case SPOOLSS_DM_NUP_BORDER_PRINT: val = "SPOOLSS_DM_NUP_BORDER_PRINT"; break;
637 case SPOOLSS_DM_NUP_BORDER_NONE: val = "SPOOLSS_DM_NUP_BORDER_NONE"; break;
639 ndr_print_enum(ndr, name, "ENUM", val, r);
642 static enum ndr_err_code ndr_push_spoolss_DM_BookletFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_DM_BookletFlags r)
644 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
645 return NDR_ERR_SUCCESS;
648 static enum ndr_err_code ndr_pull_spoolss_DM_BookletFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DM_BookletFlags *r)
650 uint32_t v;
651 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
652 *r = v;
653 return NDR_ERR_SUCCESS;
656 _PUBLIC_ void ndr_print_spoolss_DM_BookletFlags(struct ndr_print *ndr, const char *name, enum spoolss_DM_BookletFlags r)
658 const char *val = NULL;
660 switch (r) {
661 case SPOOLSS_DM_BOOKLET_LEFT_FLIP: val = "SPOOLSS_DM_BOOKLET_LEFT_FLIP"; break;
662 case SPOOLSS_DM_BOOKLET_RIGHT_FLIP: val = "SPOOLSS_DM_BOOKLET_RIGHT_FLIP"; break;
664 ndr_print_enum(ndr, name, "ENUM", val, r);
667 static enum ndr_err_code ndr_push_spoolss_DMUNI_Quality(struct ndr_push *ndr, int ndr_flags, enum spoolss_DMUNI_Quality r)
669 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
670 return NDR_ERR_SUCCESS;
673 static enum ndr_err_code ndr_pull_spoolss_DMUNI_Quality(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DMUNI_Quality *r)
675 uint32_t v;
676 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
677 *r = v;
678 return NDR_ERR_SUCCESS;
681 _PUBLIC_ void ndr_print_spoolss_DMUNI_Quality(struct ndr_print *ndr, const char *name, enum spoolss_DMUNI_Quality r)
683 const char *val = NULL;
685 switch (r) {
686 case SPOOLSS_DM_UNI_QUALITY_BEST: val = "SPOOLSS_DM_UNI_QUALITY_BEST"; break;
687 case SPOOLSS_DM_UNI_QUALITY_MEDIUM: val = "SPOOLSS_DM_UNI_QUALITY_MEDIUM"; break;
688 case SPOOLSS_DM_UNI_QUALITY_DRAFT: val = "SPOOLSS_DM_UNI_QUALITY_DRAFT"; break;
690 ndr_print_enum(ndr, name, "ENUM", val, r);
693 static enum ndr_err_code ndr_push_spoolss_DMUNI_Flags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
695 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
696 return NDR_ERR_SUCCESS;
699 static enum ndr_err_code ndr_pull_spoolss_DMUNI_Flags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
701 uint32_t v;
702 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
703 *r = v;
704 return NDR_ERR_SUCCESS;
707 _PUBLIC_ void ndr_print_spoolss_DMUNI_Flags(struct ndr_print *ndr, const char *name, uint32_t r)
709 ndr_print_uint32(ndr, name, r);
710 ndr->depth++;
711 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);
712 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_DM_UNI_FLAGS_AVOID_EMFSPOOL", SPOOLSS_DM_UNI_FLAGS_AVOID_EMFSPOOL, r);
713 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_DM_UNI_FLAGS_CUSTOM_HALFTONING", SPOOLSS_DM_UNI_FLAGS_CUSTOM_HALFTONING, r);
714 ndr->depth--;
717 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_UNIDRVEXTRA(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UNIDRVEXTRA *r)
719 uint32_t cntr_wReserved_0;
720 uint32_t cntr_aOptions_0;
721 if (ndr_flags & NDR_SCALARS) {
722 NDR_CHECK(ndr_push_align(ndr, 4));
723 NDR_CHECK(ndr_push_spoolss_DM_Signature(ndr, NDR_SCALARS, SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA));
724 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 0x0022));
725 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->wCoreJTExpSize));
726 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, ndr_size_spoolss_UNIDRVEXTRA(r, ndr->iconv_convenience, ndr->flags) + r->wCoreJTExpSize));
727 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->wOEMExtra));
728 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwChecksum32));
729 NDR_CHECK(ndr_push_spoolss_DMUNI_Flags(ndr, NDR_SCALARS, r->dwFlags));
730 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bReversePrint));
731 NDR_CHECK(ndr_push_spoolss_DM_Layout(ndr, NDR_SCALARS, r->iLayout));
732 NDR_CHECK(ndr_push_spoolss_DMUNI_Quality(ndr, NDR_SCALARS, r->iQuality));
733 for (cntr_wReserved_0 = 0; cntr_wReserved_0 < 6; cntr_wReserved_0++) {
734 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->wReserved[cntr_wReserved_0]));
736 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwOptions));
737 for (cntr_aOptions_0 = 0; cntr_aOptions_0 < 128; cntr_aOptions_0++) {
738 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->aOptions[cntr_aOptions_0]));
740 NDR_CHECK(ndr_push_spoolss_DM_NupDirection(ndr, NDR_SCALARS, r->dwNupDirection));
741 NDR_CHECK(ndr_push_spoolss_DM_NupBorderFlags(ndr, NDR_SCALARS, r->dwNupBorderFlags));
742 NDR_CHECK(ndr_push_spoolss_DM_BookletFlags(ndr, NDR_SCALARS, r->dwBookletFlags));
743 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
745 if (ndr_flags & NDR_BUFFERS) {
747 return NDR_ERR_SUCCESS;
750 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_UNIDRVEXTRA(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UNIDRVEXTRA *r)
752 uint32_t cntr_wReserved_0;
753 uint32_t cntr_aOptions_0;
754 if (ndr_flags & NDR_SCALARS) {
755 NDR_CHECK(ndr_pull_align(ndr, 4));
756 NDR_CHECK(ndr_pull_spoolss_DM_Signature(ndr, NDR_SCALARS, &r->dwSignature));
757 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->wVer));
758 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->wCoreJTExpSize));
759 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->wCoreFullSize));
760 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->wOEMExtra));
761 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwChecksum32));
762 NDR_CHECK(ndr_pull_spoolss_DMUNI_Flags(ndr, NDR_SCALARS, &r->dwFlags));
763 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bReversePrint));
764 NDR_CHECK(ndr_pull_spoolss_DM_Layout(ndr, NDR_SCALARS, &r->iLayout));
765 NDR_CHECK(ndr_pull_spoolss_DMUNI_Quality(ndr, NDR_SCALARS, &r->iQuality));
766 for (cntr_wReserved_0 = 0; cntr_wReserved_0 < 6; cntr_wReserved_0++) {
767 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->wReserved[cntr_wReserved_0]));
769 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwOptions));
770 for (cntr_aOptions_0 = 0; cntr_aOptions_0 < 128; cntr_aOptions_0++) {
771 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->aOptions[cntr_aOptions_0]));
773 NDR_CHECK(ndr_pull_spoolss_DM_NupDirection(ndr, NDR_SCALARS, &r->dwNupDirection));
774 NDR_CHECK(ndr_pull_spoolss_DM_NupBorderFlags(ndr, NDR_SCALARS, &r->dwNupBorderFlags));
775 NDR_CHECK(ndr_pull_spoolss_DM_BookletFlags(ndr, NDR_SCALARS, &r->dwBookletFlags));
776 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
778 if (ndr_flags & NDR_BUFFERS) {
780 return NDR_ERR_SUCCESS;
783 _PUBLIC_ void ndr_print_spoolss_UNIDRVEXTRA(struct ndr_print *ndr, const char *name, const struct spoolss_UNIDRVEXTRA *r)
785 uint32_t cntr_wReserved_0;
786 uint32_t cntr_aOptions_0;
787 ndr_print_struct(ndr, name, "spoolss_UNIDRVEXTRA");
788 ndr->depth++;
789 ndr_print_spoolss_DM_Signature(ndr, "dwSignature", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA:r->dwSignature);
790 ndr_print_uint16(ndr, "wVer", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x0022:r->wVer);
791 ndr_print_uint16(ndr, "wCoreJTExpSize", r->wCoreJTExpSize);
792 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);
793 ndr_print_uint16(ndr, "wOEMExtra", r->wOEMExtra);
794 ndr_print_uint32(ndr, "dwChecksum32", r->dwChecksum32);
795 ndr_print_spoolss_DMUNI_Flags(ndr, "dwFlags", r->dwFlags);
796 ndr_print_uint32(ndr, "bReversePrint", r->bReversePrint);
797 ndr_print_spoolss_DM_Layout(ndr, "iLayout", r->iLayout);
798 ndr_print_spoolss_DMUNI_Quality(ndr, "iQuality", r->iQuality);
799 ndr->print(ndr, "%s: ARRAY(%d)", "wReserved", (int)6);
800 ndr->depth++;
801 for (cntr_wReserved_0=0;cntr_wReserved_0<6;cntr_wReserved_0++) {
802 char *idx_0=NULL;
803 if (asprintf(&idx_0, "[%d]", cntr_wReserved_0) != -1) {
804 ndr_print_uint16(ndr, "wReserved", r->wReserved[cntr_wReserved_0]);
805 free(idx_0);
808 ndr->depth--;
809 ndr_print_uint32(ndr, "dwOptions", r->dwOptions);
810 ndr->print(ndr, "%s: ARRAY(%d)", "aOptions", (int)128);
811 ndr->depth++;
812 for (cntr_aOptions_0=0;cntr_aOptions_0<128;cntr_aOptions_0++) {
813 char *idx_0=NULL;
814 if (asprintf(&idx_0, "[%d]", cntr_aOptions_0) != -1) {
815 ndr_print_uint32(ndr, "aOptions", r->aOptions[cntr_aOptions_0]);
816 free(idx_0);
819 ndr->depth--;
820 ndr_print_spoolss_DM_NupDirection(ndr, "dwNupDirection", r->dwNupDirection);
821 ndr_print_spoolss_DM_NupBorderFlags(ndr, "dwNupBorderFlags", r->dwNupBorderFlags);
822 ndr_print_spoolss_DM_BookletFlags(ndr, "dwBookletFlags", r->dwBookletFlags);
823 ndr->depth--;
826 _PUBLIC_ size_t ndr_size_spoolss_UNIDRVEXTRA(const struct spoolss_UNIDRVEXTRA *r, struct smb_iconv_convenience *ic, int flags)
828 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_UNIDRVEXTRA, ic);
831 static enum ndr_err_code ndr_push_spoolss_DeviceModeFields(struct ndr_push *ndr, int ndr_flags, uint32_t r)
833 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
834 return NDR_ERR_SUCCESS;
837 static enum ndr_err_code ndr_pull_spoolss_DeviceModeFields(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
839 uint32_t v;
840 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
841 *r = v;
842 return NDR_ERR_SUCCESS;
845 _PUBLIC_ void ndr_print_spoolss_DeviceModeFields(struct ndr_print *ndr, const char *name, uint32_t r)
847 ndr_print_uint32(ndr, name, r);
848 ndr->depth++;
849 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ORIENTATION", DEVMODE_ORIENTATION, r);
850 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERSIZE", DEVMODE_PAPERSIZE, r);
851 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERLENGTH", DEVMODE_PAPERLENGTH, r);
852 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERWIDTH", DEVMODE_PAPERWIDTH, r);
853 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_SCALE", DEVMODE_SCALE, r);
854 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_POSITION", DEVMODE_POSITION, r);
855 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_NUP", DEVMODE_NUP, r);
856 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COPIES", DEVMODE_COPIES, r);
857 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DEFAULTSOURCE", DEVMODE_DEFAULTSOURCE, r);
858 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PRINTQUALITY", DEVMODE_PRINTQUALITY, r);
859 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLOR", DEVMODE_COLOR, r);
860 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DUPLEX", DEVMODE_DUPLEX, r);
861 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_YRESOLUTION", DEVMODE_YRESOLUTION, r);
862 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_TTOPTION", DEVMODE_TTOPTION, r);
863 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLLATE", DEVMODE_COLLATE, r);
864 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_FORMNAME", DEVMODE_FORMNAME, r);
865 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_LOGPIXELS", DEVMODE_LOGPIXELS, r);
866 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_BITSPERPEL", DEVMODE_BITSPERPEL, r);
867 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSWIDTH", DEVMODE_PELSWIDTH, r);
868 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSHEIGHT", DEVMODE_PELSHEIGHT, r);
869 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFLAGS", DEVMODE_DISPLAYFLAGS, r);
870 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFREQUENCY", DEVMODE_DISPLAYFREQUENCY, r);
871 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMMETHOD", DEVMODE_ICMMETHOD, r);
872 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMINTENT", DEVMODE_ICMINTENT, r);
873 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_MEDIATYPE", DEVMODE_MEDIATYPE, r);
874 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DITHERTYPE", DEVMODE_DITHERTYPE, r);
875 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGWIDTH", DEVMODE_PANNINGWIDTH, r);
876 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGHEIGHT", DEVMODE_PANNINGHEIGHT, r);
877 ndr->depth--;
880 static enum ndr_err_code ndr_push_spoolss_DeviceModeSpecVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeSpecVersion r)
882 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
883 return NDR_ERR_SUCCESS;
886 static enum ndr_err_code ndr_pull_spoolss_DeviceModeSpecVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeSpecVersion *r)
888 uint16_t v;
889 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
890 *r = v;
891 return NDR_ERR_SUCCESS;
894 _PUBLIC_ void ndr_print_spoolss_DeviceModeSpecVersion(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeSpecVersion r)
896 const char *val = NULL;
898 switch (r) {
899 case DMSPEC_NT3: val = "DMSPEC_NT3"; break;
900 case DMSPEC_WIN95_98_ME: val = "DMSPEC_WIN95_98_ME"; break;
901 case DMSPEC_NT4_AND_ABOVE: val = "DMSPEC_NT4_AND_ABOVE"; break;
903 ndr_print_enum(ndr, name, "ENUM", val, r);
906 static enum ndr_err_code ndr_push_spoolss_DeviceModeOrientation(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeOrientation r)
908 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
909 return NDR_ERR_SUCCESS;
912 static enum ndr_err_code ndr_pull_spoolss_DeviceModeOrientation(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeOrientation *r)
914 uint16_t v;
915 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
916 *r = v;
917 return NDR_ERR_SUCCESS;
920 _PUBLIC_ void ndr_print_spoolss_DeviceModeOrientation(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeOrientation r)
922 const char *val = NULL;
924 switch (r) {
925 case DMORIENT_PORTRAIT: val = "DMORIENT_PORTRAIT"; break;
926 case DMORIENT_LANDSCAPE: val = "DMORIENT_LANDSCAPE"; break;
928 ndr_print_enum(ndr, name, "ENUM", val, r);
931 static enum ndr_err_code ndr_push_spoolss_DeviceModePaperSize(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModePaperSize r)
933 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
934 return NDR_ERR_SUCCESS;
937 static enum ndr_err_code ndr_pull_spoolss_DeviceModePaperSize(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModePaperSize *r)
939 uint16_t v;
940 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
941 *r = v;
942 return NDR_ERR_SUCCESS;
945 _PUBLIC_ void ndr_print_spoolss_DeviceModePaperSize(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModePaperSize r)
947 const char *val = NULL;
949 switch (r) {
950 case DMPAPER_LETTER: val = "DMPAPER_LETTER"; break;
951 case DMPAPER_LETTERSMALL: val = "DMPAPER_LETTERSMALL"; break;
952 case DMPAPER_TABLOID: val = "DMPAPER_TABLOID"; break;
953 case DMPAPER_LEDGER: val = "DMPAPER_LEDGER"; break;
954 case DMPAPER_LEGAL: val = "DMPAPER_LEGAL"; break;
955 case DMPAPER_STATEMENT: val = "DMPAPER_STATEMENT"; break;
956 case DMPAPER_EXECUTIVE: val = "DMPAPER_EXECUTIVE"; break;
957 case DMPAPER_A3: val = "DMPAPER_A3"; break;
958 case DMPAPER_A4: val = "DMPAPER_A4"; break;
959 case DMPAPER_A4SMALL: val = "DMPAPER_A4SMALL"; break;
960 case DMPAPER_A5: val = "DMPAPER_A5"; break;
961 case DMPAPER_B4: val = "DMPAPER_B4"; break;
962 case DMPAPER_B5: val = "DMPAPER_B5"; break;
963 case DMPAPER_FOLIO: val = "DMPAPER_FOLIO"; break;
964 case DMPAPER_QUARTO: val = "DMPAPER_QUARTO"; break;
965 case DMPAPER_10X14: val = "DMPAPER_10X14"; break;
966 case DMPAPER_11X17: val = "DMPAPER_11X17"; break;
967 case DMPAPER_NOTE: val = "DMPAPER_NOTE"; break;
968 case DMPAPER_ENV_9: val = "DMPAPER_ENV_9"; break;
969 case DMPAPER_ENV_10: val = "DMPAPER_ENV_10"; break;
970 case DMPAPER_ENV_11: val = "DMPAPER_ENV_11"; break;
971 case DMPAPER_ENV_12: val = "DMPAPER_ENV_12"; break;
972 case DMPAPER_ENV_14: val = "DMPAPER_ENV_14"; break;
973 case DMPAPER_CSHEET: val = "DMPAPER_CSHEET"; break;
974 case DMPAPER_DSHEET: val = "DMPAPER_DSHEET"; break;
975 case DMPAPER_ESHEET: val = "DMPAPER_ESHEET"; break;
976 case DMPAPER_ENV_DL: val = "DMPAPER_ENV_DL"; break;
977 case DMPAPER_ENV_C5: val = "DMPAPER_ENV_C5"; break;
978 case DMPAPER_ENV_C3: val = "DMPAPER_ENV_C3"; break;
979 case DMPAPER_ENV_C4: val = "DMPAPER_ENV_C4"; break;
980 case DMPAPER_ENV_C6: val = "DMPAPER_ENV_C6"; break;
981 case DMPAPER_ENV_C65: val = "DMPAPER_ENV_C65"; break;
982 case DMPAPER_ENV_B4: val = "DMPAPER_ENV_B4"; break;
983 case DMPAPER_ENV_B5: val = "DMPAPER_ENV_B5"; break;
984 case DMPAPER_ENV_B6: val = "DMPAPER_ENV_B6"; break;
985 case DMPAPER_ENV_ITALY: val = "DMPAPER_ENV_ITALY"; break;
986 case DMPAPER_ENV_MONARCH: val = "DMPAPER_ENV_MONARCH"; break;
987 case DMPAPER_ENV_PERSONAL: val = "DMPAPER_ENV_PERSONAL"; break;
988 case DMPAPER_FANFOLD_US: val = "DMPAPER_FANFOLD_US"; break;
989 case DMPAPER_FANFOLD_STD_GERMAN: val = "DMPAPER_FANFOLD_STD_GERMAN"; break;
990 case DMPAPER_FANFOLD_LGL_GERMAN: val = "DMPAPER_FANFOLD_LGL_GERMAN"; break;
991 case DMPAPER_DBL_JAPANESE_POSTCARD: val = "DMPAPER_DBL_JAPANESE_POSTCARD"; break;
992 case DMPAPER_A6: val = "DMPAPER_A6"; break;
993 case DMPAPER_JENV_KAKU2: val = "DMPAPER_JENV_KAKU2"; break;
994 case DMPAPER_JENV_KAKU3: val = "DMPAPER_JENV_KAKU3"; break;
995 case DMPAPER_JENV_CHOU3: val = "DMPAPER_JENV_CHOU3"; break;
996 case DMPAPER_JENV_CHOU4: val = "DMPAPER_JENV_CHOU4"; break;
997 case DMPAPER_LETTER_ROTATED: val = "DMPAPER_LETTER_ROTATED"; break;
998 case DMPAPER_A3_ROTATED: val = "DMPAPER_A3_ROTATED"; break;
999 case DMPAPER_A4_ROTATED: val = "DMPAPER_A4_ROTATED"; break;
1000 case DMPAPER_A5_ROTATED: val = "DMPAPER_A5_ROTATED"; break;
1001 case DMPAPER_B4_JIS_ROTATED: val = "DMPAPER_B4_JIS_ROTATED"; break;
1002 case DMPAPER_B5_JIS_ROTATED: val = "DMPAPER_B5_JIS_ROTATED"; break;
1003 case DMPAPER_JAPANESE_POSTCARD_ROTATED: val = "DMPAPER_JAPANESE_POSTCARD_ROTATED"; break;
1004 case DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED: val = "DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED"; break;
1005 case DMPAPER_A6_ROTATED: val = "DMPAPER_A6_ROTATED"; break;
1006 case DMPAPER_JENV_KAKU2_ROTATED: val = "DMPAPER_JENV_KAKU2_ROTATED"; break;
1007 case DMPAPER_JENV_KAKU3_ROTATED: val = "DMPAPER_JENV_KAKU3_ROTATED"; break;
1008 case DMPAPER_JENV_CHOU3_ROTATED: val = "DMPAPER_JENV_CHOU3_ROTATED"; break;
1009 case DMPAPER_JENV_CHOU4_ROTATED: val = "DMPAPER_JENV_CHOU4_ROTATED"; break;
1010 case DMPAPER_B6_JIS: val = "DMPAPER_B6_JIS"; break;
1011 case DMPAPER_B6_JIS_ROTATED: val = "DMPAPER_B6_JIS_ROTATED"; break;
1012 case DMPAPER_12X11: val = "DMPAPER_12X11"; break;
1013 case DMPAPER_JENV_YOU4: val = "DMPAPER_JENV_YOU4"; break;
1014 case DMPAPER_JENV_YOU4_ROTATED: val = "DMPAPER_JENV_YOU4_ROTATED"; break;
1015 case DMPAPER_P16K: val = "DMPAPER_P16K"; break;
1016 case DMPAPER_P32K: val = "DMPAPER_P32K"; break;
1017 case DMPAPER_P32KBIG: val = "DMPAPER_P32KBIG"; break;
1018 case DMPAPER_PENV_1: val = "DMPAPER_PENV_1"; break;
1019 case DMPAPER_PENV_2: val = "DMPAPER_PENV_2"; break;
1020 case DMPAPER_PENV_3: val = "DMPAPER_PENV_3"; break;
1021 case DMPAPER_PENV_4: val = "DMPAPER_PENV_4"; break;
1022 case DMPAPER_PENV_5: val = "DMPAPER_PENV_5"; break;
1023 case DMPAPER_PENV_6: val = "DMPAPER_PENV_6"; break;
1024 case DMPAPER_PENV_7: val = "DMPAPER_PENV_7"; break;
1025 case DMPAPER_PENV_8: val = "DMPAPER_PENV_8"; break;
1026 case DMPAPER_PENV_9: val = "DMPAPER_PENV_9"; break;
1027 case DMPAPER_PENV_10: val = "DMPAPER_PENV_10"; break;
1028 case DMPAPER_P16K_ROTATED: val = "DMPAPER_P16K_ROTATED"; break;
1029 case DMPAPER_P32K_ROTATED: val = "DMPAPER_P32K_ROTATED"; break;
1030 case DMPAPER_P32KBIG_ROTATED: val = "DMPAPER_P32KBIG_ROTATED"; break;
1031 case DMPAPER_PENV_1_ROTATED: val = "DMPAPER_PENV_1_ROTATED"; break;
1032 case DMPAPER_PENV_2_ROTATED: val = "DMPAPER_PENV_2_ROTATED"; break;
1033 case DMPAPER_PENV_3_ROTATED: val = "DMPAPER_PENV_3_ROTATED"; break;
1034 case DMPAPER_PENV_4_ROTATED: val = "DMPAPER_PENV_4_ROTATED"; break;
1035 case DMPAPER_PENV_5_ROTATED: val = "DMPAPER_PENV_5_ROTATED"; break;
1036 case DMPAPER_PENV_6_ROTATED: val = "DMPAPER_PENV_6_ROTATED"; break;
1037 case DMPAPER_PENV_7_ROTATED: val = "DMPAPER_PENV_7_ROTATED"; break;
1038 case DMPAPER_PENV_8_ROTATED: val = "DMPAPER_PENV_8_ROTATED"; break;
1039 case DMPAPER_PENV_9_ROTATED: val = "DMPAPER_PENV_9_ROTATED"; break;
1040 case DMPAPER_PENV_10_ROTATED: val = "DMPAPER_PENV_10_ROTATED"; break;
1042 ndr_print_enum(ndr, name, "ENUM", val, r);
1045 static enum ndr_err_code ndr_push_spoolss_DeviceModeDefaultSource(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeDefaultSource r)
1047 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
1048 return NDR_ERR_SUCCESS;
1051 static enum ndr_err_code ndr_pull_spoolss_DeviceModeDefaultSource(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeDefaultSource *r)
1053 uint16_t v;
1054 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
1055 *r = v;
1056 return NDR_ERR_SUCCESS;
1059 _PUBLIC_ void ndr_print_spoolss_DeviceModeDefaultSource(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDefaultSource r)
1061 const char *val = NULL;
1063 switch (r) {
1064 case DMBIN_UPPER: val = "DMBIN_UPPER"; break;
1065 case DMBIN_LOWER: val = "DMBIN_LOWER"; break;
1066 case DMBIN_MIDDLE: val = "DMBIN_MIDDLE"; break;
1067 case DMBIN_MANUAL: val = "DMBIN_MANUAL"; break;
1068 case DMBIN_ENVELOPE: val = "DMBIN_ENVELOPE"; break;
1069 case DMBIN_ENVMANUAL: val = "DMBIN_ENVMANUAL"; break;
1070 case DMBIN_AUTO: val = "DMBIN_AUTO"; break;
1071 case DMBIN_TRACTOR: val = "DMBIN_TRACTOR"; break;
1072 case DMBIN_SMALLFMT: val = "DMBIN_SMALLFMT"; break;
1073 case DMBIN_LARGEFMT: val = "DMBIN_LARGEFMT"; break;
1074 case DMBIN_LARGECAPACITY: val = "DMBIN_LARGECAPACITY"; break;
1075 case DMBIN_CASSETTE: val = "DMBIN_CASSETTE"; break;
1076 case DMBIN_FORMSOURCE: val = "DMBIN_FORMSOURCE"; break;
1078 ndr_print_enum(ndr, name, "ENUM", val, r);
1081 static enum ndr_err_code ndr_push_spoolss_DeviceModePrintQuality(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModePrintQuality r)
1083 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
1084 return NDR_ERR_SUCCESS;
1087 static enum ndr_err_code ndr_pull_spoolss_DeviceModePrintQuality(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModePrintQuality *r)
1089 uint16_t v;
1090 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
1091 *r = v;
1092 return NDR_ERR_SUCCESS;
1095 _PUBLIC_ void ndr_print_spoolss_DeviceModePrintQuality(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModePrintQuality r)
1097 const char *val = NULL;
1099 switch (r) {
1100 case DMRES_HIGH: val = "DMRES_HIGH"; break;
1101 case DMRES_MEDIUM: val = "DMRES_MEDIUM"; break;
1102 case DMRES_LOW: val = "DMRES_LOW"; break;
1103 case DMRES_DRAFT: val = "DMRES_DRAFT"; break;
1105 ndr_print_enum(ndr, name, "ENUM", val, r);
1108 static enum ndr_err_code ndr_push_spoolss_DeviceModeColor(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeColor r)
1110 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
1111 return NDR_ERR_SUCCESS;
1114 static enum ndr_err_code ndr_pull_spoolss_DeviceModeColor(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeColor *r)
1116 uint16_t v;
1117 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
1118 *r = v;
1119 return NDR_ERR_SUCCESS;
1122 _PUBLIC_ void ndr_print_spoolss_DeviceModeColor(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeColor r)
1124 const char *val = NULL;
1126 switch (r) {
1127 case DMRES_MONOCHROME: val = "DMRES_MONOCHROME"; break;
1128 case DMRES_COLOR: val = "DMRES_COLOR"; break;
1130 ndr_print_enum(ndr, name, "ENUM", val, r);
1133 static enum ndr_err_code ndr_push_spoolss_DeviceModeDuplex(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeDuplex r)
1135 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
1136 return NDR_ERR_SUCCESS;
1139 static enum ndr_err_code ndr_pull_spoolss_DeviceModeDuplex(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeDuplex *r)
1141 uint16_t v;
1142 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
1143 *r = v;
1144 return NDR_ERR_SUCCESS;
1147 _PUBLIC_ void ndr_print_spoolss_DeviceModeDuplex(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDuplex r)
1149 const char *val = NULL;
1151 switch (r) {
1152 case DMDUP_SIMPLEX: val = "DMDUP_SIMPLEX"; break;
1153 case DMDUP_VERTICAL: val = "DMDUP_VERTICAL"; break;
1154 case DMDUP_HORIZONTAL: val = "DMDUP_HORIZONTAL"; break;
1156 ndr_print_enum(ndr, name, "ENUM", val, r);
1159 static enum ndr_err_code ndr_push_spoolss_DeviceModeTTOption(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeTTOption r)
1161 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
1162 return NDR_ERR_SUCCESS;
1165 static enum ndr_err_code ndr_pull_spoolss_DeviceModeTTOption(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeTTOption *r)
1167 uint16_t v;
1168 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
1169 *r = v;
1170 return NDR_ERR_SUCCESS;
1173 _PUBLIC_ void ndr_print_spoolss_DeviceModeTTOption(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeTTOption r)
1175 const char *val = NULL;
1177 switch (r) {
1178 case DMTT_BITMAP: val = "DMTT_BITMAP"; break;
1179 case DMTT_DOWNLOAD: val = "DMTT_DOWNLOAD"; break;
1180 case DMTT_SUBDEV: val = "DMTT_SUBDEV"; break;
1181 case DMTT_DOWNLOAD_OUTLINE: val = "DMTT_DOWNLOAD_OUTLINE"; break;
1183 ndr_print_enum(ndr, name, "ENUM", val, r);
1186 static enum ndr_err_code ndr_push_spoolss_DeviceModeCollate(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeCollate r)
1188 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
1189 return NDR_ERR_SUCCESS;
1192 static enum ndr_err_code ndr_pull_spoolss_DeviceModeCollate(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeCollate *r)
1194 uint16_t v;
1195 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
1196 *r = v;
1197 return NDR_ERR_SUCCESS;
1200 _PUBLIC_ void ndr_print_spoolss_DeviceModeCollate(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeCollate r)
1202 const char *val = NULL;
1204 switch (r) {
1205 case DMCOLLATE_FALSE: val = "DMCOLLATE_FALSE"; break;
1206 case DMCOLLATE_TRUE: val = "DMCOLLATE_TRUE"; break;
1208 ndr_print_enum(ndr, name, "ENUM", val, r);
1211 static enum ndr_err_code ndr_push_spoolss_DeviceModeNUp(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeNUp r)
1213 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
1214 return NDR_ERR_SUCCESS;
1217 static enum ndr_err_code ndr_pull_spoolss_DeviceModeNUp(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeNUp *r)
1219 uint32_t v;
1220 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1221 *r = v;
1222 return NDR_ERR_SUCCESS;
1225 _PUBLIC_ void ndr_print_spoolss_DeviceModeNUp(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeNUp r)
1227 const char *val = NULL;
1229 switch (r) {
1230 case DMNUP_SYSTEM: val = "DMNUP_SYSTEM"; break;
1231 case DMNUP_ONEUP: val = "DMNUP_ONEUP"; break;
1233 ndr_print_enum(ndr, name, "ENUM", val, r);
1236 static enum ndr_err_code ndr_push_spoolss_DeviceModeICMMethod(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeICMMethod r)
1238 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
1239 return NDR_ERR_SUCCESS;
1242 static enum ndr_err_code ndr_pull_spoolss_DeviceModeICMMethod(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeICMMethod *r)
1244 uint32_t v;
1245 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1246 *r = v;
1247 return NDR_ERR_SUCCESS;
1250 _PUBLIC_ void ndr_print_spoolss_DeviceModeICMMethod(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeICMMethod r)
1252 const char *val = NULL;
1254 switch (r) {
1255 case DMICMMETHOD_NONE: val = "DMICMMETHOD_NONE"; break;
1256 case DMICMMETHOD_SYSTEM: val = "DMICMMETHOD_SYSTEM"; break;
1257 case DMICMMETHOD_DRIVER: val = "DMICMMETHOD_DRIVER"; break;
1258 case DMICMMETHOD_DEVICE: val = "DMICMMETHOD_DEVICE"; break;
1260 ndr_print_enum(ndr, name, "ENUM", val, r);
1263 static enum ndr_err_code ndr_push_spoolss_DeviceModeICMIntent(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeICMIntent r)
1265 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
1266 return NDR_ERR_SUCCESS;
1269 static enum ndr_err_code ndr_pull_spoolss_DeviceModeICMIntent(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeICMIntent *r)
1271 uint32_t v;
1272 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1273 *r = v;
1274 return NDR_ERR_SUCCESS;
1277 _PUBLIC_ void ndr_print_spoolss_DeviceModeICMIntent(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeICMIntent r)
1279 const char *val = NULL;
1281 switch (r) {
1282 case DMICM_SATURATE: val = "DMICM_SATURATE"; break;
1283 case DMICM_CONTRAST: val = "DMICM_CONTRAST"; break;
1284 case DMICM_COLORIMETRIC: val = "DMICM_COLORIMETRIC"; break;
1285 case DMICM_ABS_COLORIMETRIC: val = "DMICM_ABS_COLORIMETRIC"; break;
1287 ndr_print_enum(ndr, name, "ENUM", val, r);
1290 static enum ndr_err_code ndr_push_spoolss_DeviceModeMediaType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeMediaType r)
1292 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
1293 return NDR_ERR_SUCCESS;
1296 static enum ndr_err_code ndr_pull_spoolss_DeviceModeMediaType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeMediaType *r)
1298 uint32_t v;
1299 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1300 *r = v;
1301 return NDR_ERR_SUCCESS;
1304 _PUBLIC_ void ndr_print_spoolss_DeviceModeMediaType(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeMediaType r)
1306 const char *val = NULL;
1308 switch (r) {
1309 case DMMEDIA_STANDARD: val = "DMMEDIA_STANDARD"; break;
1310 case DMMEDIA_TRANSPARENCY: val = "DMMEDIA_TRANSPARENCY"; break;
1311 case DMMEDIA_GLOSSY: val = "DMMEDIA_GLOSSY"; break;
1313 ndr_print_enum(ndr, name, "ENUM", val, r);
1316 static enum ndr_err_code ndr_push_spoolss_DeviceModeDitherType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeDitherType r)
1318 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
1319 return NDR_ERR_SUCCESS;
1322 static enum ndr_err_code ndr_pull_spoolss_DeviceModeDitherType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeDitherType *r)
1324 uint32_t v;
1325 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1326 *r = v;
1327 return NDR_ERR_SUCCESS;
1330 _PUBLIC_ void ndr_print_spoolss_DeviceModeDitherType(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDitherType r)
1332 const char *val = NULL;
1334 switch (r) {
1335 case DMDITHER_NONE: val = "DMDITHER_NONE"; break;
1336 case DMDITHER_COARSE: val = "DMDITHER_COARSE"; break;
1337 case DMDITHER_FINE: val = "DMDITHER_FINE"; break;
1338 case DMDITHER_LINEART: val = "DMDITHER_LINEART"; break;
1339 case DMDITHER_ERRORDIFFUSION: val = "DMDITHER_ERRORDIFFUSION"; break;
1340 case DMDITHER_RESERVED6: val = "DMDITHER_RESERVED6"; break;
1341 case DMDITHER_RESERVED7: val = "DMDITHER_RESERVED7"; break;
1342 case DMDITHER_RESERVED8: val = "DMDITHER_RESERVED8"; break;
1343 case DMDITHER_RESERVED9: val = "DMDITHER_RESERVED9"; break;
1344 case DMDITHER_GRAYSCALE: val = "DMDITHER_GRAYSCALE"; break;
1346 ndr_print_enum(ndr, name, "ENUM", val, r);
1349 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeviceMode(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceMode *r)
1351 if (ndr_flags & NDR_SCALARS) {
1352 NDR_CHECK(ndr_push_align(ndr, 4));
1353 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->devicename, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1354 NDR_CHECK(ndr_push_spoolss_DeviceModeSpecVersion(ndr, NDR_SCALARS, r->specversion));
1355 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverversion));
1356 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
1357 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverextra_data.length));
1358 NDR_CHECK(ndr_push_spoolss_DeviceModeFields(ndr, NDR_SCALARS, r->fields));
1359 NDR_CHECK(ndr_push_spoolss_DeviceModeOrientation(ndr, NDR_SCALARS, r->orientation));
1360 NDR_CHECK(ndr_push_spoolss_DeviceModePaperSize(ndr, NDR_SCALARS, r->papersize));
1361 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperlength));
1362 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperwidth));
1363 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->scale));
1364 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->copies));
1365 NDR_CHECK(ndr_push_spoolss_DeviceModeDefaultSource(ndr, NDR_SCALARS, r->defaultsource));
1366 NDR_CHECK(ndr_push_spoolss_DeviceModePrintQuality(ndr, NDR_SCALARS, r->printquality));
1367 NDR_CHECK(ndr_push_spoolss_DeviceModeColor(ndr, NDR_SCALARS, r->color));
1368 NDR_CHECK(ndr_push_spoolss_DeviceModeDuplex(ndr, NDR_SCALARS, r->duplex));
1369 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->yresolution));
1370 NDR_CHECK(ndr_push_spoolss_DeviceModeTTOption(ndr, NDR_SCALARS, r->ttoption));
1371 NDR_CHECK(ndr_push_spoolss_DeviceModeCollate(ndr, NDR_SCALARS, r->collate));
1372 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1373 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logpixels));
1374 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bitsperpel));
1375 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelswidth));
1376 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelsheight));
1377 NDR_CHECK(ndr_push_spoolss_DeviceModeNUp(ndr, NDR_SCALARS, r->displayflags));
1378 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayfrequency));
1379 NDR_CHECK(ndr_push_spoolss_DeviceModeICMMethod(ndr, NDR_SCALARS, r->icmmethod));
1380 NDR_CHECK(ndr_push_spoolss_DeviceModeICMIntent(ndr, NDR_SCALARS, r->icmintent));
1381 NDR_CHECK(ndr_push_spoolss_DeviceModeMediaType(ndr, NDR_SCALARS, r->mediatype));
1382 NDR_CHECK(ndr_push_spoolss_DeviceModeDitherType(ndr, NDR_SCALARS, r->dithertype));
1383 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved1));
1384 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
1385 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningwidth));
1386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningheight));
1388 uint32_t _flags_save_DATA_BLOB = ndr->flags;
1389 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1391 struct ndr_push *_ndr_driverextra_data;
1392 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->driverextra_data.length));
1393 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, r->driverextra_data));
1394 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_driverextra_data, 0, r->driverextra_data.length));
1396 ndr->flags = _flags_save_DATA_BLOB;
1398 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1400 if (ndr_flags & NDR_BUFFERS) {
1402 return NDR_ERR_SUCCESS;
1405 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeviceMode(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceMode *r)
1407 if (ndr_flags & NDR_SCALARS) {
1408 NDR_CHECK(ndr_pull_align(ndr, 4));
1409 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->devicename, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1410 NDR_CHECK(ndr_pull_spoolss_DeviceModeSpecVersion(ndr, NDR_SCALARS, &r->specversion));
1411 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->driverversion));
1412 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
1413 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->__driverextra_length));
1414 NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr, NDR_SCALARS, &r->fields));
1415 NDR_CHECK(ndr_pull_spoolss_DeviceModeOrientation(ndr, NDR_SCALARS, &r->orientation));
1416 NDR_CHECK(ndr_pull_spoolss_DeviceModePaperSize(ndr, NDR_SCALARS, &r->papersize));
1417 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperlength));
1418 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperwidth));
1419 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->scale));
1420 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->copies));
1421 NDR_CHECK(ndr_pull_spoolss_DeviceModeDefaultSource(ndr, NDR_SCALARS, &r->defaultsource));
1422 NDR_CHECK(ndr_pull_spoolss_DeviceModePrintQuality(ndr, NDR_SCALARS, &r->printquality));
1423 NDR_CHECK(ndr_pull_spoolss_DeviceModeColor(ndr, NDR_SCALARS, &r->color));
1424 NDR_CHECK(ndr_pull_spoolss_DeviceModeDuplex(ndr, NDR_SCALARS, &r->duplex));
1425 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->yresolution));
1426 NDR_CHECK(ndr_pull_spoolss_DeviceModeTTOption(ndr, NDR_SCALARS, &r->ttoption));
1427 NDR_CHECK(ndr_pull_spoolss_DeviceModeCollate(ndr, NDR_SCALARS, &r->collate));
1428 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1429 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logpixels));
1430 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bitsperpel));
1431 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelswidth));
1432 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelsheight));
1433 NDR_CHECK(ndr_pull_spoolss_DeviceModeNUp(ndr, NDR_SCALARS, &r->displayflags));
1434 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayfrequency));
1435 NDR_CHECK(ndr_pull_spoolss_DeviceModeICMMethod(ndr, NDR_SCALARS, &r->icmmethod));
1436 NDR_CHECK(ndr_pull_spoolss_DeviceModeICMIntent(ndr, NDR_SCALARS, &r->icmintent));
1437 NDR_CHECK(ndr_pull_spoolss_DeviceModeMediaType(ndr, NDR_SCALARS, &r->mediatype));
1438 NDR_CHECK(ndr_pull_spoolss_DeviceModeDitherType(ndr, NDR_SCALARS, &r->dithertype));
1439 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
1440 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
1441 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningwidth));
1442 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningheight));
1444 uint32_t _flags_save_DATA_BLOB = ndr->flags;
1445 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1447 struct ndr_pull *_ndr_driverextra_data;
1448 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->__driverextra_length));
1449 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, &r->driverextra_data));
1450 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_driverextra_data, 0, r->__driverextra_length));
1452 ndr->flags = _flags_save_DATA_BLOB;
1454 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1456 if (ndr_flags & NDR_BUFFERS) {
1458 return NDR_ERR_SUCCESS;
1461 _PUBLIC_ void ndr_print_spoolss_DeviceMode(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceMode *r)
1463 ndr_print_struct(ndr, name, "spoolss_DeviceMode");
1464 ndr->depth++;
1465 ndr_print_string(ndr, "devicename", r->devicename);
1466 ndr_print_spoolss_DeviceModeSpecVersion(ndr, "specversion", r->specversion);
1467 ndr_print_uint16(ndr, "driverversion", r->driverversion);
1468 ndr_print_uint16(ndr, "size", r->size);
1469 ndr_print_uint16(ndr, "__driverextra_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->driverextra_data.length:r->__driverextra_length);
1470 ndr_print_spoolss_DeviceModeFields(ndr, "fields", r->fields);
1471 ndr_print_spoolss_DeviceModeOrientation(ndr, "orientation", r->orientation);
1472 ndr_print_spoolss_DeviceModePaperSize(ndr, "papersize", r->papersize);
1473 ndr_print_uint16(ndr, "paperlength", r->paperlength);
1474 ndr_print_uint16(ndr, "paperwidth", r->paperwidth);
1475 ndr_print_uint16(ndr, "scale", r->scale);
1476 ndr_print_uint16(ndr, "copies", r->copies);
1477 ndr_print_spoolss_DeviceModeDefaultSource(ndr, "defaultsource", r->defaultsource);
1478 ndr_print_spoolss_DeviceModePrintQuality(ndr, "printquality", r->printquality);
1479 ndr_print_spoolss_DeviceModeColor(ndr, "color", r->color);
1480 ndr_print_spoolss_DeviceModeDuplex(ndr, "duplex", r->duplex);
1481 ndr_print_uint16(ndr, "yresolution", r->yresolution);
1482 ndr_print_spoolss_DeviceModeTTOption(ndr, "ttoption", r->ttoption);
1483 ndr_print_spoolss_DeviceModeCollate(ndr, "collate", r->collate);
1484 ndr_print_string(ndr, "formname", r->formname);
1485 ndr_print_uint16(ndr, "logpixels", r->logpixels);
1486 ndr_print_uint32(ndr, "bitsperpel", r->bitsperpel);
1487 ndr_print_uint32(ndr, "pelswidth", r->pelswidth);
1488 ndr_print_uint32(ndr, "pelsheight", r->pelsheight);
1489 ndr_print_spoolss_DeviceModeNUp(ndr, "displayflags", r->displayflags);
1490 ndr_print_uint32(ndr, "displayfrequency", r->displayfrequency);
1491 ndr_print_spoolss_DeviceModeICMMethod(ndr, "icmmethod", r->icmmethod);
1492 ndr_print_spoolss_DeviceModeICMIntent(ndr, "icmintent", r->icmintent);
1493 ndr_print_spoolss_DeviceModeMediaType(ndr, "mediatype", r->mediatype);
1494 ndr_print_spoolss_DeviceModeDitherType(ndr, "dithertype", r->dithertype);
1495 ndr_print_uint32(ndr, "reserved1", r->reserved1);
1496 ndr_print_uint32(ndr, "reserved2", r->reserved2);
1497 ndr_print_uint32(ndr, "panningwidth", r->panningwidth);
1498 ndr_print_uint32(ndr, "panningheight", r->panningheight);
1499 ndr_print_DATA_BLOB(ndr, "driverextra_data", r->driverextra_data);
1500 ndr->depth--;
1503 _PUBLIC_ size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode *r, struct smb_iconv_convenience *ic, int flags)
1505 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DeviceMode, ic);
1508 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1510 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1511 return NDR_ERR_SUCCESS;
1514 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1516 uint32_t v;
1517 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1518 *r = v;
1519 return NDR_ERR_SUCCESS;
1522 _PUBLIC_ void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print *ndr, const char *name, uint32_t r)
1524 ndr_print_uint32(ndr, name, r);
1525 ndr->depth++;
1526 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT, r);
1527 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL, r);
1528 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS, r);
1529 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE, r);
1530 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME, r);
1531 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE, r);
1532 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED, r);
1533 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK, r);
1534 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND, r);
1535 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER, r);
1536 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1, r);
1537 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2, r);
1538 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3, r);
1539 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4, r);
1540 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5, r);
1541 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6, r);
1542 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7, r);
1543 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8, r);
1544 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE, r);
1545 ndr->depth--;
1548 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1550 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1551 return NDR_ERR_SUCCESS;
1554 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1556 uint32_t v;
1557 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1558 *r = v;
1559 return NDR_ERR_SUCCESS;
1562 _PUBLIC_ void ndr_print_spoolss_PrinterAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
1564 ndr_print_uint32(ndr, name, r);
1565 ndr->depth++;
1566 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED, r);
1567 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT, r);
1568 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT, r);
1569 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED, r);
1570 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK, r);
1571 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN, r);
1572 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL, r);
1573 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ, r);
1574 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS, r);
1575 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST, r);
1576 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE, r);
1577 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI, r);
1578 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY, r);
1579 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED, r);
1580 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX, r);
1581 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS, r);
1582 ndr->depth--;
1585 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo1 *r)
1587 if (ndr_flags & NDR_SCALARS) {
1588 NDR_CHECK(ndr_push_align(ndr, 5));
1589 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->flags));
1591 uint32_t _flags_save_string = ndr->flags;
1592 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1593 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
1594 ndr->flags = _flags_save_string;
1597 uint32_t _flags_save_string = ndr->flags;
1598 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1599 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name));
1600 ndr->flags = _flags_save_string;
1603 uint32_t _flags_save_string = ndr->flags;
1604 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1605 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
1606 ndr->flags = _flags_save_string;
1608 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1610 if (ndr_flags & NDR_BUFFERS) {
1612 uint32_t _flags_save_string = ndr->flags;
1613 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1614 if (r->description) {
1615 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->description));
1616 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
1617 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->description));
1619 ndr->flags = _flags_save_string;
1622 uint32_t _flags_save_string = ndr->flags;
1623 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1624 if (r->name) {
1625 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->name));
1626 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name));
1627 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->name));
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->comment) {
1635 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->comment));
1636 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
1637 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->comment));
1639 ndr->flags = _flags_save_string;
1642 return NDR_ERR_SUCCESS;
1645 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo1 *r)
1647 uint32_t _ptr_description;
1648 TALLOC_CTX *_mem_save_description_0;
1649 uint32_t _ptr_name;
1650 TALLOC_CTX *_mem_save_name_0;
1651 uint32_t _ptr_comment;
1652 TALLOC_CTX *_mem_save_comment_0;
1653 if (ndr_flags & NDR_SCALARS) {
1654 NDR_CHECK(ndr_pull_align(ndr, 5));
1655 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->flags));
1657 uint32_t _flags_save_string = ndr->flags;
1658 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1659 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
1660 if (_ptr_description) {
1661 NDR_PULL_ALLOC(ndr, r->description);
1662 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
1663 } else {
1664 r->description = NULL;
1666 ndr->flags = _flags_save_string;
1669 uint32_t _flags_save_string = ndr->flags;
1670 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1671 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
1672 if (_ptr_name) {
1673 NDR_PULL_ALLOC(ndr, r->name);
1674 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name, _ptr_name));
1675 } else {
1676 r->name = NULL;
1678 ndr->flags = _flags_save_string;
1681 uint32_t _flags_save_string = ndr->flags;
1682 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1683 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1684 if (_ptr_comment) {
1685 NDR_PULL_ALLOC(ndr, r->comment);
1686 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1687 } else {
1688 r->comment = NULL;
1690 ndr->flags = _flags_save_string;
1692 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1694 if (ndr_flags & NDR_BUFFERS) {
1696 uint32_t _flags_save_string = ndr->flags;
1697 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1698 if (r->description) {
1699 uint32_t _relative_save_offset;
1700 _relative_save_offset = ndr->offset;
1701 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
1702 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
1703 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
1704 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
1705 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
1706 if (ndr->offset > ndr->relative_highest_offset) {
1707 ndr->relative_highest_offset = ndr->offset;
1709 ndr->offset = _relative_save_offset;
1711 ndr->flags = _flags_save_string;
1714 uint32_t _flags_save_string = ndr->flags;
1715 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1716 if (r->name) {
1717 uint32_t _relative_save_offset;
1718 _relative_save_offset = ndr->offset;
1719 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name));
1720 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1721 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
1722 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name));
1723 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
1724 if (ndr->offset > ndr->relative_highest_offset) {
1725 ndr->relative_highest_offset = ndr->offset;
1727 ndr->offset = _relative_save_offset;
1729 ndr->flags = _flags_save_string;
1732 uint32_t _flags_save_string = ndr->flags;
1733 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1734 if (r->comment) {
1735 uint32_t _relative_save_offset;
1736 _relative_save_offset = ndr->offset;
1737 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
1738 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
1739 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
1740 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
1741 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
1742 if (ndr->offset > ndr->relative_highest_offset) {
1743 ndr->relative_highest_offset = ndr->offset;
1745 ndr->offset = _relative_save_offset;
1747 ndr->flags = _flags_save_string;
1750 return NDR_ERR_SUCCESS;
1753 _PUBLIC_ void ndr_print_spoolss_PrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo1 *r)
1755 ndr_print_struct(ndr, name, "spoolss_PrinterInfo1");
1756 ndr->depth++;
1757 ndr_print_spoolss_PrinterAttributes(ndr, "flags", r->flags);
1758 ndr_print_ptr(ndr, "description", r->description);
1759 ndr->depth++;
1760 if (r->description) {
1761 ndr_print_string(ndr, "description", r->description);
1763 ndr->depth--;
1764 ndr_print_ptr(ndr, "name", r->name);
1765 ndr->depth++;
1766 if (r->name) {
1767 ndr_print_string(ndr, "name", r->name);
1769 ndr->depth--;
1770 ndr_print_ptr(ndr, "comment", r->comment);
1771 ndr->depth++;
1772 if (r->comment) {
1773 ndr_print_string(ndr, "comment", r->comment);
1775 ndr->depth--;
1776 ndr->depth--;
1779 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo1(const struct spoolss_PrinterInfo1 *r, struct smb_iconv_convenience *ic, int flags)
1781 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo1, ic);
1784 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo2 *r)
1786 uint32_t _ptr_servername;
1787 TALLOC_CTX *_mem_save_servername_0;
1788 uint32_t _ptr_printername;
1789 TALLOC_CTX *_mem_save_printername_0;
1790 uint32_t _ptr_sharename;
1791 TALLOC_CTX *_mem_save_sharename_0;
1792 uint32_t _ptr_portname;
1793 TALLOC_CTX *_mem_save_portname_0;
1794 uint32_t _ptr_drivername;
1795 TALLOC_CTX *_mem_save_drivername_0;
1796 uint32_t _ptr_comment;
1797 TALLOC_CTX *_mem_save_comment_0;
1798 uint32_t _ptr_location;
1799 TALLOC_CTX *_mem_save_location_0;
1800 uint32_t _ptr_devmode;
1801 TALLOC_CTX *_mem_save_devmode_0;
1802 uint32_t _ptr_sepfile;
1803 TALLOC_CTX *_mem_save_sepfile_0;
1804 uint32_t _ptr_printprocessor;
1805 TALLOC_CTX *_mem_save_printprocessor_0;
1806 uint32_t _ptr_datatype;
1807 TALLOC_CTX *_mem_save_datatype_0;
1808 uint32_t _ptr_parameters;
1809 TALLOC_CTX *_mem_save_parameters_0;
1810 uint32_t _ptr_secdesc;
1811 TALLOC_CTX *_mem_save_secdesc_0;
1812 if (ndr_flags & NDR_SCALARS) {
1813 NDR_CHECK(ndr_pull_align(ndr, 5));
1815 uint32_t _flags_save_string = ndr->flags;
1816 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1817 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1818 if (_ptr_servername) {
1819 NDR_PULL_ALLOC(ndr, r->servername);
1820 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1821 } else {
1822 r->servername = NULL;
1824 ndr->flags = _flags_save_string;
1827 uint32_t _flags_save_string = ndr->flags;
1828 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1829 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1830 if (_ptr_printername) {
1831 NDR_PULL_ALLOC(ndr, r->printername);
1832 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1833 } else {
1834 r->printername = NULL;
1836 ndr->flags = _flags_save_string;
1839 uint32_t _flags_save_string = ndr->flags;
1840 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1841 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
1842 if (_ptr_sharename) {
1843 NDR_PULL_ALLOC(ndr, r->sharename);
1844 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sharename, _ptr_sharename));
1845 } else {
1846 r->sharename = NULL;
1848 ndr->flags = _flags_save_string;
1851 uint32_t _flags_save_string = ndr->flags;
1852 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1853 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1854 if (_ptr_portname) {
1855 NDR_PULL_ALLOC(ndr, r->portname);
1856 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1857 } else {
1858 r->portname = NULL;
1860 ndr->flags = _flags_save_string;
1863 uint32_t _flags_save_string = ndr->flags;
1864 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1865 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
1866 if (_ptr_drivername) {
1867 NDR_PULL_ALLOC(ndr, r->drivername);
1868 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->drivername, _ptr_drivername));
1869 } else {
1870 r->drivername = NULL;
1872 ndr->flags = _flags_save_string;
1875 uint32_t _flags_save_string = ndr->flags;
1876 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1877 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1878 if (_ptr_comment) {
1879 NDR_PULL_ALLOC(ndr, r->comment);
1880 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1881 } else {
1882 r->comment = NULL;
1884 ndr->flags = _flags_save_string;
1887 uint32_t _flags_save_string = ndr->flags;
1888 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1889 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
1890 if (_ptr_location) {
1891 NDR_PULL_ALLOC(ndr, r->location);
1892 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->location, _ptr_location));
1893 } else {
1894 r->location = NULL;
1896 ndr->flags = _flags_save_string;
1899 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
1900 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1901 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
1902 if (_ptr_devmode) {
1903 NDR_PULL_ALLOC(ndr, r->devmode);
1904 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
1905 } else {
1906 r->devmode = NULL;
1908 ndr->flags = _flags_save_spoolss_DeviceMode;
1911 uint32_t _flags_save_string = ndr->flags;
1912 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1913 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
1914 if (_ptr_sepfile) {
1915 NDR_PULL_ALLOC(ndr, r->sepfile);
1916 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sepfile, _ptr_sepfile));
1917 } else {
1918 r->sepfile = NULL;
1920 ndr->flags = _flags_save_string;
1923 uint32_t _flags_save_string = ndr->flags;
1924 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1925 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
1926 if (_ptr_printprocessor) {
1927 NDR_PULL_ALLOC(ndr, r->printprocessor);
1928 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printprocessor, _ptr_printprocessor));
1929 } else {
1930 r->printprocessor = NULL;
1932 ndr->flags = _flags_save_string;
1935 uint32_t _flags_save_string = ndr->flags;
1936 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1937 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
1938 if (_ptr_datatype) {
1939 NDR_PULL_ALLOC(ndr, r->datatype);
1940 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->datatype, _ptr_datatype));
1941 } else {
1942 r->datatype = NULL;
1944 ndr->flags = _flags_save_string;
1947 uint32_t _flags_save_string = ndr->flags;
1948 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1949 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
1950 if (_ptr_parameters) {
1951 NDR_PULL_ALLOC(ndr, r->parameters);
1952 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
1953 } else {
1954 r->parameters = NULL;
1956 ndr->flags = _flags_save_string;
1959 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
1960 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1961 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1962 if (_ptr_secdesc) {
1963 NDR_PULL_ALLOC(ndr, r->secdesc);
1964 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1965 } else {
1966 r->secdesc = NULL;
1968 ndr->flags = _flags_save_spoolss_security_descriptor;
1970 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1971 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
1972 if (r->priority > 99) {
1973 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
1975 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
1976 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
1977 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
1978 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
1979 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
1980 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
1981 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1983 if (ndr_flags & NDR_BUFFERS) {
1985 uint32_t _flags_save_string = ndr->flags;
1986 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1987 if (r->servername) {
1988 uint32_t _relative_save_offset;
1989 _relative_save_offset = ndr->offset;
1990 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1991 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1992 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1993 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1994 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
1995 if (ndr->offset > ndr->relative_highest_offset) {
1996 ndr->relative_highest_offset = ndr->offset;
1998 ndr->offset = _relative_save_offset;
2000 ndr->flags = _flags_save_string;
2003 uint32_t _flags_save_string = ndr->flags;
2004 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2005 if (r->printername) {
2006 uint32_t _relative_save_offset;
2007 _relative_save_offset = ndr->offset;
2008 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
2009 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2010 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
2011 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
2012 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
2013 if (ndr->offset > ndr->relative_highest_offset) {
2014 ndr->relative_highest_offset = ndr->offset;
2016 ndr->offset = _relative_save_offset;
2018 ndr->flags = _flags_save_string;
2021 uint32_t _flags_save_string = ndr->flags;
2022 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2023 if (r->sharename) {
2024 uint32_t _relative_save_offset;
2025 _relative_save_offset = ndr->offset;
2026 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sharename));
2027 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
2028 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
2029 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sharename));
2030 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
2031 if (ndr->offset > ndr->relative_highest_offset) {
2032 ndr->relative_highest_offset = ndr->offset;
2034 ndr->offset = _relative_save_offset;
2036 ndr->flags = _flags_save_string;
2039 uint32_t _flags_save_string = ndr->flags;
2040 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2041 if (r->portname) {
2042 uint32_t _relative_save_offset;
2043 _relative_save_offset = ndr->offset;
2044 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
2045 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2046 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
2047 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
2048 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
2049 if (ndr->offset > ndr->relative_highest_offset) {
2050 ndr->relative_highest_offset = ndr->offset;
2052 ndr->offset = _relative_save_offset;
2054 ndr->flags = _flags_save_string;
2057 uint32_t _flags_save_string = ndr->flags;
2058 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2059 if (r->drivername) {
2060 uint32_t _relative_save_offset;
2061 _relative_save_offset = ndr->offset;
2062 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->drivername));
2063 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2064 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
2065 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->drivername));
2066 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
2067 if (ndr->offset > ndr->relative_highest_offset) {
2068 ndr->relative_highest_offset = ndr->offset;
2070 ndr->offset = _relative_save_offset;
2072 ndr->flags = _flags_save_string;
2075 uint32_t _flags_save_string = ndr->flags;
2076 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2077 if (r->comment) {
2078 uint32_t _relative_save_offset;
2079 _relative_save_offset = ndr->offset;
2080 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
2081 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
2082 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
2083 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
2084 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
2085 if (ndr->offset > ndr->relative_highest_offset) {
2086 ndr->relative_highest_offset = ndr->offset;
2088 ndr->offset = _relative_save_offset;
2090 ndr->flags = _flags_save_string;
2093 uint32_t _flags_save_string = ndr->flags;
2094 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2095 if (r->location) {
2096 uint32_t _relative_save_offset;
2097 _relative_save_offset = ndr->offset;
2098 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->location));
2099 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
2100 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
2101 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->location));
2102 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
2103 if (ndr->offset > ndr->relative_highest_offset) {
2104 ndr->relative_highest_offset = ndr->offset;
2106 ndr->offset = _relative_save_offset;
2108 ndr->flags = _flags_save_string;
2111 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2112 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2113 if (r->devmode) {
2114 uint32_t _relative_save_offset;
2115 _relative_save_offset = ndr->offset;
2116 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
2117 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2118 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2120 struct ndr_pull *_ndr_devmode;
2121 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2122 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2123 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
2125 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2126 if (ndr->offset > ndr->relative_highest_offset) {
2127 ndr->relative_highest_offset = ndr->offset;
2129 ndr->offset = _relative_save_offset;
2131 ndr->flags = _flags_save_spoolss_DeviceMode;
2134 uint32_t _flags_save_string = ndr->flags;
2135 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2136 if (r->sepfile) {
2137 uint32_t _relative_save_offset;
2138 _relative_save_offset = ndr->offset;
2139 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sepfile));
2140 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
2141 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
2142 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sepfile));
2143 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
2144 if (ndr->offset > ndr->relative_highest_offset) {
2145 ndr->relative_highest_offset = ndr->offset;
2147 ndr->offset = _relative_save_offset;
2149 ndr->flags = _flags_save_string;
2152 uint32_t _flags_save_string = ndr->flags;
2153 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2154 if (r->printprocessor) {
2155 uint32_t _relative_save_offset;
2156 _relative_save_offset = ndr->offset;
2157 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printprocessor));
2158 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
2159 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
2160 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printprocessor));
2161 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
2162 if (ndr->offset > ndr->relative_highest_offset) {
2163 ndr->relative_highest_offset = ndr->offset;
2165 ndr->offset = _relative_save_offset;
2167 ndr->flags = _flags_save_string;
2170 uint32_t _flags_save_string = ndr->flags;
2171 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2172 if (r->datatype) {
2173 uint32_t _relative_save_offset;
2174 _relative_save_offset = ndr->offset;
2175 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->datatype));
2176 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
2177 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
2178 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->datatype));
2179 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
2180 if (ndr->offset > ndr->relative_highest_offset) {
2181 ndr->relative_highest_offset = ndr->offset;
2183 ndr->offset = _relative_save_offset;
2185 ndr->flags = _flags_save_string;
2188 uint32_t _flags_save_string = ndr->flags;
2189 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2190 if (r->parameters) {
2191 uint32_t _relative_save_offset;
2192 _relative_save_offset = ndr->offset;
2193 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
2194 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
2195 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
2196 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
2197 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
2198 if (ndr->offset > ndr->relative_highest_offset) {
2199 ndr->relative_highest_offset = ndr->offset;
2201 ndr->offset = _relative_save_offset;
2203 ndr->flags = _flags_save_string;
2206 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
2207 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2208 if (r->secdesc) {
2209 uint32_t _relative_save_offset;
2210 _relative_save_offset = ndr->offset;
2211 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
2212 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
2213 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
2215 struct ndr_pull *_ndr_secdesc;
2216 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
2217 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2218 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
2220 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
2221 if (ndr->offset > ndr->relative_highest_offset) {
2222 ndr->relative_highest_offset = ndr->offset;
2224 ndr->offset = _relative_save_offset;
2226 ndr->flags = _flags_save_spoolss_security_descriptor;
2229 return NDR_ERR_SUCCESS;
2232 _PUBLIC_ void ndr_print_spoolss_PrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo2 *r)
2234 ndr_print_struct(ndr, name, "spoolss_PrinterInfo2");
2235 ndr->depth++;
2236 ndr_print_ptr(ndr, "servername", r->servername);
2237 ndr->depth++;
2238 if (r->servername) {
2239 ndr_print_string(ndr, "servername", r->servername);
2241 ndr->depth--;
2242 ndr_print_ptr(ndr, "printername", r->printername);
2243 ndr->depth++;
2244 if (r->printername) {
2245 ndr_print_string(ndr, "printername", r->printername);
2247 ndr->depth--;
2248 ndr_print_ptr(ndr, "sharename", r->sharename);
2249 ndr->depth++;
2250 if (r->sharename) {
2251 ndr_print_string(ndr, "sharename", r->sharename);
2253 ndr->depth--;
2254 ndr_print_ptr(ndr, "portname", r->portname);
2255 ndr->depth++;
2256 if (r->portname) {
2257 ndr_print_string(ndr, "portname", r->portname);
2259 ndr->depth--;
2260 ndr_print_ptr(ndr, "drivername", r->drivername);
2261 ndr->depth++;
2262 if (r->drivername) {
2263 ndr_print_string(ndr, "drivername", r->drivername);
2265 ndr->depth--;
2266 ndr_print_ptr(ndr, "comment", r->comment);
2267 ndr->depth++;
2268 if (r->comment) {
2269 ndr_print_string(ndr, "comment", r->comment);
2271 ndr->depth--;
2272 ndr_print_ptr(ndr, "location", r->location);
2273 ndr->depth++;
2274 if (r->location) {
2275 ndr_print_string(ndr, "location", r->location);
2277 ndr->depth--;
2278 ndr_print_ptr(ndr, "devmode", r->devmode);
2279 ndr->depth++;
2280 if (r->devmode) {
2281 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2283 ndr->depth--;
2284 ndr_print_ptr(ndr, "sepfile", r->sepfile);
2285 ndr->depth++;
2286 if (r->sepfile) {
2287 ndr_print_string(ndr, "sepfile", r->sepfile);
2289 ndr->depth--;
2290 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
2291 ndr->depth++;
2292 if (r->printprocessor) {
2293 ndr_print_string(ndr, "printprocessor", r->printprocessor);
2295 ndr->depth--;
2296 ndr_print_ptr(ndr, "datatype", r->datatype);
2297 ndr->depth++;
2298 if (r->datatype) {
2299 ndr_print_string(ndr, "datatype", r->datatype);
2301 ndr->depth--;
2302 ndr_print_ptr(ndr, "parameters", r->parameters);
2303 ndr->depth++;
2304 if (r->parameters) {
2305 ndr_print_string(ndr, "parameters", r->parameters);
2307 ndr->depth--;
2308 ndr_print_ptr(ndr, "secdesc", r->secdesc);
2309 ndr->depth++;
2310 if (r->secdesc) {
2311 ndr_print_spoolss_security_descriptor(ndr, "secdesc", r->secdesc);
2313 ndr->depth--;
2314 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2315 ndr_print_uint32(ndr, "priority", r->priority);
2316 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
2317 ndr_print_uint32(ndr, "starttime", r->starttime);
2318 ndr_print_uint32(ndr, "untiltime", r->untiltime);
2319 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
2320 ndr_print_uint32(ndr, "cjobs", r->cjobs);
2321 ndr_print_uint32(ndr, "averageppm", r->averageppm);
2322 ndr->depth--;
2325 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo2(const struct spoolss_PrinterInfo2 *r, struct smb_iconv_convenience *ic, int flags)
2327 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo2, ic);
2330 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo3 *r)
2332 if (ndr_flags & NDR_SCALARS) {
2333 NDR_CHECK(ndr_push_align(ndr, 5));
2335 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
2336 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2337 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
2338 ndr->flags = _flags_save_spoolss_security_descriptor;
2340 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2342 if (ndr_flags & NDR_BUFFERS) {
2344 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
2345 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2346 if (r->secdesc) {
2347 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->secdesc));
2349 struct ndr_push *_ndr_secdesc;
2350 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
2351 NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2352 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
2354 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->secdesc));
2356 ndr->flags = _flags_save_spoolss_security_descriptor;
2359 return NDR_ERR_SUCCESS;
2362 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo3 *r)
2364 uint32_t _ptr_secdesc;
2365 TALLOC_CTX *_mem_save_secdesc_0;
2366 if (ndr_flags & NDR_SCALARS) {
2367 NDR_CHECK(ndr_pull_align(ndr, 5));
2369 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
2370 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2371 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
2372 if (_ptr_secdesc) {
2373 NDR_PULL_ALLOC(ndr, r->secdesc);
2374 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
2375 } else {
2376 r->secdesc = NULL;
2378 ndr->flags = _flags_save_spoolss_security_descriptor;
2380 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2382 if (ndr_flags & NDR_BUFFERS) {
2384 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
2385 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2386 if (r->secdesc) {
2387 uint32_t _relative_save_offset;
2388 _relative_save_offset = ndr->offset;
2389 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
2390 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
2391 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
2393 struct ndr_pull *_ndr_secdesc;
2394 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
2395 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2396 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
2398 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
2399 if (ndr->offset > ndr->relative_highest_offset) {
2400 ndr->relative_highest_offset = ndr->offset;
2402 ndr->offset = _relative_save_offset;
2404 ndr->flags = _flags_save_spoolss_security_descriptor;
2407 return NDR_ERR_SUCCESS;
2410 _PUBLIC_ void ndr_print_spoolss_PrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo3 *r)
2412 ndr_print_struct(ndr, name, "spoolss_PrinterInfo3");
2413 ndr->depth++;
2414 ndr_print_ptr(ndr, "secdesc", r->secdesc);
2415 ndr->depth++;
2416 if (r->secdesc) {
2417 ndr_print_spoolss_security_descriptor(ndr, "secdesc", r->secdesc);
2419 ndr->depth--;
2420 ndr->depth--;
2423 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo3(const struct spoolss_PrinterInfo3 *r, struct smb_iconv_convenience *ic, int flags)
2425 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo3, ic);
2428 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo4 *r)
2430 if (ndr_flags & NDR_SCALARS) {
2431 NDR_CHECK(ndr_push_align(ndr, 5));
2433 uint32_t _flags_save_string = ndr->flags;
2434 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2435 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
2436 ndr->flags = _flags_save_string;
2439 uint32_t _flags_save_string = ndr->flags;
2440 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2441 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
2442 ndr->flags = _flags_save_string;
2444 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
2445 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2447 if (ndr_flags & NDR_BUFFERS) {
2449 uint32_t _flags_save_string = ndr->flags;
2450 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2451 if (r->printername) {
2452 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printername));
2453 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
2454 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printername));
2456 ndr->flags = _flags_save_string;
2459 uint32_t _flags_save_string = ndr->flags;
2460 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2461 if (r->servername) {
2462 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->servername));
2463 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
2464 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->servername));
2466 ndr->flags = _flags_save_string;
2469 return NDR_ERR_SUCCESS;
2472 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo4 *r)
2474 uint32_t _ptr_printername;
2475 TALLOC_CTX *_mem_save_printername_0;
2476 uint32_t _ptr_servername;
2477 TALLOC_CTX *_mem_save_servername_0;
2478 if (ndr_flags & NDR_SCALARS) {
2479 NDR_CHECK(ndr_pull_align(ndr, 5));
2481 uint32_t _flags_save_string = ndr->flags;
2482 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2483 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
2484 if (_ptr_printername) {
2485 NDR_PULL_ALLOC(ndr, r->printername);
2486 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
2487 } else {
2488 r->printername = NULL;
2490 ndr->flags = _flags_save_string;
2493 uint32_t _flags_save_string = ndr->flags;
2494 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2495 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
2496 if (_ptr_servername) {
2497 NDR_PULL_ALLOC(ndr, r->servername);
2498 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
2499 } else {
2500 r->servername = NULL;
2502 ndr->flags = _flags_save_string;
2504 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
2505 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2507 if (ndr_flags & NDR_BUFFERS) {
2509 uint32_t _flags_save_string = ndr->flags;
2510 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2511 if (r->printername) {
2512 uint32_t _relative_save_offset;
2513 _relative_save_offset = ndr->offset;
2514 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
2515 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2516 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
2517 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
2518 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
2519 if (ndr->offset > ndr->relative_highest_offset) {
2520 ndr->relative_highest_offset = ndr->offset;
2522 ndr->offset = _relative_save_offset;
2524 ndr->flags = _flags_save_string;
2527 uint32_t _flags_save_string = ndr->flags;
2528 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2529 if (r->servername) {
2530 uint32_t _relative_save_offset;
2531 _relative_save_offset = ndr->offset;
2532 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
2533 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2534 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
2535 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
2536 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
2537 if (ndr->offset > ndr->relative_highest_offset) {
2538 ndr->relative_highest_offset = ndr->offset;
2540 ndr->offset = _relative_save_offset;
2542 ndr->flags = _flags_save_string;
2545 return NDR_ERR_SUCCESS;
2548 _PUBLIC_ void ndr_print_spoolss_PrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo4 *r)
2550 ndr_print_struct(ndr, name, "spoolss_PrinterInfo4");
2551 ndr->depth++;
2552 ndr_print_ptr(ndr, "printername", r->printername);
2553 ndr->depth++;
2554 if (r->printername) {
2555 ndr_print_string(ndr, "printername", r->printername);
2557 ndr->depth--;
2558 ndr_print_ptr(ndr, "servername", r->servername);
2559 ndr->depth++;
2560 if (r->servername) {
2561 ndr_print_string(ndr, "servername", r->servername);
2563 ndr->depth--;
2564 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2565 ndr->depth--;
2568 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo4(const struct spoolss_PrinterInfo4 *r, struct smb_iconv_convenience *ic, int flags)
2570 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo4, ic);
2573 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo5 *r)
2575 if (ndr_flags & NDR_SCALARS) {
2576 NDR_CHECK(ndr_push_align(ndr, 5));
2578 uint32_t _flags_save_string = ndr->flags;
2579 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2580 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
2581 ndr->flags = _flags_save_string;
2584 uint32_t _flags_save_string = ndr->flags;
2585 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2586 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
2587 ndr->flags = _flags_save_string;
2589 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
2590 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
2591 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
2592 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2594 if (ndr_flags & NDR_BUFFERS) {
2596 uint32_t _flags_save_string = ndr->flags;
2597 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2598 if (r->printername) {
2599 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printername));
2600 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
2601 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printername));
2603 ndr->flags = _flags_save_string;
2606 uint32_t _flags_save_string = ndr->flags;
2607 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2608 if (r->portname) {
2609 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->portname));
2610 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
2611 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->portname));
2613 ndr->flags = _flags_save_string;
2616 return NDR_ERR_SUCCESS;
2619 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo5 *r)
2621 uint32_t _ptr_printername;
2622 TALLOC_CTX *_mem_save_printername_0;
2623 uint32_t _ptr_portname;
2624 TALLOC_CTX *_mem_save_portname_0;
2625 if (ndr_flags & NDR_SCALARS) {
2626 NDR_CHECK(ndr_pull_align(ndr, 5));
2628 uint32_t _flags_save_string = ndr->flags;
2629 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2630 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
2631 if (_ptr_printername) {
2632 NDR_PULL_ALLOC(ndr, r->printername);
2633 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
2634 } else {
2635 r->printername = NULL;
2637 ndr->flags = _flags_save_string;
2640 uint32_t _flags_save_string = ndr->flags;
2641 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2642 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
2643 if (_ptr_portname) {
2644 NDR_PULL_ALLOC(ndr, r->portname);
2645 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
2646 } else {
2647 r->portname = NULL;
2649 ndr->flags = _flags_save_string;
2651 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
2652 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
2653 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
2654 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2656 if (ndr_flags & NDR_BUFFERS) {
2658 uint32_t _flags_save_string = ndr->flags;
2659 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2660 if (r->printername) {
2661 uint32_t _relative_save_offset;
2662 _relative_save_offset = ndr->offset;
2663 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
2664 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2665 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
2666 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
2667 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
2668 if (ndr->offset > ndr->relative_highest_offset) {
2669 ndr->relative_highest_offset = ndr->offset;
2671 ndr->offset = _relative_save_offset;
2673 ndr->flags = _flags_save_string;
2676 uint32_t _flags_save_string = ndr->flags;
2677 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2678 if (r->portname) {
2679 uint32_t _relative_save_offset;
2680 _relative_save_offset = ndr->offset;
2681 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
2682 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2683 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
2684 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
2685 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
2686 if (ndr->offset > ndr->relative_highest_offset) {
2687 ndr->relative_highest_offset = ndr->offset;
2689 ndr->offset = _relative_save_offset;
2691 ndr->flags = _flags_save_string;
2694 return NDR_ERR_SUCCESS;
2697 _PUBLIC_ void ndr_print_spoolss_PrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo5 *r)
2699 ndr_print_struct(ndr, name, "spoolss_PrinterInfo5");
2700 ndr->depth++;
2701 ndr_print_ptr(ndr, "printername", r->printername);
2702 ndr->depth++;
2703 if (r->printername) {
2704 ndr_print_string(ndr, "printername", r->printername);
2706 ndr->depth--;
2707 ndr_print_ptr(ndr, "portname", r->portname);
2708 ndr->depth++;
2709 if (r->portname) {
2710 ndr_print_string(ndr, "portname", r->portname);
2712 ndr->depth--;
2713 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2714 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
2715 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
2716 ndr->depth--;
2719 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo5(const struct spoolss_PrinterInfo5 *r, struct smb_iconv_convenience *ic, int flags)
2721 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo5, ic);
2724 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo6 *r)
2726 if (ndr_flags & NDR_SCALARS) {
2727 NDR_CHECK(ndr_push_align(ndr, 4));
2728 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
2729 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2731 if (ndr_flags & NDR_BUFFERS) {
2733 return NDR_ERR_SUCCESS;
2736 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo6 *r)
2738 if (ndr_flags & NDR_SCALARS) {
2739 NDR_CHECK(ndr_pull_align(ndr, 4));
2740 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
2741 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2743 if (ndr_flags & NDR_BUFFERS) {
2745 return NDR_ERR_SUCCESS;
2748 _PUBLIC_ void ndr_print_spoolss_PrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo6 *r)
2750 ndr_print_struct(ndr, name, "spoolss_PrinterInfo6");
2751 ndr->depth++;
2752 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
2753 ndr->depth--;
2756 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo6(const struct spoolss_PrinterInfo6 *r, struct smb_iconv_convenience *ic, int flags)
2758 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo6, ic);
2761 static enum ndr_err_code ndr_push_spoolss_DsPrintAction(struct ndr_push *ndr, int ndr_flags, uint32_t r)
2763 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
2764 return NDR_ERR_SUCCESS;
2767 static enum ndr_err_code ndr_pull_spoolss_DsPrintAction(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
2769 uint32_t v;
2770 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
2771 *r = v;
2772 return NDR_ERR_SUCCESS;
2775 _PUBLIC_ void ndr_print_spoolss_DsPrintAction(struct ndr_print *ndr, const char *name, uint32_t r)
2777 ndr_print_uint32(ndr, name, r);
2778 ndr->depth++;
2779 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH, r);
2780 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE, r);
2781 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH, r);
2782 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH, r);
2783 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING, r);
2784 ndr->depth--;
2787 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo7 *r)
2789 if (ndr_flags & NDR_SCALARS) {
2790 NDR_CHECK(ndr_push_align(ndr, 5));
2792 uint32_t _flags_save_string = ndr->flags;
2793 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2794 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->guid));
2795 ndr->flags = _flags_save_string;
2797 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
2798 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2800 if (ndr_flags & NDR_BUFFERS) {
2802 uint32_t _flags_save_string = ndr->flags;
2803 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2804 if (r->guid) {
2805 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->guid));
2806 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->guid));
2807 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->guid));
2809 ndr->flags = _flags_save_string;
2812 return NDR_ERR_SUCCESS;
2815 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo7 *r)
2817 uint32_t _ptr_guid;
2818 TALLOC_CTX *_mem_save_guid_0;
2819 if (ndr_flags & NDR_SCALARS) {
2820 NDR_CHECK(ndr_pull_align(ndr, 5));
2822 uint32_t _flags_save_string = ndr->flags;
2823 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2824 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
2825 if (_ptr_guid) {
2826 NDR_PULL_ALLOC(ndr, r->guid);
2827 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->guid, _ptr_guid));
2828 } else {
2829 r->guid = NULL;
2831 ndr->flags = _flags_save_string;
2833 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
2834 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2836 if (ndr_flags & NDR_BUFFERS) {
2838 uint32_t _flags_save_string = ndr->flags;
2839 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2840 if (r->guid) {
2841 uint32_t _relative_save_offset;
2842 _relative_save_offset = ndr->offset;
2843 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->guid));
2844 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
2845 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
2846 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->guid));
2847 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
2848 if (ndr->offset > ndr->relative_highest_offset) {
2849 ndr->relative_highest_offset = ndr->offset;
2851 ndr->offset = _relative_save_offset;
2853 ndr->flags = _flags_save_string;
2856 return NDR_ERR_SUCCESS;
2859 _PUBLIC_ void ndr_print_spoolss_PrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo7 *r)
2861 ndr_print_struct(ndr, name, "spoolss_PrinterInfo7");
2862 ndr->depth++;
2863 ndr_print_ptr(ndr, "guid", r->guid);
2864 ndr->depth++;
2865 if (r->guid) {
2866 ndr_print_string(ndr, "guid", r->guid);
2868 ndr->depth--;
2869 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
2870 ndr->depth--;
2873 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo7(const struct spoolss_PrinterInfo7 *r, struct smb_iconv_convenience *ic, int flags)
2875 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo7, ic);
2878 static enum ndr_err_code ndr_push_spoolss_DeviceModeInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceModeInfo *r)
2880 if (ndr_flags & NDR_SCALARS) {
2881 NDR_CHECK(ndr_push_align(ndr, 5));
2883 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2884 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2885 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
2886 ndr->flags = _flags_save_spoolss_DeviceMode;
2888 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2890 if (ndr_flags & NDR_BUFFERS) {
2892 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2893 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2894 if (r->devmode) {
2895 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->devmode));
2897 struct ndr_push *_ndr_devmode;
2898 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2899 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2900 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
2902 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->devmode));
2904 ndr->flags = _flags_save_spoolss_DeviceMode;
2907 return NDR_ERR_SUCCESS;
2910 static enum ndr_err_code ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceModeInfo *r)
2912 uint32_t _ptr_devmode;
2913 TALLOC_CTX *_mem_save_devmode_0;
2914 if (ndr_flags & NDR_SCALARS) {
2915 NDR_CHECK(ndr_pull_align(ndr, 5));
2917 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2918 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2919 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2920 if (_ptr_devmode) {
2921 NDR_PULL_ALLOC(ndr, r->devmode);
2922 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
2923 } else {
2924 r->devmode = NULL;
2926 ndr->flags = _flags_save_spoolss_DeviceMode;
2928 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2930 if (ndr_flags & NDR_BUFFERS) {
2932 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2933 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2934 if (r->devmode) {
2935 uint32_t _relative_save_offset;
2936 _relative_save_offset = ndr->offset;
2937 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
2938 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2939 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2941 struct ndr_pull *_ndr_devmode;
2942 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2943 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2944 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
2946 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2947 if (ndr->offset > ndr->relative_highest_offset) {
2948 ndr->relative_highest_offset = ndr->offset;
2950 ndr->offset = _relative_save_offset;
2952 ndr->flags = _flags_save_spoolss_DeviceMode;
2955 return NDR_ERR_SUCCESS;
2958 _PUBLIC_ void ndr_print_spoolss_DeviceModeInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceModeInfo *r)
2960 ndr_print_struct(ndr, name, "spoolss_DeviceModeInfo");
2961 ndr->depth++;
2962 ndr_print_ptr(ndr, "devmode", r->devmode);
2963 ndr->depth++;
2964 if (r->devmode) {
2965 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2967 ndr->depth--;
2968 ndr->depth--;
2971 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterInfo *r)
2973 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
2975 uint32_t _flags_save_UNION = ndr->flags;
2976 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
2977 if (ndr_flags & NDR_SCALARS) {
2978 int level = ndr_push_get_switch_value(ndr, r);
2979 NDR_CHECK(ndr_push_union_align(ndr, 5));
2980 switch (level) {
2981 case 0: {
2982 NDR_CHECK(ndr_push_align(ndr, 5));
2983 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2984 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2985 break; }
2987 case 1: {
2988 NDR_CHECK(ndr_push_align(ndr, 5));
2989 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2990 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2991 break; }
2993 case 2: {
2994 NDR_CHECK(ndr_push_align(ndr, 5));
2995 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2996 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2997 break; }
2999 case 3: {
3000 NDR_CHECK(ndr_push_align(ndr, 5));
3001 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
3002 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
3003 break; }
3005 case 4: {
3006 NDR_CHECK(ndr_push_align(ndr, 5));
3007 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
3008 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
3009 break; }
3011 case 5: {
3012 NDR_CHECK(ndr_push_align(ndr, 5));
3013 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
3014 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
3015 break; }
3017 case 6: {
3018 NDR_CHECK(ndr_push_align(ndr, 4));
3019 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
3020 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
3021 break; }
3023 case 7: {
3024 NDR_CHECK(ndr_push_align(ndr, 5));
3025 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
3026 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
3027 break; }
3029 case 8: {
3030 NDR_CHECK(ndr_push_align(ndr, 5));
3031 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
3032 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
3033 break; }
3035 case 9: {
3036 NDR_CHECK(ndr_push_align(ndr, 5));
3037 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
3038 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
3039 break; }
3041 default: {
3042 break; }
3046 if (ndr_flags & NDR_BUFFERS) {
3047 int level = ndr_push_get_switch_value(ndr, r);
3048 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
3049 switch (level) {
3050 case 0:
3051 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
3052 break;
3054 case 1:
3055 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
3056 break;
3058 case 2:
3059 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
3060 break;
3062 case 3:
3063 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
3064 break;
3066 case 4:
3067 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
3068 break;
3070 case 5:
3071 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
3072 break;
3074 case 6:
3075 break;
3077 case 7:
3078 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
3079 break;
3081 case 8:
3082 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
3083 break;
3085 case 9:
3086 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
3087 break;
3089 default:
3090 break;
3094 ndr->flags = _flags_save_UNION;
3096 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
3097 return NDR_ERR_SUCCESS;
3100 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterInfo *r)
3102 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
3103 int level;
3105 uint32_t _flags_save_UNION = ndr->flags;
3106 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
3107 level = ndr_pull_get_switch_value(ndr, r);
3108 if (ndr_flags & NDR_SCALARS) {
3109 NDR_CHECK(ndr_pull_union_align(ndr, 5));
3110 switch (level) {
3111 case 0: {
3112 NDR_CHECK(ndr_pull_align(ndr, 5));
3113 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3114 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
3115 break; }
3117 case 1: {
3118 NDR_CHECK(ndr_pull_align(ndr, 5));
3119 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3120 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
3121 break; }
3123 case 2: {
3124 NDR_CHECK(ndr_pull_align(ndr, 5));
3125 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3126 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
3127 break; }
3129 case 3: {
3130 NDR_CHECK(ndr_pull_align(ndr, 5));
3131 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3132 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
3133 break; }
3135 case 4: {
3136 NDR_CHECK(ndr_pull_align(ndr, 5));
3137 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3138 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
3139 break; }
3141 case 5: {
3142 NDR_CHECK(ndr_pull_align(ndr, 5));
3143 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3144 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
3145 break; }
3147 case 6: {
3148 NDR_CHECK(ndr_pull_align(ndr, 4));
3149 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3150 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
3151 break; }
3153 case 7: {
3154 NDR_CHECK(ndr_pull_align(ndr, 5));
3155 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3156 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
3157 break; }
3159 case 8: {
3160 NDR_CHECK(ndr_pull_align(ndr, 5));
3161 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3162 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
3163 break; }
3165 case 9: {
3166 NDR_CHECK(ndr_pull_align(ndr, 5));
3167 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3168 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
3169 break; }
3171 default: {
3172 break; }
3176 if (ndr_flags & NDR_BUFFERS) {
3177 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
3178 switch (level) {
3179 case 0:
3180 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
3181 break;
3183 case 1:
3184 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
3185 break;
3187 case 2:
3188 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
3189 break;
3191 case 3:
3192 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
3193 break;
3195 case 4:
3196 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
3197 break;
3199 case 5:
3200 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
3201 break;
3203 case 6:
3204 break;
3206 case 7:
3207 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
3208 break;
3210 case 8:
3211 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
3212 break;
3214 case 9:
3215 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
3216 break;
3218 default:
3219 break;
3223 ndr->flags = _flags_save_UNION;
3225 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
3226 return NDR_ERR_SUCCESS;
3229 _PUBLIC_ void ndr_print_spoolss_PrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrinterInfo *r)
3231 int level;
3233 uint32_t _flags_save_UNION = ndr->flags;
3234 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
3235 level = ndr_print_get_switch_value(ndr, r);
3236 ndr_print_union(ndr, name, level, "spoolss_PrinterInfo");
3237 switch (level) {
3238 case 0:
3239 ndr_print_spoolss_PrinterInfo0(ndr, "info0", &r->info0);
3240 break;
3242 case 1:
3243 ndr_print_spoolss_PrinterInfo1(ndr, "info1", &r->info1);
3244 break;
3246 case 2:
3247 ndr_print_spoolss_PrinterInfo2(ndr, "info2", &r->info2);
3248 break;
3250 case 3:
3251 ndr_print_spoolss_PrinterInfo3(ndr, "info3", &r->info3);
3252 break;
3254 case 4:
3255 ndr_print_spoolss_PrinterInfo4(ndr, "info4", &r->info4);
3256 break;
3258 case 5:
3259 ndr_print_spoolss_PrinterInfo5(ndr, "info5", &r->info5);
3260 break;
3262 case 6:
3263 ndr_print_spoolss_PrinterInfo6(ndr, "info6", &r->info6);
3264 break;
3266 case 7:
3267 ndr_print_spoolss_PrinterInfo7(ndr, "info7", &r->info7);
3268 break;
3270 case 8:
3271 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", &r->info8);
3272 break;
3274 case 9:
3275 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", &r->info9);
3276 break;
3278 default:
3279 break;
3282 ndr->flags = _flags_save_UNION;
3286 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo(const union spoolss_PrinterInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
3288 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
3289 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo, ic);
3292 static enum ndr_err_code ndr_push_spoolss_DevmodeContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DevmodeContainer *r)
3294 if (ndr_flags & NDR_SCALARS) {
3295 NDR_CHECK(ndr_push_align(ndr, 5));
3296 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
3297 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
3298 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3300 if (ndr_flags & NDR_BUFFERS) {
3301 if (r->devmode) {
3303 struct ndr_push *_ndr_devmode;
3304 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
3305 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3306 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
3310 return NDR_ERR_SUCCESS;
3313 static enum ndr_err_code ndr_pull_spoolss_DevmodeContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DevmodeContainer *r)
3315 uint32_t _ptr_devmode;
3316 TALLOC_CTX *_mem_save_devmode_0;
3317 if (ndr_flags & NDR_SCALARS) {
3318 NDR_CHECK(ndr_pull_align(ndr, 5));
3319 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
3320 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3321 if (_ptr_devmode) {
3322 NDR_PULL_ALLOC(ndr, r->devmode);
3323 } else {
3324 r->devmode = NULL;
3326 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3328 if (ndr_flags & NDR_BUFFERS) {
3329 if (r->devmode) {
3330 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
3331 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
3333 struct ndr_pull *_ndr_devmode;
3334 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 4, r->_ndr_size));
3335 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3336 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 4, r->_ndr_size));
3338 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
3341 return NDR_ERR_SUCCESS;
3344 _PUBLIC_ void ndr_print_spoolss_DevmodeContainer(struct ndr_print *ndr, const char *name, const struct spoolss_DevmodeContainer *r)
3346 ndr_print_struct(ndr, name, "spoolss_DevmodeContainer");
3347 ndr->depth++;
3348 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);
3349 ndr_print_ptr(ndr, "devmode", r->devmode);
3350 ndr->depth++;
3351 if (r->devmode) {
3352 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
3354 ndr->depth--;
3355 ndr->depth--;
3358 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo1 *r)
3360 if (ndr_flags & NDR_SCALARS) {
3361 NDR_CHECK(ndr_push_align(ndr, 5));
3362 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3364 uint32_t _flags_save_string = ndr->flags;
3365 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3366 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
3367 ndr->flags = _flags_save_string;
3370 uint32_t _flags_save_string = ndr->flags;
3371 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3372 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
3373 ndr->flags = _flags_save_string;
3376 uint32_t _flags_save_string = ndr->flags;
3377 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3378 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
3379 ndr->flags = _flags_save_string;
3382 uint32_t _flags_save_string = ndr->flags;
3383 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3384 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
3385 ndr->flags = _flags_save_string;
3388 uint32_t _flags_save_string = ndr->flags;
3389 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3390 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
3391 ndr->flags = _flags_save_string;
3394 uint32_t _flags_save_string = ndr->flags;
3395 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3396 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
3397 ndr->flags = _flags_save_string;
3399 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
3400 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3401 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
3402 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3403 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
3404 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3405 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3407 if (ndr_flags & NDR_BUFFERS) {
3409 uint32_t _flags_save_string = ndr->flags;
3410 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3411 if (r->printer_name) {
3412 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printer_name));
3413 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
3414 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printer_name));
3416 ndr->flags = _flags_save_string;
3419 uint32_t _flags_save_string = ndr->flags;
3420 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3421 if (r->server_name) {
3422 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->server_name));
3423 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3424 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->server_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->user_name) {
3432 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->user_name));
3433 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3434 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->user_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->document_name) {
3442 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->document_name));
3443 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3444 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->document_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->data_type) {
3452 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_type));
3453 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3454 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_type));
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->text_status) {
3462 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->text_status));
3463 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3464 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->text_status));
3466 ndr->flags = _flags_save_string;
3469 return NDR_ERR_SUCCESS;
3472 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo1 *r)
3474 uint32_t _ptr_printer_name;
3475 TALLOC_CTX *_mem_save_printer_name_0;
3476 uint32_t _ptr_server_name;
3477 TALLOC_CTX *_mem_save_server_name_0;
3478 uint32_t _ptr_user_name;
3479 TALLOC_CTX *_mem_save_user_name_0;
3480 uint32_t _ptr_document_name;
3481 TALLOC_CTX *_mem_save_document_name_0;
3482 uint32_t _ptr_data_type;
3483 TALLOC_CTX *_mem_save_data_type_0;
3484 uint32_t _ptr_text_status;
3485 TALLOC_CTX *_mem_save_text_status_0;
3486 if (ndr_flags & NDR_SCALARS) {
3487 NDR_CHECK(ndr_pull_align(ndr, 5));
3488 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3490 uint32_t _flags_save_string = ndr->flags;
3491 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3492 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
3493 if (_ptr_printer_name) {
3494 NDR_PULL_ALLOC(ndr, r->printer_name);
3495 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
3496 } else {
3497 r->printer_name = NULL;
3499 ndr->flags = _flags_save_string;
3502 uint32_t _flags_save_string = ndr->flags;
3503 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3504 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
3505 if (_ptr_server_name) {
3506 NDR_PULL_ALLOC(ndr, r->server_name);
3507 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
3508 } else {
3509 r->server_name = NULL;
3511 ndr->flags = _flags_save_string;
3514 uint32_t _flags_save_string = ndr->flags;
3515 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3516 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
3517 if (_ptr_user_name) {
3518 NDR_PULL_ALLOC(ndr, r->user_name);
3519 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
3520 } else {
3521 r->user_name = NULL;
3523 ndr->flags = _flags_save_string;
3526 uint32_t _flags_save_string = ndr->flags;
3527 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3528 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
3529 if (_ptr_document_name) {
3530 NDR_PULL_ALLOC(ndr, r->document_name);
3531 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
3532 } else {
3533 r->document_name = NULL;
3535 ndr->flags = _flags_save_string;
3538 uint32_t _flags_save_string = ndr->flags;
3539 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3540 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
3541 if (_ptr_data_type) {
3542 NDR_PULL_ALLOC(ndr, r->data_type);
3543 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
3544 } else {
3545 r->data_type = NULL;
3547 ndr->flags = _flags_save_string;
3550 uint32_t _flags_save_string = ndr->flags;
3551 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3552 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
3553 if (_ptr_text_status) {
3554 NDR_PULL_ALLOC(ndr, r->text_status);
3555 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
3556 } else {
3557 r->text_status = NULL;
3559 ndr->flags = _flags_save_string;
3561 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
3562 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3563 if (r->priority > 99) {
3564 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3566 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
3567 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3568 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
3569 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3570 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3572 if (ndr_flags & NDR_BUFFERS) {
3574 uint32_t _flags_save_string = ndr->flags;
3575 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3576 if (r->printer_name) {
3577 uint32_t _relative_save_offset;
3578 _relative_save_offset = ndr->offset;
3579 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
3580 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3581 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
3582 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
3583 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
3584 if (ndr->offset > ndr->relative_highest_offset) {
3585 ndr->relative_highest_offset = ndr->offset;
3587 ndr->offset = _relative_save_offset;
3589 ndr->flags = _flags_save_string;
3592 uint32_t _flags_save_string = ndr->flags;
3593 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3594 if (r->server_name) {
3595 uint32_t _relative_save_offset;
3596 _relative_save_offset = ndr->offset;
3597 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
3598 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3599 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
3600 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
3601 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
3602 if (ndr->offset > ndr->relative_highest_offset) {
3603 ndr->relative_highest_offset = ndr->offset;
3605 ndr->offset = _relative_save_offset;
3607 ndr->flags = _flags_save_string;
3610 uint32_t _flags_save_string = ndr->flags;
3611 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3612 if (r->user_name) {
3613 uint32_t _relative_save_offset;
3614 _relative_save_offset = ndr->offset;
3615 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
3616 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3617 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
3618 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
3619 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
3620 if (ndr->offset > ndr->relative_highest_offset) {
3621 ndr->relative_highest_offset = ndr->offset;
3623 ndr->offset = _relative_save_offset;
3625 ndr->flags = _flags_save_string;
3628 uint32_t _flags_save_string = ndr->flags;
3629 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3630 if (r->document_name) {
3631 uint32_t _relative_save_offset;
3632 _relative_save_offset = ndr->offset;
3633 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
3634 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3635 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
3636 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
3637 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
3638 if (ndr->offset > ndr->relative_highest_offset) {
3639 ndr->relative_highest_offset = ndr->offset;
3641 ndr->offset = _relative_save_offset;
3643 ndr->flags = _flags_save_string;
3646 uint32_t _flags_save_string = ndr->flags;
3647 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3648 if (r->data_type) {
3649 uint32_t _relative_save_offset;
3650 _relative_save_offset = ndr->offset;
3651 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
3652 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
3653 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
3654 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
3655 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
3656 if (ndr->offset > ndr->relative_highest_offset) {
3657 ndr->relative_highest_offset = ndr->offset;
3659 ndr->offset = _relative_save_offset;
3661 ndr->flags = _flags_save_string;
3664 uint32_t _flags_save_string = ndr->flags;
3665 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3666 if (r->text_status) {
3667 uint32_t _relative_save_offset;
3668 _relative_save_offset = ndr->offset;
3669 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
3670 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
3671 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
3672 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
3673 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
3674 if (ndr->offset > ndr->relative_highest_offset) {
3675 ndr->relative_highest_offset = ndr->offset;
3677 ndr->offset = _relative_save_offset;
3679 ndr->flags = _flags_save_string;
3682 return NDR_ERR_SUCCESS;
3685 _PUBLIC_ void ndr_print_spoolss_JobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo1 *r)
3687 ndr_print_struct(ndr, name, "spoolss_JobInfo1");
3688 ndr->depth++;
3689 ndr_print_uint32(ndr, "job_id", r->job_id);
3690 ndr_print_ptr(ndr, "printer_name", r->printer_name);
3691 ndr->depth++;
3692 if (r->printer_name) {
3693 ndr_print_string(ndr, "printer_name", r->printer_name);
3695 ndr->depth--;
3696 ndr_print_ptr(ndr, "server_name", r->server_name);
3697 ndr->depth++;
3698 if (r->server_name) {
3699 ndr_print_string(ndr, "server_name", r->server_name);
3701 ndr->depth--;
3702 ndr_print_ptr(ndr, "user_name", r->user_name);
3703 ndr->depth++;
3704 if (r->user_name) {
3705 ndr_print_string(ndr, "user_name", r->user_name);
3707 ndr->depth--;
3708 ndr_print_ptr(ndr, "document_name", r->document_name);
3709 ndr->depth++;
3710 if (r->document_name) {
3711 ndr_print_string(ndr, "document_name", r->document_name);
3713 ndr->depth--;
3714 ndr_print_ptr(ndr, "data_type", r->data_type);
3715 ndr->depth++;
3716 if (r->data_type) {
3717 ndr_print_string(ndr, "data_type", r->data_type);
3719 ndr->depth--;
3720 ndr_print_ptr(ndr, "text_status", r->text_status);
3721 ndr->depth++;
3722 if (r->text_status) {
3723 ndr_print_string(ndr, "text_status", r->text_status);
3725 ndr->depth--;
3726 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
3727 ndr_print_uint32(ndr, "priority", r->priority);
3728 ndr_print_uint32(ndr, "position", r->position);
3729 ndr_print_uint32(ndr, "total_pages", r->total_pages);
3730 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
3731 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
3732 ndr->depth--;
3735 _PUBLIC_ size_t ndr_size_spoolss_JobInfo1(const struct spoolss_JobInfo1 *r, struct smb_iconv_convenience *ic, int flags)
3737 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo1, ic);
3740 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo2 *r)
3742 if (ndr_flags & NDR_SCALARS) {
3743 NDR_CHECK(ndr_push_align(ndr, 5));
3744 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3746 uint32_t _flags_save_string = ndr->flags;
3747 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3748 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
3749 ndr->flags = _flags_save_string;
3752 uint32_t _flags_save_string = ndr->flags;
3753 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3754 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
3755 ndr->flags = _flags_save_string;
3758 uint32_t _flags_save_string = ndr->flags;
3759 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3760 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
3761 ndr->flags = _flags_save_string;
3764 uint32_t _flags_save_string = ndr->flags;
3765 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3766 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
3767 ndr->flags = _flags_save_string;
3770 uint32_t _flags_save_string = ndr->flags;
3771 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3772 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
3773 ndr->flags = _flags_save_string;
3776 uint32_t _flags_save_string = ndr->flags;
3777 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3778 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
3779 ndr->flags = _flags_save_string;
3782 uint32_t _flags_save_string = ndr->flags;
3783 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3784 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
3785 ndr->flags = _flags_save_string;
3788 uint32_t _flags_save_string = ndr->flags;
3789 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3790 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
3791 ndr->flags = _flags_save_string;
3794 uint32_t _flags_save_string = ndr->flags;
3795 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3796 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
3797 ndr->flags = _flags_save_string;
3800 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
3801 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3802 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
3803 ndr->flags = _flags_save_spoolss_DeviceMode;
3806 uint32_t _flags_save_string = ndr->flags;
3807 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3808 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
3809 ndr->flags = _flags_save_string;
3812 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
3813 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3814 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
3815 ndr->flags = _flags_save_spoolss_security_descriptor;
3817 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
3818 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3819 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
3820 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
3821 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
3822 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3823 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
3824 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3825 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
3826 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
3827 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3829 if (ndr_flags & NDR_BUFFERS) {
3831 uint32_t _flags_save_string = ndr->flags;
3832 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3833 if (r->printer_name) {
3834 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printer_name));
3835 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
3836 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printer_name));
3838 ndr->flags = _flags_save_string;
3841 uint32_t _flags_save_string = ndr->flags;
3842 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3843 if (r->server_name) {
3844 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->server_name));
3845 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3846 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->server_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->user_name) {
3854 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->user_name));
3855 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3856 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->user_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->document_name) {
3864 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->document_name));
3865 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3866 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->document_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->notify_name) {
3874 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->notify_name));
3875 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
3876 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->notify_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->data_type) {
3884 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_type));
3885 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3886 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_type));
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->print_processor) {
3894 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor));
3895 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
3896 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor));
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->parameters) {
3904 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->parameters));
3905 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
3906 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->parameters));
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->driver_name) {
3914 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
3915 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
3916 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
3918 ndr->flags = _flags_save_string;
3921 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
3922 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3923 if (r->devmode) {
3924 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->devmode));
3926 struct ndr_push *_ndr_devmode;
3927 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
3928 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3929 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
3931 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->devmode));
3933 ndr->flags = _flags_save_spoolss_DeviceMode;
3936 uint32_t _flags_save_string = ndr->flags;
3937 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3938 if (r->text_status) {
3939 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->text_status));
3940 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3941 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->text_status));
3943 ndr->flags = _flags_save_string;
3946 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
3947 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3948 if (r->secdesc) {
3949 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->secdesc));
3951 struct ndr_push *_ndr_secdesc;
3952 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
3953 NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3954 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
3956 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->secdesc));
3958 ndr->flags = _flags_save_spoolss_security_descriptor;
3961 return NDR_ERR_SUCCESS;
3964 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo2 *r)
3966 uint32_t _ptr_printer_name;
3967 TALLOC_CTX *_mem_save_printer_name_0;
3968 uint32_t _ptr_server_name;
3969 TALLOC_CTX *_mem_save_server_name_0;
3970 uint32_t _ptr_user_name;
3971 TALLOC_CTX *_mem_save_user_name_0;
3972 uint32_t _ptr_document_name;
3973 TALLOC_CTX *_mem_save_document_name_0;
3974 uint32_t _ptr_notify_name;
3975 TALLOC_CTX *_mem_save_notify_name_0;
3976 uint32_t _ptr_data_type;
3977 TALLOC_CTX *_mem_save_data_type_0;
3978 uint32_t _ptr_print_processor;
3979 TALLOC_CTX *_mem_save_print_processor_0;
3980 uint32_t _ptr_parameters;
3981 TALLOC_CTX *_mem_save_parameters_0;
3982 uint32_t _ptr_driver_name;
3983 TALLOC_CTX *_mem_save_driver_name_0;
3984 uint32_t _ptr_devmode;
3985 TALLOC_CTX *_mem_save_devmode_0;
3986 uint32_t _ptr_text_status;
3987 TALLOC_CTX *_mem_save_text_status_0;
3988 uint32_t _ptr_secdesc;
3989 TALLOC_CTX *_mem_save_secdesc_0;
3990 if (ndr_flags & NDR_SCALARS) {
3991 NDR_CHECK(ndr_pull_align(ndr, 5));
3992 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3994 uint32_t _flags_save_string = ndr->flags;
3995 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3996 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
3997 if (_ptr_printer_name) {
3998 NDR_PULL_ALLOC(ndr, r->printer_name);
3999 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
4000 } else {
4001 r->printer_name = NULL;
4003 ndr->flags = _flags_save_string;
4006 uint32_t _flags_save_string = ndr->flags;
4007 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4008 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
4009 if (_ptr_server_name) {
4010 NDR_PULL_ALLOC(ndr, r->server_name);
4011 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
4012 } else {
4013 r->server_name = NULL;
4015 ndr->flags = _flags_save_string;
4018 uint32_t _flags_save_string = ndr->flags;
4019 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4020 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
4021 if (_ptr_user_name) {
4022 NDR_PULL_ALLOC(ndr, r->user_name);
4023 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
4024 } else {
4025 r->user_name = NULL;
4027 ndr->flags = _flags_save_string;
4030 uint32_t _flags_save_string = ndr->flags;
4031 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4032 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
4033 if (_ptr_document_name) {
4034 NDR_PULL_ALLOC(ndr, r->document_name);
4035 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
4036 } else {
4037 r->document_name = NULL;
4039 ndr->flags = _flags_save_string;
4042 uint32_t _flags_save_string = ndr->flags;
4043 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4044 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
4045 if (_ptr_notify_name) {
4046 NDR_PULL_ALLOC(ndr, r->notify_name);
4047 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
4048 } else {
4049 r->notify_name = NULL;
4051 ndr->flags = _flags_save_string;
4054 uint32_t _flags_save_string = ndr->flags;
4055 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4056 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
4057 if (_ptr_data_type) {
4058 NDR_PULL_ALLOC(ndr, r->data_type);
4059 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
4060 } else {
4061 r->data_type = NULL;
4063 ndr->flags = _flags_save_string;
4066 uint32_t _flags_save_string = ndr->flags;
4067 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4068 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
4069 if (_ptr_print_processor) {
4070 NDR_PULL_ALLOC(ndr, r->print_processor);
4071 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
4072 } else {
4073 r->print_processor = NULL;
4075 ndr->flags = _flags_save_string;
4078 uint32_t _flags_save_string = ndr->flags;
4079 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4080 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
4081 if (_ptr_parameters) {
4082 NDR_PULL_ALLOC(ndr, r->parameters);
4083 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
4084 } else {
4085 r->parameters = NULL;
4087 ndr->flags = _flags_save_string;
4090 uint32_t _flags_save_string = ndr->flags;
4091 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4092 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4093 if (_ptr_driver_name) {
4094 NDR_PULL_ALLOC(ndr, r->driver_name);
4095 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
4096 } else {
4097 r->driver_name = NULL;
4099 ndr->flags = _flags_save_string;
4102 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
4103 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4104 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
4105 if (_ptr_devmode) {
4106 NDR_PULL_ALLOC(ndr, r->devmode);
4107 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
4108 } else {
4109 r->devmode = NULL;
4111 ndr->flags = _flags_save_spoolss_DeviceMode;
4114 uint32_t _flags_save_string = ndr->flags;
4115 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4116 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
4117 if (_ptr_text_status) {
4118 NDR_PULL_ALLOC(ndr, r->text_status);
4119 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
4120 } else {
4121 r->text_status = NULL;
4123 ndr->flags = _flags_save_string;
4126 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
4127 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4128 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
4129 if (_ptr_secdesc) {
4130 NDR_PULL_ALLOC(ndr, r->secdesc);
4131 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
4132 } else {
4133 r->secdesc = NULL;
4135 ndr->flags = _flags_save_spoolss_security_descriptor;
4137 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
4138 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
4139 if (r->priority > 99) {
4140 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
4142 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
4143 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
4144 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
4145 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
4146 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
4147 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4148 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
4149 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
4150 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
4152 if (ndr_flags & NDR_BUFFERS) {
4154 uint32_t _flags_save_string = ndr->flags;
4155 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4156 if (r->printer_name) {
4157 uint32_t _relative_save_offset;
4158 _relative_save_offset = ndr->offset;
4159 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
4160 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4161 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4162 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
4163 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4164 if (ndr->offset > ndr->relative_highest_offset) {
4165 ndr->relative_highest_offset = ndr->offset;
4167 ndr->offset = _relative_save_offset;
4169 ndr->flags = _flags_save_string;
4172 uint32_t _flags_save_string = ndr->flags;
4173 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4174 if (r->server_name) {
4175 uint32_t _relative_save_offset;
4176 _relative_save_offset = ndr->offset;
4177 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
4178 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4179 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4180 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
4181 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4182 if (ndr->offset > ndr->relative_highest_offset) {
4183 ndr->relative_highest_offset = ndr->offset;
4185 ndr->offset = _relative_save_offset;
4187 ndr->flags = _flags_save_string;
4190 uint32_t _flags_save_string = ndr->flags;
4191 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4192 if (r->user_name) {
4193 uint32_t _relative_save_offset;
4194 _relative_save_offset = ndr->offset;
4195 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
4196 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4197 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4198 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
4199 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4200 if (ndr->offset > ndr->relative_highest_offset) {
4201 ndr->relative_highest_offset = ndr->offset;
4203 ndr->offset = _relative_save_offset;
4205 ndr->flags = _flags_save_string;
4208 uint32_t _flags_save_string = ndr->flags;
4209 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4210 if (r->document_name) {
4211 uint32_t _relative_save_offset;
4212 _relative_save_offset = ndr->offset;
4213 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
4214 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4215 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4216 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
4217 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
4218 if (ndr->offset > ndr->relative_highest_offset) {
4219 ndr->relative_highest_offset = ndr->offset;
4221 ndr->offset = _relative_save_offset;
4223 ndr->flags = _flags_save_string;
4226 uint32_t _flags_save_string = ndr->flags;
4227 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4228 if (r->notify_name) {
4229 uint32_t _relative_save_offset;
4230 _relative_save_offset = ndr->offset;
4231 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
4232 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4233 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
4234 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
4235 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
4236 if (ndr->offset > ndr->relative_highest_offset) {
4237 ndr->relative_highest_offset = ndr->offset;
4239 ndr->offset = _relative_save_offset;
4241 ndr->flags = _flags_save_string;
4244 uint32_t _flags_save_string = ndr->flags;
4245 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4246 if (r->data_type) {
4247 uint32_t _relative_save_offset;
4248 _relative_save_offset = ndr->offset;
4249 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
4250 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4251 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4252 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
4253 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4254 if (ndr->offset > ndr->relative_highest_offset) {
4255 ndr->relative_highest_offset = ndr->offset;
4257 ndr->offset = _relative_save_offset;
4259 ndr->flags = _flags_save_string;
4262 uint32_t _flags_save_string = ndr->flags;
4263 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4264 if (r->print_processor) {
4265 uint32_t _relative_save_offset;
4266 _relative_save_offset = ndr->offset;
4267 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
4268 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
4269 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
4270 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
4271 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
4272 if (ndr->offset > ndr->relative_highest_offset) {
4273 ndr->relative_highest_offset = ndr->offset;
4275 ndr->offset = _relative_save_offset;
4277 ndr->flags = _flags_save_string;
4280 uint32_t _flags_save_string = ndr->flags;
4281 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4282 if (r->parameters) {
4283 uint32_t _relative_save_offset;
4284 _relative_save_offset = ndr->offset;
4285 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
4286 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
4287 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
4288 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
4289 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
4290 if (ndr->offset > ndr->relative_highest_offset) {
4291 ndr->relative_highest_offset = ndr->offset;
4293 ndr->offset = _relative_save_offset;
4295 ndr->flags = _flags_save_string;
4298 uint32_t _flags_save_string = ndr->flags;
4299 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4300 if (r->driver_name) {
4301 uint32_t _relative_save_offset;
4302 _relative_save_offset = ndr->offset;
4303 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
4304 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4305 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4306 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
4307 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4308 if (ndr->offset > ndr->relative_highest_offset) {
4309 ndr->relative_highest_offset = ndr->offset;
4311 ndr->offset = _relative_save_offset;
4313 ndr->flags = _flags_save_string;
4316 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
4317 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4318 if (r->devmode) {
4319 uint32_t _relative_save_offset;
4320 _relative_save_offset = ndr->offset;
4321 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
4322 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
4323 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
4325 struct ndr_pull *_ndr_devmode;
4326 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
4327 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
4328 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
4330 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
4331 if (ndr->offset > ndr->relative_highest_offset) {
4332 ndr->relative_highest_offset = ndr->offset;
4334 ndr->offset = _relative_save_offset;
4336 ndr->flags = _flags_save_spoolss_DeviceMode;
4339 uint32_t _flags_save_string = ndr->flags;
4340 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4341 if (r->text_status) {
4342 uint32_t _relative_save_offset;
4343 _relative_save_offset = ndr->offset;
4344 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
4345 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4346 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4347 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
4348 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4349 if (ndr->offset > ndr->relative_highest_offset) {
4350 ndr->relative_highest_offset = ndr->offset;
4352 ndr->offset = _relative_save_offset;
4354 ndr->flags = _flags_save_string;
4357 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
4358 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4359 if (r->secdesc) {
4360 uint32_t _relative_save_offset;
4361 _relative_save_offset = ndr->offset;
4362 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
4363 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
4364 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
4366 struct ndr_pull *_ndr_secdesc;
4367 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
4368 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4369 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
4371 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
4372 if (ndr->offset > ndr->relative_highest_offset) {
4373 ndr->relative_highest_offset = ndr->offset;
4375 ndr->offset = _relative_save_offset;
4377 ndr->flags = _flags_save_spoolss_security_descriptor;
4380 return NDR_ERR_SUCCESS;
4383 _PUBLIC_ void ndr_print_spoolss_JobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo2 *r)
4385 ndr_print_struct(ndr, name, "spoolss_JobInfo2");
4386 ndr->depth++;
4387 ndr_print_uint32(ndr, "job_id", r->job_id);
4388 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4389 ndr->depth++;
4390 if (r->printer_name) {
4391 ndr_print_string(ndr, "printer_name", r->printer_name);
4393 ndr->depth--;
4394 ndr_print_ptr(ndr, "server_name", r->server_name);
4395 ndr->depth++;
4396 if (r->server_name) {
4397 ndr_print_string(ndr, "server_name", r->server_name);
4399 ndr->depth--;
4400 ndr_print_ptr(ndr, "user_name", r->user_name);
4401 ndr->depth++;
4402 if (r->user_name) {
4403 ndr_print_string(ndr, "user_name", r->user_name);
4405 ndr->depth--;
4406 ndr_print_ptr(ndr, "document_name", r->document_name);
4407 ndr->depth++;
4408 if (r->document_name) {
4409 ndr_print_string(ndr, "document_name", r->document_name);
4411 ndr->depth--;
4412 ndr_print_ptr(ndr, "notify_name", r->notify_name);
4413 ndr->depth++;
4414 if (r->notify_name) {
4415 ndr_print_string(ndr, "notify_name", r->notify_name);
4417 ndr->depth--;
4418 ndr_print_ptr(ndr, "data_type", r->data_type);
4419 ndr->depth++;
4420 if (r->data_type) {
4421 ndr_print_string(ndr, "data_type", r->data_type);
4423 ndr->depth--;
4424 ndr_print_ptr(ndr, "print_processor", r->print_processor);
4425 ndr->depth++;
4426 if (r->print_processor) {
4427 ndr_print_string(ndr, "print_processor", r->print_processor);
4429 ndr->depth--;
4430 ndr_print_ptr(ndr, "parameters", r->parameters);
4431 ndr->depth++;
4432 if (r->parameters) {
4433 ndr_print_string(ndr, "parameters", r->parameters);
4435 ndr->depth--;
4436 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4437 ndr->depth++;
4438 if (r->driver_name) {
4439 ndr_print_string(ndr, "driver_name", r->driver_name);
4441 ndr->depth--;
4442 ndr_print_ptr(ndr, "devmode", r->devmode);
4443 ndr->depth++;
4444 if (r->devmode) {
4445 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
4447 ndr->depth--;
4448 ndr_print_ptr(ndr, "text_status", r->text_status);
4449 ndr->depth++;
4450 if (r->text_status) {
4451 ndr_print_string(ndr, "text_status", r->text_status);
4453 ndr->depth--;
4454 ndr_print_ptr(ndr, "secdesc", r->secdesc);
4455 ndr->depth++;
4456 if (r->secdesc) {
4457 ndr_print_spoolss_security_descriptor(ndr, "secdesc", r->secdesc);
4459 ndr->depth--;
4460 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4461 ndr_print_uint32(ndr, "priority", r->priority);
4462 ndr_print_uint32(ndr, "position", r->position);
4463 ndr_print_uint32(ndr, "start_time", r->start_time);
4464 ndr_print_uint32(ndr, "until_time", r->until_time);
4465 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4466 ndr_print_uint32(ndr, "size", r->size);
4467 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4468 ndr_print_uint32(ndr, "time", r->time);
4469 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4470 ndr->depth--;
4473 _PUBLIC_ size_t ndr_size_spoolss_JobInfo2(const struct spoolss_JobInfo2 *r, struct smb_iconv_convenience *ic, int flags)
4475 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo2, ic);
4478 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo3 *r)
4480 if (ndr_flags & NDR_SCALARS) {
4481 NDR_CHECK(ndr_push_align(ndr, 4));
4482 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4483 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->next_job_id));
4484 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
4485 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
4487 if (ndr_flags & NDR_BUFFERS) {
4489 return NDR_ERR_SUCCESS;
4492 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo3 *r)
4494 if (ndr_flags & NDR_SCALARS) {
4495 NDR_CHECK(ndr_pull_align(ndr, 4));
4496 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4497 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->next_job_id));
4498 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
4499 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
4501 if (ndr_flags & NDR_BUFFERS) {
4503 return NDR_ERR_SUCCESS;
4506 _PUBLIC_ void ndr_print_spoolss_JobInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo3 *r)
4508 ndr_print_struct(ndr, name, "spoolss_JobInfo3");
4509 ndr->depth++;
4510 ndr_print_uint32(ndr, "job_id", r->job_id);
4511 ndr_print_uint32(ndr, "next_job_id", r->next_job_id);
4512 ndr_print_uint32(ndr, "reserved", r->reserved);
4513 ndr->depth--;
4516 _PUBLIC_ size_t ndr_size_spoolss_JobInfo3(const struct spoolss_JobInfo3 *r, struct smb_iconv_convenience *ic, int flags)
4518 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo3, ic);
4521 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo4 *r)
4523 if (ndr_flags & NDR_SCALARS) {
4524 NDR_CHECK(ndr_push_align(ndr, 5));
4525 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4527 uint32_t _flags_save_string = ndr->flags;
4528 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4529 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
4530 ndr->flags = _flags_save_string;
4533 uint32_t _flags_save_string = ndr->flags;
4534 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4535 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
4536 ndr->flags = _flags_save_string;
4539 uint32_t _flags_save_string = ndr->flags;
4540 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4541 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
4542 ndr->flags = _flags_save_string;
4545 uint32_t _flags_save_string = ndr->flags;
4546 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4547 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
4548 ndr->flags = _flags_save_string;
4551 uint32_t _flags_save_string = ndr->flags;
4552 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4553 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
4554 ndr->flags = _flags_save_string;
4557 uint32_t _flags_save_string = ndr->flags;
4558 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4559 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
4560 ndr->flags = _flags_save_string;
4563 uint32_t _flags_save_string = ndr->flags;
4564 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4565 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
4566 ndr->flags = _flags_save_string;
4569 uint32_t _flags_save_string = ndr->flags;
4570 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4571 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
4572 ndr->flags = _flags_save_string;
4575 uint32_t _flags_save_string = ndr->flags;
4576 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4577 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
4578 ndr->flags = _flags_save_string;
4581 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
4582 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4583 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
4584 ndr->flags = _flags_save_spoolss_DeviceMode;
4587 uint32_t _flags_save_string = ndr->flags;
4588 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4589 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
4590 ndr->flags = _flags_save_string;
4593 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
4594 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4595 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
4596 ndr->flags = _flags_save_spoolss_security_descriptor;
4598 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
4599 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
4600 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
4601 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
4602 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
4603 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
4604 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
4605 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4606 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
4607 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
4608 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
4609 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
4611 if (ndr_flags & NDR_BUFFERS) {
4613 uint32_t _flags_save_string = ndr->flags;
4614 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4615 if (r->printer_name) {
4616 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printer_name));
4617 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
4618 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printer_name));
4620 ndr->flags = _flags_save_string;
4623 uint32_t _flags_save_string = ndr->flags;
4624 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4625 if (r->server_name) {
4626 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->server_name));
4627 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
4628 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->server_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->user_name) {
4636 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->user_name));
4637 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
4638 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->user_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->document_name) {
4646 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->document_name));
4647 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
4648 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->document_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->notify_name) {
4656 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->notify_name));
4657 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
4658 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->notify_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->data_type) {
4666 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_type));
4667 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
4668 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_type));
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->print_processor) {
4676 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor));
4677 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
4678 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor));
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->parameters) {
4686 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->parameters));
4687 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
4688 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->parameters));
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->driver_name) {
4696 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
4697 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
4698 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
4700 ndr->flags = _flags_save_string;
4703 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
4704 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4705 if (r->devmode) {
4706 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->devmode));
4708 struct ndr_push *_ndr_devmode;
4709 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
4710 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
4711 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
4713 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->devmode));
4715 ndr->flags = _flags_save_spoolss_DeviceMode;
4718 uint32_t _flags_save_string = ndr->flags;
4719 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4720 if (r->text_status) {
4721 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->text_status));
4722 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
4723 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->text_status));
4725 ndr->flags = _flags_save_string;
4728 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
4729 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4730 if (r->secdesc) {
4731 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->secdesc));
4733 struct ndr_push *_ndr_secdesc;
4734 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
4735 NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4736 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
4738 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->secdesc));
4740 ndr->flags = _flags_save_spoolss_security_descriptor;
4743 return NDR_ERR_SUCCESS;
4746 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo4 *r)
4748 uint32_t _ptr_printer_name;
4749 TALLOC_CTX *_mem_save_printer_name_0;
4750 uint32_t _ptr_server_name;
4751 TALLOC_CTX *_mem_save_server_name_0;
4752 uint32_t _ptr_user_name;
4753 TALLOC_CTX *_mem_save_user_name_0;
4754 uint32_t _ptr_document_name;
4755 TALLOC_CTX *_mem_save_document_name_0;
4756 uint32_t _ptr_notify_name;
4757 TALLOC_CTX *_mem_save_notify_name_0;
4758 uint32_t _ptr_data_type;
4759 TALLOC_CTX *_mem_save_data_type_0;
4760 uint32_t _ptr_print_processor;
4761 TALLOC_CTX *_mem_save_print_processor_0;
4762 uint32_t _ptr_parameters;
4763 TALLOC_CTX *_mem_save_parameters_0;
4764 uint32_t _ptr_driver_name;
4765 TALLOC_CTX *_mem_save_driver_name_0;
4766 uint32_t _ptr_devmode;
4767 TALLOC_CTX *_mem_save_devmode_0;
4768 uint32_t _ptr_text_status;
4769 TALLOC_CTX *_mem_save_text_status_0;
4770 uint32_t _ptr_secdesc;
4771 TALLOC_CTX *_mem_save_secdesc_0;
4772 if (ndr_flags & NDR_SCALARS) {
4773 NDR_CHECK(ndr_pull_align(ndr, 5));
4774 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4776 uint32_t _flags_save_string = ndr->flags;
4777 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4778 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
4779 if (_ptr_printer_name) {
4780 NDR_PULL_ALLOC(ndr, r->printer_name);
4781 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
4782 } else {
4783 r->printer_name = NULL;
4785 ndr->flags = _flags_save_string;
4788 uint32_t _flags_save_string = ndr->flags;
4789 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4790 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
4791 if (_ptr_server_name) {
4792 NDR_PULL_ALLOC(ndr, r->server_name);
4793 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
4794 } else {
4795 r->server_name = NULL;
4797 ndr->flags = _flags_save_string;
4800 uint32_t _flags_save_string = ndr->flags;
4801 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4802 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
4803 if (_ptr_user_name) {
4804 NDR_PULL_ALLOC(ndr, r->user_name);
4805 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
4806 } else {
4807 r->user_name = NULL;
4809 ndr->flags = _flags_save_string;
4812 uint32_t _flags_save_string = ndr->flags;
4813 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4814 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
4815 if (_ptr_document_name) {
4816 NDR_PULL_ALLOC(ndr, r->document_name);
4817 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
4818 } else {
4819 r->document_name = NULL;
4821 ndr->flags = _flags_save_string;
4824 uint32_t _flags_save_string = ndr->flags;
4825 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4826 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
4827 if (_ptr_notify_name) {
4828 NDR_PULL_ALLOC(ndr, r->notify_name);
4829 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
4830 } else {
4831 r->notify_name = NULL;
4833 ndr->flags = _flags_save_string;
4836 uint32_t _flags_save_string = ndr->flags;
4837 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4838 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
4839 if (_ptr_data_type) {
4840 NDR_PULL_ALLOC(ndr, r->data_type);
4841 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
4842 } else {
4843 r->data_type = NULL;
4845 ndr->flags = _flags_save_string;
4848 uint32_t _flags_save_string = ndr->flags;
4849 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4850 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
4851 if (_ptr_print_processor) {
4852 NDR_PULL_ALLOC(ndr, r->print_processor);
4853 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
4854 } else {
4855 r->print_processor = NULL;
4857 ndr->flags = _flags_save_string;
4860 uint32_t _flags_save_string = ndr->flags;
4861 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4862 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
4863 if (_ptr_parameters) {
4864 NDR_PULL_ALLOC(ndr, r->parameters);
4865 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
4866 } else {
4867 r->parameters = NULL;
4869 ndr->flags = _flags_save_string;
4872 uint32_t _flags_save_string = ndr->flags;
4873 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4874 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4875 if (_ptr_driver_name) {
4876 NDR_PULL_ALLOC(ndr, r->driver_name);
4877 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
4878 } else {
4879 r->driver_name = NULL;
4881 ndr->flags = _flags_save_string;
4884 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
4885 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4886 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
4887 if (_ptr_devmode) {
4888 NDR_PULL_ALLOC(ndr, r->devmode);
4889 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
4890 } else {
4891 r->devmode = NULL;
4893 ndr->flags = _flags_save_spoolss_DeviceMode;
4896 uint32_t _flags_save_string = ndr->flags;
4897 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4898 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
4899 if (_ptr_text_status) {
4900 NDR_PULL_ALLOC(ndr, r->text_status);
4901 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
4902 } else {
4903 r->text_status = NULL;
4905 ndr->flags = _flags_save_string;
4908 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
4909 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4910 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
4911 if (_ptr_secdesc) {
4912 NDR_PULL_ALLOC(ndr, r->secdesc);
4913 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
4914 } else {
4915 r->secdesc = NULL;
4917 ndr->flags = _flags_save_spoolss_security_descriptor;
4919 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
4920 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
4921 if (r->priority > 99) {
4922 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
4924 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
4925 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
4926 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
4927 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
4928 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
4929 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4930 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
4931 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
4932 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
4933 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
4935 if (ndr_flags & NDR_BUFFERS) {
4937 uint32_t _flags_save_string = ndr->flags;
4938 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4939 if (r->printer_name) {
4940 uint32_t _relative_save_offset;
4941 _relative_save_offset = ndr->offset;
4942 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
4943 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4944 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4945 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
4946 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4947 if (ndr->offset > ndr->relative_highest_offset) {
4948 ndr->relative_highest_offset = ndr->offset;
4950 ndr->offset = _relative_save_offset;
4952 ndr->flags = _flags_save_string;
4955 uint32_t _flags_save_string = ndr->flags;
4956 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4957 if (r->server_name) {
4958 uint32_t _relative_save_offset;
4959 _relative_save_offset = ndr->offset;
4960 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
4961 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4962 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4963 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
4964 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4965 if (ndr->offset > ndr->relative_highest_offset) {
4966 ndr->relative_highest_offset = ndr->offset;
4968 ndr->offset = _relative_save_offset;
4970 ndr->flags = _flags_save_string;
4973 uint32_t _flags_save_string = ndr->flags;
4974 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4975 if (r->user_name) {
4976 uint32_t _relative_save_offset;
4977 _relative_save_offset = ndr->offset;
4978 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
4979 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4980 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4981 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
4982 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4983 if (ndr->offset > ndr->relative_highest_offset) {
4984 ndr->relative_highest_offset = ndr->offset;
4986 ndr->offset = _relative_save_offset;
4988 ndr->flags = _flags_save_string;
4991 uint32_t _flags_save_string = ndr->flags;
4992 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4993 if (r->document_name) {
4994 uint32_t _relative_save_offset;
4995 _relative_save_offset = ndr->offset;
4996 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
4997 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4998 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4999 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
5000 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5001 if (ndr->offset > ndr->relative_highest_offset) {
5002 ndr->relative_highest_offset = ndr->offset;
5004 ndr->offset = _relative_save_offset;
5006 ndr->flags = _flags_save_string;
5009 uint32_t _flags_save_string = ndr->flags;
5010 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5011 if (r->notify_name) {
5012 uint32_t _relative_save_offset;
5013 _relative_save_offset = ndr->offset;
5014 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
5015 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5016 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
5017 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
5018 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
5019 if (ndr->offset > ndr->relative_highest_offset) {
5020 ndr->relative_highest_offset = ndr->offset;
5022 ndr->offset = _relative_save_offset;
5024 ndr->flags = _flags_save_string;
5027 uint32_t _flags_save_string = ndr->flags;
5028 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5029 if (r->data_type) {
5030 uint32_t _relative_save_offset;
5031 _relative_save_offset = ndr->offset;
5032 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
5033 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5034 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5035 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
5036 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5037 if (ndr->offset > ndr->relative_highest_offset) {
5038 ndr->relative_highest_offset = ndr->offset;
5040 ndr->offset = _relative_save_offset;
5042 ndr->flags = _flags_save_string;
5045 uint32_t _flags_save_string = ndr->flags;
5046 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5047 if (r->print_processor) {
5048 uint32_t _relative_save_offset;
5049 _relative_save_offset = ndr->offset;
5050 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
5051 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
5052 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
5053 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
5054 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
5055 if (ndr->offset > ndr->relative_highest_offset) {
5056 ndr->relative_highest_offset = ndr->offset;
5058 ndr->offset = _relative_save_offset;
5060 ndr->flags = _flags_save_string;
5063 uint32_t _flags_save_string = ndr->flags;
5064 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5065 if (r->parameters) {
5066 uint32_t _relative_save_offset;
5067 _relative_save_offset = ndr->offset;
5068 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
5069 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
5070 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
5071 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
5072 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
5073 if (ndr->offset > ndr->relative_highest_offset) {
5074 ndr->relative_highest_offset = ndr->offset;
5076 ndr->offset = _relative_save_offset;
5078 ndr->flags = _flags_save_string;
5081 uint32_t _flags_save_string = ndr->flags;
5082 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5083 if (r->driver_name) {
5084 uint32_t _relative_save_offset;
5085 _relative_save_offset = ndr->offset;
5086 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
5087 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5088 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5089 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
5090 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5091 if (ndr->offset > ndr->relative_highest_offset) {
5092 ndr->relative_highest_offset = ndr->offset;
5094 ndr->offset = _relative_save_offset;
5096 ndr->flags = _flags_save_string;
5099 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
5100 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
5101 if (r->devmode) {
5102 uint32_t _relative_save_offset;
5103 _relative_save_offset = ndr->offset;
5104 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
5105 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
5106 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
5108 struct ndr_pull *_ndr_devmode;
5109 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
5110 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
5111 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
5113 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
5114 if (ndr->offset > ndr->relative_highest_offset) {
5115 ndr->relative_highest_offset = ndr->offset;
5117 ndr->offset = _relative_save_offset;
5119 ndr->flags = _flags_save_spoolss_DeviceMode;
5122 uint32_t _flags_save_string = ndr->flags;
5123 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
5124 if (r->text_status) {
5125 uint32_t _relative_save_offset;
5126 _relative_save_offset = ndr->offset;
5127 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
5128 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5129 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5130 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
5131 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5132 if (ndr->offset > ndr->relative_highest_offset) {
5133 ndr->relative_highest_offset = ndr->offset;
5135 ndr->offset = _relative_save_offset;
5137 ndr->flags = _flags_save_string;
5140 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
5141 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
5142 if (r->secdesc) {
5143 uint32_t _relative_save_offset;
5144 _relative_save_offset = ndr->offset;
5145 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
5146 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
5147 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
5149 struct ndr_pull *_ndr_secdesc;
5150 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
5151 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
5152 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
5154 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
5155 if (ndr->offset > ndr->relative_highest_offset) {
5156 ndr->relative_highest_offset = ndr->offset;
5158 ndr->offset = _relative_save_offset;
5160 ndr->flags = _flags_save_spoolss_security_descriptor;
5163 return NDR_ERR_SUCCESS;
5166 _PUBLIC_ void ndr_print_spoolss_JobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo4 *r)
5168 ndr_print_struct(ndr, name, "spoolss_JobInfo4");
5169 ndr->depth++;
5170 ndr_print_uint32(ndr, "job_id", r->job_id);
5171 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5172 ndr->depth++;
5173 if (r->printer_name) {
5174 ndr_print_string(ndr, "printer_name", r->printer_name);
5176 ndr->depth--;
5177 ndr_print_ptr(ndr, "server_name", r->server_name);
5178 ndr->depth++;
5179 if (r->server_name) {
5180 ndr_print_string(ndr, "server_name", r->server_name);
5182 ndr->depth--;
5183 ndr_print_ptr(ndr, "user_name", r->user_name);
5184 ndr->depth++;
5185 if (r->user_name) {
5186 ndr_print_string(ndr, "user_name", r->user_name);
5188 ndr->depth--;
5189 ndr_print_ptr(ndr, "document_name", r->document_name);
5190 ndr->depth++;
5191 if (r->document_name) {
5192 ndr_print_string(ndr, "document_name", r->document_name);
5194 ndr->depth--;
5195 ndr_print_ptr(ndr, "notify_name", r->notify_name);
5196 ndr->depth++;
5197 if (r->notify_name) {
5198 ndr_print_string(ndr, "notify_name", r->notify_name);
5200 ndr->depth--;
5201 ndr_print_ptr(ndr, "data_type", r->data_type);
5202 ndr->depth++;
5203 if (r->data_type) {
5204 ndr_print_string(ndr, "data_type", r->data_type);
5206 ndr->depth--;
5207 ndr_print_ptr(ndr, "print_processor", r->print_processor);
5208 ndr->depth++;
5209 if (r->print_processor) {
5210 ndr_print_string(ndr, "print_processor", r->print_processor);
5212 ndr->depth--;
5213 ndr_print_ptr(ndr, "parameters", r->parameters);
5214 ndr->depth++;
5215 if (r->parameters) {
5216 ndr_print_string(ndr, "parameters", r->parameters);
5218 ndr->depth--;
5219 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5220 ndr->depth++;
5221 if (r->driver_name) {
5222 ndr_print_string(ndr, "driver_name", r->driver_name);
5224 ndr->depth--;
5225 ndr_print_ptr(ndr, "devmode", r->devmode);
5226 ndr->depth++;
5227 if (r->devmode) {
5228 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
5230 ndr->depth--;
5231 ndr_print_ptr(ndr, "text_status", r->text_status);
5232 ndr->depth++;
5233 if (r->text_status) {
5234 ndr_print_string(ndr, "text_status", r->text_status);
5236 ndr->depth--;
5237 ndr_print_ptr(ndr, "secdesc", r->secdesc);
5238 ndr->depth++;
5239 if (r->secdesc) {
5240 ndr_print_spoolss_security_descriptor(ndr, "secdesc", r->secdesc);
5242 ndr->depth--;
5243 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5244 ndr_print_uint32(ndr, "priority", r->priority);
5245 ndr_print_uint32(ndr, "position", r->position);
5246 ndr_print_uint32(ndr, "start_time", r->start_time);
5247 ndr_print_uint32(ndr, "until_time", r->until_time);
5248 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5249 ndr_print_uint32(ndr, "size", r->size);
5250 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5251 ndr_print_uint32(ndr, "time", r->time);
5252 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5253 ndr_print_uint32(ndr, "size_high", r->size_high);
5254 ndr->depth--;
5257 _PUBLIC_ size_t ndr_size_spoolss_JobInfo4(const struct spoolss_JobInfo4 *r, struct smb_iconv_convenience *ic, int flags)
5259 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo4, ic);
5262 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_JobInfo *r)
5264 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
5266 uint32_t _flags_save_UNION = ndr->flags;
5267 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
5268 if (ndr_flags & NDR_SCALARS) {
5269 int level = ndr_push_get_switch_value(ndr, r);
5270 NDR_CHECK(ndr_push_union_align(ndr, 5));
5271 switch (level) {
5272 case 1: {
5273 NDR_CHECK(ndr_push_align(ndr, 5));
5274 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
5275 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
5276 break; }
5278 case 2: {
5279 NDR_CHECK(ndr_push_align(ndr, 5));
5280 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
5281 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
5282 break; }
5284 case 3: {
5285 NDR_CHECK(ndr_push_align(ndr, 4));
5286 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
5287 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
5288 break; }
5290 case 4: {
5291 NDR_CHECK(ndr_push_align(ndr, 5));
5292 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
5293 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
5294 break; }
5296 default: {
5297 break; }
5301 if (ndr_flags & NDR_BUFFERS) {
5302 int level = ndr_push_get_switch_value(ndr, r);
5303 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
5304 switch (level) {
5305 case 1:
5306 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
5307 break;
5309 case 2:
5310 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
5311 break;
5313 case 3:
5314 break;
5316 case 4:
5317 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
5318 break;
5320 default:
5321 break;
5325 ndr->flags = _flags_save_UNION;
5327 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
5328 return NDR_ERR_SUCCESS;
5331 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_JobInfo *r)
5333 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
5334 int level;
5336 uint32_t _flags_save_UNION = ndr->flags;
5337 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
5338 level = ndr_pull_get_switch_value(ndr, r);
5339 if (ndr_flags & NDR_SCALARS) {
5340 NDR_CHECK(ndr_pull_union_align(ndr, 5));
5341 switch (level) {
5342 case 1: {
5343 NDR_CHECK(ndr_pull_align(ndr, 5));
5344 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5345 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
5346 break; }
5348 case 2: {
5349 NDR_CHECK(ndr_pull_align(ndr, 5));
5350 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5351 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
5352 break; }
5354 case 3: {
5355 NDR_CHECK(ndr_pull_align(ndr, 4));
5356 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5357 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
5358 break; }
5360 case 4: {
5361 NDR_CHECK(ndr_pull_align(ndr, 5));
5362 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5363 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
5364 break; }
5366 default: {
5367 break; }
5371 if (ndr_flags & NDR_BUFFERS) {
5372 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
5373 switch (level) {
5374 case 1:
5375 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
5376 break;
5378 case 2:
5379 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
5380 break;
5382 case 3:
5383 break;
5385 case 4:
5386 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
5387 break;
5389 default:
5390 break;
5394 ndr->flags = _flags_save_UNION;
5396 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
5397 return NDR_ERR_SUCCESS;
5400 _PUBLIC_ void ndr_print_spoolss_JobInfo(struct ndr_print *ndr, const char *name, const union spoolss_JobInfo *r)
5402 int level;
5404 uint32_t _flags_save_UNION = ndr->flags;
5405 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
5406 level = ndr_print_get_switch_value(ndr, r);
5407 ndr_print_union(ndr, name, level, "spoolss_JobInfo");
5408 switch (level) {
5409 case 1:
5410 ndr_print_spoolss_JobInfo1(ndr, "info1", &r->info1);
5411 break;
5413 case 2:
5414 ndr_print_spoolss_JobInfo2(ndr, "info2", &r->info2);
5415 break;
5417 case 3:
5418 ndr_print_spoolss_JobInfo3(ndr, "info3", &r->info3);
5419 break;
5421 case 4:
5422 ndr_print_spoolss_JobInfo4(ndr, "info4", &r->info4);
5423 break;
5425 default:
5426 break;
5429 ndr->flags = _flags_save_UNION;
5433 _PUBLIC_ size_t ndr_size_spoolss_JobInfo(const union spoolss_JobInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
5435 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
5436 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo, ic);
5439 static enum ndr_err_code ndr_push_spoolss_SetJobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo1 *r)
5441 if (ndr_flags & NDR_SCALARS) {
5442 NDR_CHECK(ndr_push_align(ndr, 5));
5443 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
5444 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
5445 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
5446 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
5447 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
5448 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
5449 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
5450 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5451 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5452 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5453 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5454 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5455 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5456 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5458 if (ndr_flags & NDR_BUFFERS) {
5459 if (r->printer_name) {
5460 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5461 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5462 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5463 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5465 if (r->server_name) {
5466 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5467 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5468 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5469 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5471 if (r->user_name) {
5472 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5473 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5474 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5475 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5477 if (r->document_name) {
5478 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5479 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5480 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5481 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5483 if (r->data_type) {
5484 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5485 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5486 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5487 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5489 if (r->text_status) {
5490 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5491 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5492 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5493 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5496 return NDR_ERR_SUCCESS;
5499 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo1 *r)
5501 uint32_t _ptr_printer_name;
5502 TALLOC_CTX *_mem_save_printer_name_0;
5503 uint32_t _ptr_server_name;
5504 TALLOC_CTX *_mem_save_server_name_0;
5505 uint32_t _ptr_user_name;
5506 TALLOC_CTX *_mem_save_user_name_0;
5507 uint32_t _ptr_document_name;
5508 TALLOC_CTX *_mem_save_document_name_0;
5509 uint32_t _ptr_data_type;
5510 TALLOC_CTX *_mem_save_data_type_0;
5511 uint32_t _ptr_text_status;
5512 TALLOC_CTX *_mem_save_text_status_0;
5513 if (ndr_flags & NDR_SCALARS) {
5514 NDR_CHECK(ndr_pull_align(ndr, 5));
5515 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5516 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5517 if (_ptr_printer_name) {
5518 NDR_PULL_ALLOC(ndr, r->printer_name);
5519 } else {
5520 r->printer_name = NULL;
5522 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5523 if (_ptr_server_name) {
5524 NDR_PULL_ALLOC(ndr, r->server_name);
5525 } else {
5526 r->server_name = NULL;
5528 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5529 if (_ptr_user_name) {
5530 NDR_PULL_ALLOC(ndr, r->user_name);
5531 } else {
5532 r->user_name = NULL;
5534 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5535 if (_ptr_document_name) {
5536 NDR_PULL_ALLOC(ndr, r->document_name);
5537 } else {
5538 r->document_name = NULL;
5540 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5541 if (_ptr_data_type) {
5542 NDR_PULL_ALLOC(ndr, r->data_type);
5543 } else {
5544 r->data_type = NULL;
5546 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5547 if (_ptr_text_status) {
5548 NDR_PULL_ALLOC(ndr, r->text_status);
5549 } else {
5550 r->text_status = NULL;
5552 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5553 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5554 if (r->priority > 99) {
5555 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5557 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5558 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5559 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5560 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5561 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5563 if (ndr_flags & NDR_BUFFERS) {
5564 if (r->printer_name) {
5565 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5566 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5567 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5568 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5569 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5570 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printer_name), ndr_get_array_length(ndr, &r->printer_name));
5572 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5573 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
5574 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5576 if (r->server_name) {
5577 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5578 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5579 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5580 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5581 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5582 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_name), ndr_get_array_length(ndr, &r->server_name));
5584 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5585 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
5586 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5588 if (r->user_name) {
5589 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5590 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5591 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5592 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5593 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5594 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user_name), ndr_get_array_length(ndr, &r->user_name));
5596 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5597 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
5598 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5600 if (r->document_name) {
5601 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5602 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5603 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5604 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5605 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5606 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->document_name), ndr_get_array_length(ndr, &r->document_name));
5608 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5609 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
5610 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5612 if (r->data_type) {
5613 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5614 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5615 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5616 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5617 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
5618 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_type), ndr_get_array_length(ndr, &r->data_type));
5620 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
5621 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
5622 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5624 if (r->text_status) {
5625 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5626 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5627 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5628 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5629 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
5630 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->text_status), ndr_get_array_length(ndr, &r->text_status));
5632 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
5633 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
5634 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5637 return NDR_ERR_SUCCESS;
5640 _PUBLIC_ void ndr_print_spoolss_SetJobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo1 *r)
5642 ndr_print_struct(ndr, name, "spoolss_SetJobInfo1");
5643 ndr->depth++;
5644 ndr_print_uint32(ndr, "job_id", r->job_id);
5645 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5646 ndr->depth++;
5647 if (r->printer_name) {
5648 ndr_print_string(ndr, "printer_name", r->printer_name);
5650 ndr->depth--;
5651 ndr_print_ptr(ndr, "server_name", r->server_name);
5652 ndr->depth++;
5653 if (r->server_name) {
5654 ndr_print_string(ndr, "server_name", r->server_name);
5656 ndr->depth--;
5657 ndr_print_ptr(ndr, "user_name", r->user_name);
5658 ndr->depth++;
5659 if (r->user_name) {
5660 ndr_print_string(ndr, "user_name", r->user_name);
5662 ndr->depth--;
5663 ndr_print_ptr(ndr, "document_name", r->document_name);
5664 ndr->depth++;
5665 if (r->document_name) {
5666 ndr_print_string(ndr, "document_name", r->document_name);
5668 ndr->depth--;
5669 ndr_print_ptr(ndr, "data_type", r->data_type);
5670 ndr->depth++;
5671 if (r->data_type) {
5672 ndr_print_string(ndr, "data_type", r->data_type);
5674 ndr->depth--;
5675 ndr_print_ptr(ndr, "text_status", r->text_status);
5676 ndr->depth++;
5677 if (r->text_status) {
5678 ndr_print_string(ndr, "text_status", r->text_status);
5680 ndr->depth--;
5681 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5682 ndr_print_uint32(ndr, "priority", r->priority);
5683 ndr_print_uint32(ndr, "position", r->position);
5684 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5685 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5686 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5687 ndr->depth--;
5690 static enum ndr_err_code ndr_push_spoolss_SetJobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo2 *r)
5692 if (ndr_flags & NDR_SCALARS) {
5693 NDR_CHECK(ndr_push_align(ndr, 5));
5694 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
5695 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
5696 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
5697 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
5698 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
5699 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
5700 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
5701 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
5702 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
5703 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5704 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
5705 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
5706 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
5707 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5708 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5709 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5710 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
5711 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
5712 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5713 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
5714 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5715 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
5716 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5717 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5719 if (ndr_flags & NDR_BUFFERS) {
5720 if (r->printer_name) {
5721 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5722 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5723 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5724 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5726 if (r->server_name) {
5727 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5728 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5729 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5730 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5732 if (r->user_name) {
5733 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5734 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5735 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5736 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5738 if (r->document_name) {
5739 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5740 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5741 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5742 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5744 if (r->notify_name) {
5745 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5746 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5747 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5748 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5750 if (r->data_type) {
5751 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5752 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5753 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5754 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5756 if (r->print_processor) {
5757 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5758 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5759 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5760 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5762 if (r->parameters) {
5763 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5764 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5765 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5766 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5768 if (r->driver_name) {
5769 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5770 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5771 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5772 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5774 if (r->text_status) {
5775 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5776 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5777 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5778 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5781 return NDR_ERR_SUCCESS;
5784 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo2 *r)
5786 uint32_t _ptr_printer_name;
5787 TALLOC_CTX *_mem_save_printer_name_0;
5788 uint32_t _ptr_server_name;
5789 TALLOC_CTX *_mem_save_server_name_0;
5790 uint32_t _ptr_user_name;
5791 TALLOC_CTX *_mem_save_user_name_0;
5792 uint32_t _ptr_document_name;
5793 TALLOC_CTX *_mem_save_document_name_0;
5794 uint32_t _ptr_notify_name;
5795 TALLOC_CTX *_mem_save_notify_name_0;
5796 uint32_t _ptr_data_type;
5797 TALLOC_CTX *_mem_save_data_type_0;
5798 uint32_t _ptr_print_processor;
5799 TALLOC_CTX *_mem_save_print_processor_0;
5800 uint32_t _ptr_parameters;
5801 TALLOC_CTX *_mem_save_parameters_0;
5802 uint32_t _ptr_driver_name;
5803 TALLOC_CTX *_mem_save_driver_name_0;
5804 uint32_t _ptr_text_status;
5805 TALLOC_CTX *_mem_save_text_status_0;
5806 if (ndr_flags & NDR_SCALARS) {
5807 NDR_CHECK(ndr_pull_align(ndr, 5));
5808 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5809 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5810 if (_ptr_printer_name) {
5811 NDR_PULL_ALLOC(ndr, r->printer_name);
5812 } else {
5813 r->printer_name = NULL;
5815 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5816 if (_ptr_server_name) {
5817 NDR_PULL_ALLOC(ndr, r->server_name);
5818 } else {
5819 r->server_name = NULL;
5821 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5822 if (_ptr_user_name) {
5823 NDR_PULL_ALLOC(ndr, r->user_name);
5824 } else {
5825 r->user_name = NULL;
5827 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5828 if (_ptr_document_name) {
5829 NDR_PULL_ALLOC(ndr, r->document_name);
5830 } else {
5831 r->document_name = NULL;
5833 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
5834 if (_ptr_notify_name) {
5835 NDR_PULL_ALLOC(ndr, r->notify_name);
5836 } else {
5837 r->notify_name = NULL;
5839 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5840 if (_ptr_data_type) {
5841 NDR_PULL_ALLOC(ndr, r->data_type);
5842 } else {
5843 r->data_type = NULL;
5845 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
5846 if (_ptr_print_processor) {
5847 NDR_PULL_ALLOC(ndr, r->print_processor);
5848 } else {
5849 r->print_processor = NULL;
5851 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
5852 if (_ptr_parameters) {
5853 NDR_PULL_ALLOC(ndr, r->parameters);
5854 } else {
5855 r->parameters = NULL;
5857 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5858 if (_ptr_driver_name) {
5859 NDR_PULL_ALLOC(ndr, r->driver_name);
5860 } else {
5861 r->driver_name = NULL;
5863 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
5864 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5865 if (_ptr_text_status) {
5866 NDR_PULL_ALLOC(ndr, r->text_status);
5867 } else {
5868 r->text_status = NULL;
5870 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
5871 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5872 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5873 if (r->priority > 99) {
5874 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5876 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5877 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
5878 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
5879 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5880 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
5881 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5882 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
5883 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5884 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5886 if (ndr_flags & NDR_BUFFERS) {
5887 if (r->printer_name) {
5888 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5889 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5890 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5891 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5892 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5893 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));
5895 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5896 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
5897 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5899 if (r->server_name) {
5900 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5901 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5902 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5903 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5904 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5905 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_name), ndr_get_array_length(ndr, &r->server_name));
5907 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5908 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
5909 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5911 if (r->user_name) {
5912 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5913 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5914 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5915 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5916 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5917 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user_name), ndr_get_array_length(ndr, &r->user_name));
5919 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5920 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
5921 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5923 if (r->document_name) {
5924 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5925 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5926 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5927 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5928 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5929 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->document_name), ndr_get_array_length(ndr, &r->document_name));
5931 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5932 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
5933 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5935 if (r->notify_name) {
5936 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5937 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
5938 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
5939 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
5940 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
5941 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->notify_name), ndr_get_array_length(ndr, &r->notify_name));
5943 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
5944 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
5945 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
5947 if (r->data_type) {
5948 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5949 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5950 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5951 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5952 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
5953 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_type), ndr_get_array_length(ndr, &r->data_type));
5955 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
5956 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
5957 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5959 if (r->print_processor) {
5960 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
5961 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
5962 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
5963 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
5964 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
5965 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->print_processor), ndr_get_array_length(ndr, &r->print_processor));
5967 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
5968 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
5969 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
5971 if (r->parameters) {
5972 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
5973 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
5974 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
5975 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
5976 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
5977 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->parameters), ndr_get_array_length(ndr, &r->parameters));
5979 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
5980 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
5981 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
5983 if (r->driver_name) {
5984 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5985 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5986 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5987 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5988 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5989 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
5991 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5992 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5993 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5995 if (r->text_status) {
5996 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5997 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5998 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5999 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
6000 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
6001 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));
6003 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
6004 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
6005 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
6008 return NDR_ERR_SUCCESS;
6011 _PUBLIC_ void ndr_print_spoolss_SetJobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo2 *r)
6013 ndr_print_struct(ndr, name, "spoolss_SetJobInfo2");
6014 ndr->depth++;
6015 ndr_print_uint32(ndr, "job_id", r->job_id);
6016 ndr_print_ptr(ndr, "printer_name", r->printer_name);
6017 ndr->depth++;
6018 if (r->printer_name) {
6019 ndr_print_string(ndr, "printer_name", r->printer_name);
6021 ndr->depth--;
6022 ndr_print_ptr(ndr, "server_name", r->server_name);
6023 ndr->depth++;
6024 if (r->server_name) {
6025 ndr_print_string(ndr, "server_name", r->server_name);
6027 ndr->depth--;
6028 ndr_print_ptr(ndr, "user_name", r->user_name);
6029 ndr->depth++;
6030 if (r->user_name) {
6031 ndr_print_string(ndr, "user_name", r->user_name);
6033 ndr->depth--;
6034 ndr_print_ptr(ndr, "document_name", r->document_name);
6035 ndr->depth++;
6036 if (r->document_name) {
6037 ndr_print_string(ndr, "document_name", r->document_name);
6039 ndr->depth--;
6040 ndr_print_ptr(ndr, "notify_name", r->notify_name);
6041 ndr->depth++;
6042 if (r->notify_name) {
6043 ndr_print_string(ndr, "notify_name", r->notify_name);
6045 ndr->depth--;
6046 ndr_print_ptr(ndr, "data_type", r->data_type);
6047 ndr->depth++;
6048 if (r->data_type) {
6049 ndr_print_string(ndr, "data_type", r->data_type);
6051 ndr->depth--;
6052 ndr_print_ptr(ndr, "print_processor", r->print_processor);
6053 ndr->depth++;
6054 if (r->print_processor) {
6055 ndr_print_string(ndr, "print_processor", r->print_processor);
6057 ndr->depth--;
6058 ndr_print_ptr(ndr, "parameters", r->parameters);
6059 ndr->depth++;
6060 if (r->parameters) {
6061 ndr_print_string(ndr, "parameters", r->parameters);
6063 ndr->depth--;
6064 ndr_print_ptr(ndr, "driver_name", r->driver_name);
6065 ndr->depth++;
6066 if (r->driver_name) {
6067 ndr_print_string(ndr, "driver_name", r->driver_name);
6069 ndr->depth--;
6070 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
6071 ndr_print_ptr(ndr, "text_status", r->text_status);
6072 ndr->depth++;
6073 if (r->text_status) {
6074 ndr_print_string(ndr, "text_status", r->text_status);
6076 ndr->depth--;
6077 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
6078 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
6079 ndr_print_uint32(ndr, "priority", r->priority);
6080 ndr_print_uint32(ndr, "position", r->position);
6081 ndr_print_uint32(ndr, "start_time", r->start_time);
6082 ndr_print_uint32(ndr, "until_time", r->until_time);
6083 ndr_print_uint32(ndr, "total_pages", r->total_pages);
6084 ndr_print_uint32(ndr, "size", r->size);
6085 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
6086 ndr_print_uint32(ndr, "time", r->time);
6087 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
6088 ndr->depth--;
6091 static enum ndr_err_code ndr_push_spoolss_SetJobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo4 *r)
6093 if (ndr_flags & NDR_SCALARS) {
6094 NDR_CHECK(ndr_push_align(ndr, 5));
6095 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
6096 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
6097 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
6098 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
6099 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
6100 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
6101 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
6102 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
6103 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
6104 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
6105 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
6106 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
6107 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
6108 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
6109 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
6110 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
6111 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
6112 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
6113 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
6114 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
6115 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
6116 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
6117 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
6118 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
6119 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6121 if (ndr_flags & NDR_BUFFERS) {
6122 if (r->printer_name) {
6123 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
6124 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6125 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
6126 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6128 if (r->server_name) {
6129 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
6130 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6131 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
6132 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6134 if (r->user_name) {
6135 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
6136 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6137 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
6138 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6140 if (r->document_name) {
6141 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
6142 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6143 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
6144 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6146 if (r->notify_name) {
6147 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
6148 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6149 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
6150 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6152 if (r->data_type) {
6153 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
6154 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6155 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
6156 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6158 if (r->print_processor) {
6159 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
6160 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6161 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
6162 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6164 if (r->parameters) {
6165 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6166 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6167 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6168 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6170 if (r->driver_name) {
6171 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
6172 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6173 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
6174 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6176 if (r->text_status) {
6177 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
6178 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6179 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
6180 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6183 return NDR_ERR_SUCCESS;
6186 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo4 *r)
6188 uint32_t _ptr_printer_name;
6189 TALLOC_CTX *_mem_save_printer_name_0;
6190 uint32_t _ptr_server_name;
6191 TALLOC_CTX *_mem_save_server_name_0;
6192 uint32_t _ptr_user_name;
6193 TALLOC_CTX *_mem_save_user_name_0;
6194 uint32_t _ptr_document_name;
6195 TALLOC_CTX *_mem_save_document_name_0;
6196 uint32_t _ptr_notify_name;
6197 TALLOC_CTX *_mem_save_notify_name_0;
6198 uint32_t _ptr_data_type;
6199 TALLOC_CTX *_mem_save_data_type_0;
6200 uint32_t _ptr_print_processor;
6201 TALLOC_CTX *_mem_save_print_processor_0;
6202 uint32_t _ptr_parameters;
6203 TALLOC_CTX *_mem_save_parameters_0;
6204 uint32_t _ptr_driver_name;
6205 TALLOC_CTX *_mem_save_driver_name_0;
6206 uint32_t _ptr_text_status;
6207 TALLOC_CTX *_mem_save_text_status_0;
6208 if (ndr_flags & NDR_SCALARS) {
6209 NDR_CHECK(ndr_pull_align(ndr, 5));
6210 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
6211 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
6212 if (_ptr_printer_name) {
6213 NDR_PULL_ALLOC(ndr, r->printer_name);
6214 } else {
6215 r->printer_name = NULL;
6217 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
6218 if (_ptr_server_name) {
6219 NDR_PULL_ALLOC(ndr, r->server_name);
6220 } else {
6221 r->server_name = NULL;
6223 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
6224 if (_ptr_user_name) {
6225 NDR_PULL_ALLOC(ndr, r->user_name);
6226 } else {
6227 r->user_name = NULL;
6229 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
6230 if (_ptr_document_name) {
6231 NDR_PULL_ALLOC(ndr, r->document_name);
6232 } else {
6233 r->document_name = NULL;
6235 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
6236 if (_ptr_notify_name) {
6237 NDR_PULL_ALLOC(ndr, r->notify_name);
6238 } else {
6239 r->notify_name = NULL;
6241 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
6242 if (_ptr_data_type) {
6243 NDR_PULL_ALLOC(ndr, r->data_type);
6244 } else {
6245 r->data_type = NULL;
6247 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
6248 if (_ptr_print_processor) {
6249 NDR_PULL_ALLOC(ndr, r->print_processor);
6250 } else {
6251 r->print_processor = NULL;
6253 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
6254 if (_ptr_parameters) {
6255 NDR_PULL_ALLOC(ndr, r->parameters);
6256 } else {
6257 r->parameters = NULL;
6259 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
6260 if (_ptr_driver_name) {
6261 NDR_PULL_ALLOC(ndr, r->driver_name);
6262 } else {
6263 r->driver_name = NULL;
6265 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
6266 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
6267 if (_ptr_text_status) {
6268 NDR_PULL_ALLOC(ndr, r->text_status);
6269 } else {
6270 r->text_status = NULL;
6272 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
6273 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
6274 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
6275 if (r->priority > 99) {
6276 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
6278 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
6279 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
6280 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
6281 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
6282 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
6283 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
6284 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
6285 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
6286 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
6287 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6289 if (ndr_flags & NDR_BUFFERS) {
6290 if (r->printer_name) {
6291 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6292 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
6293 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
6294 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
6295 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
6296 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));
6298 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
6299 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
6300 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
6302 if (r->server_name) {
6303 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6304 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
6305 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
6306 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
6307 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
6308 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));
6310 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
6311 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
6312 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
6314 if (r->user_name) {
6315 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6316 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
6317 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
6318 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
6319 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
6320 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));
6322 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
6323 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
6324 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
6326 if (r->document_name) {
6327 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6328 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
6329 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
6330 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
6331 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
6332 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));
6334 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
6335 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
6336 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
6338 if (r->notify_name) {
6339 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6340 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
6341 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
6342 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
6343 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
6344 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));
6346 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
6347 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
6348 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
6350 if (r->data_type) {
6351 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
6352 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
6353 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
6354 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
6355 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
6356 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));
6358 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
6359 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
6360 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
6362 if (r->print_processor) {
6363 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
6364 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
6365 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
6366 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
6367 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
6368 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));
6370 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
6371 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
6372 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
6374 if (r->parameters) {
6375 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
6376 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
6377 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
6378 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
6379 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
6380 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));
6382 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
6383 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
6384 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
6386 if (r->driver_name) {
6387 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6388 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
6389 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
6390 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
6391 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
6392 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));
6394 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
6395 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
6396 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
6398 if (r->text_status) {
6399 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
6400 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
6401 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
6402 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
6403 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
6404 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));
6406 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
6407 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
6408 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
6411 return NDR_ERR_SUCCESS;
6414 _PUBLIC_ void ndr_print_spoolss_SetJobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo4 *r)
6416 ndr_print_struct(ndr, name, "spoolss_SetJobInfo4");
6417 ndr->depth++;
6418 ndr_print_uint32(ndr, "job_id", r->job_id);
6419 ndr_print_ptr(ndr, "printer_name", r->printer_name);
6420 ndr->depth++;
6421 if (r->printer_name) {
6422 ndr_print_string(ndr, "printer_name", r->printer_name);
6424 ndr->depth--;
6425 ndr_print_ptr(ndr, "server_name", r->server_name);
6426 ndr->depth++;
6427 if (r->server_name) {
6428 ndr_print_string(ndr, "server_name", r->server_name);
6430 ndr->depth--;
6431 ndr_print_ptr(ndr, "user_name", r->user_name);
6432 ndr->depth++;
6433 if (r->user_name) {
6434 ndr_print_string(ndr, "user_name", r->user_name);
6436 ndr->depth--;
6437 ndr_print_ptr(ndr, "document_name", r->document_name);
6438 ndr->depth++;
6439 if (r->document_name) {
6440 ndr_print_string(ndr, "document_name", r->document_name);
6442 ndr->depth--;
6443 ndr_print_ptr(ndr, "notify_name", r->notify_name);
6444 ndr->depth++;
6445 if (r->notify_name) {
6446 ndr_print_string(ndr, "notify_name", r->notify_name);
6448 ndr->depth--;
6449 ndr_print_ptr(ndr, "data_type", r->data_type);
6450 ndr->depth++;
6451 if (r->data_type) {
6452 ndr_print_string(ndr, "data_type", r->data_type);
6454 ndr->depth--;
6455 ndr_print_ptr(ndr, "print_processor", r->print_processor);
6456 ndr->depth++;
6457 if (r->print_processor) {
6458 ndr_print_string(ndr, "print_processor", r->print_processor);
6460 ndr->depth--;
6461 ndr_print_ptr(ndr, "parameters", r->parameters);
6462 ndr->depth++;
6463 if (r->parameters) {
6464 ndr_print_string(ndr, "parameters", r->parameters);
6466 ndr->depth--;
6467 ndr_print_ptr(ndr, "driver_name", r->driver_name);
6468 ndr->depth++;
6469 if (r->driver_name) {
6470 ndr_print_string(ndr, "driver_name", r->driver_name);
6472 ndr->depth--;
6473 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
6474 ndr_print_ptr(ndr, "text_status", r->text_status);
6475 ndr->depth++;
6476 if (r->text_status) {
6477 ndr_print_string(ndr, "text_status", r->text_status);
6479 ndr->depth--;
6480 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
6481 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
6482 ndr_print_uint32(ndr, "priority", r->priority);
6483 ndr_print_uint32(ndr, "position", r->position);
6484 ndr_print_uint32(ndr, "start_time", r->start_time);
6485 ndr_print_uint32(ndr, "until_time", r->until_time);
6486 ndr_print_uint32(ndr, "total_pages", r->total_pages);
6487 ndr_print_uint32(ndr, "size", r->size);
6488 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
6489 ndr_print_uint32(ndr, "time", r->time);
6490 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
6491 ndr_print_uint32(ndr, "size_high", r->size_high);
6492 ndr->depth--;
6495 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetJobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetJobInfo *r)
6497 if (ndr_flags & NDR_SCALARS) {
6498 int level = ndr_push_get_switch_value(ndr, r);
6499 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6500 NDR_CHECK(ndr_push_union_align(ndr, 5));
6501 switch (level) {
6502 case 1: {
6503 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
6504 break; }
6506 case 2: {
6507 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
6508 break; }
6510 case 3: {
6511 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
6512 break; }
6514 case 4: {
6515 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
6516 break; }
6518 default: {
6519 break; }
6523 if (ndr_flags & NDR_BUFFERS) {
6524 int level = ndr_push_get_switch_value(ndr, r);
6525 switch (level) {
6526 case 1:
6527 if (r->info1) {
6528 NDR_CHECK(ndr_push_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6530 break;
6532 case 2:
6533 if (r->info2) {
6534 NDR_CHECK(ndr_push_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6536 break;
6538 case 3:
6539 if (r->info3) {
6540 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
6542 break;
6544 case 4:
6545 if (r->info4) {
6546 NDR_CHECK(ndr_push_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6548 break;
6550 default:
6551 break;
6555 return NDR_ERR_SUCCESS;
6558 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetJobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetJobInfo *r)
6560 int level;
6561 uint32_t _level;
6562 TALLOC_CTX *_mem_save_info1_0;
6563 TALLOC_CTX *_mem_save_info2_0;
6564 TALLOC_CTX *_mem_save_info3_0;
6565 TALLOC_CTX *_mem_save_info4_0;
6566 level = ndr_pull_get_switch_value(ndr, r);
6567 if (ndr_flags & NDR_SCALARS) {
6568 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6569 if (_level != level) {
6570 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
6572 NDR_CHECK(ndr_pull_union_align(ndr, 5));
6573 switch (level) {
6574 case 1: {
6575 uint32_t _ptr_info1;
6576 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
6577 if (_ptr_info1) {
6578 NDR_PULL_ALLOC(ndr, r->info1);
6579 } else {
6580 r->info1 = NULL;
6582 break; }
6584 case 2: {
6585 uint32_t _ptr_info2;
6586 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
6587 if (_ptr_info2) {
6588 NDR_PULL_ALLOC(ndr, r->info2);
6589 } else {
6590 r->info2 = NULL;
6592 break; }
6594 case 3: {
6595 uint32_t _ptr_info3;
6596 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
6597 if (_ptr_info3) {
6598 NDR_PULL_ALLOC(ndr, r->info3);
6599 } else {
6600 r->info3 = NULL;
6602 break; }
6604 case 4: {
6605 uint32_t _ptr_info4;
6606 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
6607 if (_ptr_info4) {
6608 NDR_PULL_ALLOC(ndr, r->info4);
6609 } else {
6610 r->info4 = NULL;
6612 break; }
6614 default: {
6615 break; }
6619 if (ndr_flags & NDR_BUFFERS) {
6620 switch (level) {
6621 case 1:
6622 if (r->info1) {
6623 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6624 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
6625 NDR_CHECK(ndr_pull_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6626 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
6628 break;
6630 case 2:
6631 if (r->info2) {
6632 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
6633 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
6634 NDR_CHECK(ndr_pull_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6635 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
6637 break;
6639 case 3:
6640 if (r->info3) {
6641 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
6642 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
6643 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
6644 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
6646 break;
6648 case 4:
6649 if (r->info4) {
6650 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
6651 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
6652 NDR_CHECK(ndr_pull_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6653 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
6655 break;
6657 default:
6658 break;
6662 return NDR_ERR_SUCCESS;
6665 _PUBLIC_ void ndr_print_spoolss_SetJobInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetJobInfo *r)
6667 int level;
6668 level = ndr_print_get_switch_value(ndr, r);
6669 ndr_print_union(ndr, name, level, "spoolss_SetJobInfo");
6670 switch (level) {
6671 case 1:
6672 ndr_print_ptr(ndr, "info1", r->info1);
6673 ndr->depth++;
6674 if (r->info1) {
6675 ndr_print_spoolss_SetJobInfo1(ndr, "info1", r->info1);
6677 ndr->depth--;
6678 break;
6680 case 2:
6681 ndr_print_ptr(ndr, "info2", r->info2);
6682 ndr->depth++;
6683 if (r->info2) {
6684 ndr_print_spoolss_SetJobInfo2(ndr, "info2", r->info2);
6686 ndr->depth--;
6687 break;
6689 case 3:
6690 ndr_print_ptr(ndr, "info3", r->info3);
6691 ndr->depth++;
6692 if (r->info3) {
6693 ndr_print_spoolss_JobInfo3(ndr, "info3", r->info3);
6695 ndr->depth--;
6696 break;
6698 case 4:
6699 ndr_print_ptr(ndr, "info4", r->info4);
6700 ndr->depth++;
6701 if (r->info4) {
6702 ndr_print_spoolss_SetJobInfo4(ndr, "info4", r->info4);
6704 ndr->depth--;
6705 break;
6707 default:
6708 break;
6713 static enum ndr_err_code ndr_push_spoolss_JobInfoContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfoContainer *r)
6715 if (ndr_flags & NDR_SCALARS) {
6716 NDR_CHECK(ndr_push_align(ndr, 5));
6717 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
6718 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
6719 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
6720 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6722 if (ndr_flags & NDR_BUFFERS) {
6723 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
6725 return NDR_ERR_SUCCESS;
6728 static enum ndr_err_code ndr_pull_spoolss_JobInfoContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfoContainer *r)
6730 if (ndr_flags & NDR_SCALARS) {
6731 NDR_CHECK(ndr_pull_align(ndr, 5));
6732 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
6733 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
6734 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
6735 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6737 if (ndr_flags & NDR_BUFFERS) {
6738 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
6740 return NDR_ERR_SUCCESS;
6743 _PUBLIC_ void ndr_print_spoolss_JobInfoContainer(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfoContainer *r)
6745 ndr_print_struct(ndr, name, "spoolss_JobInfoContainer");
6746 ndr->depth++;
6747 ndr_print_uint32(ndr, "level", r->level);
6748 ndr_print_set_switch_value(ndr, &r->info, r->level);
6749 ndr_print_spoolss_SetJobInfo(ndr, "info", &r->info);
6750 ndr->depth--;
6753 static enum ndr_err_code ndr_push_spoolss_JobControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobControl r)
6755 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
6756 return NDR_ERR_SUCCESS;
6759 static enum ndr_err_code ndr_pull_spoolss_JobControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobControl *r)
6761 uint32_t v;
6762 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
6763 *r = v;
6764 return NDR_ERR_SUCCESS;
6767 _PUBLIC_ void ndr_print_spoolss_JobControl(struct ndr_print *ndr, const char *name, enum spoolss_JobControl r)
6769 const char *val = NULL;
6771 switch (r) {
6772 case SPOOLSS_JOB_CONTROL_PAUSE: val = "SPOOLSS_JOB_CONTROL_PAUSE"; break;
6773 case SPOOLSS_JOB_CONTROL_RESUME: val = "SPOOLSS_JOB_CONTROL_RESUME"; break;
6774 case SPOOLSS_JOB_CONTROL_CANCEL: val = "SPOOLSS_JOB_CONTROL_CANCEL"; break;
6775 case SPOOLSS_JOB_CONTROL_RESTART: val = "SPOOLSS_JOB_CONTROL_RESTART"; break;
6776 case SPOOLSS_JOB_CONTROL_DELETE: val = "SPOOLSS_JOB_CONTROL_DELETE"; break;
6777 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER: val = "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
6778 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED: val = "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
6779 case SPOOLSS_JOB_CONTROL_RETAIN: val = "SPOOLSS_JOB_CONTROL_RETAIN"; break;
6780 case SPOOLSS_JOB_CONTROL_RELEASE: val = "SPOOLSS_JOB_CONTROL_RELEASE"; break;
6782 ndr_print_enum(ndr, name, "ENUM", val, r);
6785 static enum ndr_err_code ndr_push_spoolss_PrinterControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterControl r)
6787 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
6788 return NDR_ERR_SUCCESS;
6791 static enum ndr_err_code ndr_pull_spoolss_PrinterControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterControl *r)
6793 uint32_t v;
6794 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
6795 *r = v;
6796 return NDR_ERR_SUCCESS;
6799 _PUBLIC_ void ndr_print_spoolss_PrinterControl(struct ndr_print *ndr, const char *name, enum spoolss_PrinterControl r)
6801 const char *val = NULL;
6803 switch (r) {
6804 case SPOOLSS_PRINTER_CONTROL_UNPAUSE: val = "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
6805 case SPOOLSS_PRINTER_CONTROL_PAUSE: val = "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
6806 case SPOOLSS_PRINTER_CONTROL_RESUME: val = "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
6807 case SPOOLSS_PRINTER_CONTROL_PURGE: val = "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
6808 case SPOOLSS_PRINTER_CONTROL_SET_STATUS: val = "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
6810 ndr_print_enum(ndr, name, "ENUM", val, r);
6813 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo0 *r)
6815 if (ndr_flags & NDR_SCALARS) {
6816 NDR_CHECK(ndr_push_align(ndr, 5));
6817 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6818 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6819 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
6820 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
6821 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
6822 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
6823 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
6824 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
6825 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
6826 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
6827 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
6828 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
6829 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
6830 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
6831 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
6832 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_error));
6833 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
6834 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
6835 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
6836 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
6837 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
6838 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status));
6839 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
6840 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
6841 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
6842 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
6843 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
6844 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
6845 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
6846 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6848 if (ndr_flags & NDR_BUFFERS) {
6849 if (r->servername) {
6850 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6851 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6852 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6853 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6855 if (r->printername) {
6856 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6857 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6858 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6859 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6862 return NDR_ERR_SUCCESS;
6865 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo0 *r)
6867 uint32_t _ptr_servername;
6868 TALLOC_CTX *_mem_save_servername_0;
6869 uint32_t _ptr_printername;
6870 TALLOC_CTX *_mem_save_printername_0;
6871 if (ndr_flags & NDR_SCALARS) {
6872 NDR_CHECK(ndr_pull_align(ndr, 5));
6873 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6874 if (_ptr_servername) {
6875 NDR_PULL_ALLOC(ndr, r->servername);
6876 } else {
6877 r->servername = NULL;
6879 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6880 if (_ptr_printername) {
6881 NDR_PULL_ALLOC(ndr, r->printername);
6882 } else {
6883 r->printername = NULL;
6885 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
6886 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
6887 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
6888 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
6889 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
6890 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
6891 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
6892 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
6893 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
6894 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
6895 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
6896 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
6897 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
6898 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_error));
6899 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
6900 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
6901 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
6902 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
6903 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
6904 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status));
6905 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
6906 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
6907 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
6908 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
6909 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
6910 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
6911 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
6912 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6914 if (ndr_flags & NDR_BUFFERS) {
6915 if (r->servername) {
6916 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6917 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
6918 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
6919 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
6920 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
6921 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));
6923 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
6924 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
6925 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
6927 if (r->printername) {
6928 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6929 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6930 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6931 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6932 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6933 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));
6935 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6936 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
6937 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6940 return NDR_ERR_SUCCESS;
6943 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo0 *r)
6945 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo0");
6946 ndr->depth++;
6947 ndr_print_ptr(ndr, "servername", r->servername);
6948 ndr->depth++;
6949 if (r->servername) {
6950 ndr_print_string(ndr, "servername", r->servername);
6952 ndr->depth--;
6953 ndr_print_ptr(ndr, "printername", r->printername);
6954 ndr->depth++;
6955 if (r->printername) {
6956 ndr_print_string(ndr, "printername", r->printername);
6958 ndr->depth--;
6959 ndr_print_uint32(ndr, "cjobs", r->cjobs);
6960 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
6961 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
6962 ndr_print_spoolss_Time(ndr, "time", &r->time);
6963 ndr_print_uint32(ndr, "global_counter", r->global_counter);
6964 ndr_print_uint32(ndr, "total_pages", r->total_pages);
6965 ndr_print_uint32(ndr, "version", r->version);
6966 ndr_print_uint32(ndr, "free_build", r->free_build);
6967 ndr_print_uint32(ndr, "spooling", r->spooling);
6968 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
6969 ndr_print_uint32(ndr, "session_counter", r->session_counter);
6970 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
6971 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
6972 ndr_print_uint32(ndr, "job_error", r->job_error);
6973 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
6974 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
6975 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
6976 ndr_print_uint32(ndr, "change_id", r->change_id);
6977 ndr_print_WERROR(ndr, "last_error", r->last_error);
6978 ndr_print_uint32(ndr, "status", r->status);
6979 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
6980 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
6981 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
6982 ndr_print_uint16(ndr, "processor_level", r->processor_level);
6983 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
6984 ndr_print_uint32(ndr, "reserved2", r->reserved2);
6985 ndr_print_uint32(ndr, "reserved3", r->reserved3);
6986 ndr->depth--;
6989 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo1 *r)
6991 if (ndr_flags & NDR_SCALARS) {
6992 NDR_CHECK(ndr_push_align(ndr, 5));
6993 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->flags));
6994 NDR_CHECK(ndr_push_unique_ptr(ndr, r->description));
6995 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
6996 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
6997 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6999 if (ndr_flags & NDR_BUFFERS) {
7000 if (r->description) {
7001 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
7002 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7003 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
7004 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->description, ndr_charset_length(r->description, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7006 if (r->name) {
7007 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
7008 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7009 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
7010 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7012 if (r->comment) {
7013 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
7014 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7015 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
7016 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7019 return NDR_ERR_SUCCESS;
7022 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo1 *r)
7024 uint32_t _ptr_description;
7025 TALLOC_CTX *_mem_save_description_0;
7026 uint32_t _ptr_name;
7027 TALLOC_CTX *_mem_save_name_0;
7028 uint32_t _ptr_comment;
7029 TALLOC_CTX *_mem_save_comment_0;
7030 if (ndr_flags & NDR_SCALARS) {
7031 NDR_CHECK(ndr_pull_align(ndr, 5));
7032 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->flags));
7033 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
7034 if (_ptr_description) {
7035 NDR_PULL_ALLOC(ndr, r->description);
7036 } else {
7037 r->description = NULL;
7039 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
7040 if (_ptr_name) {
7041 NDR_PULL_ALLOC(ndr, r->name);
7042 } else {
7043 r->name = NULL;
7045 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
7046 if (_ptr_comment) {
7047 NDR_PULL_ALLOC(ndr, r->comment);
7048 } else {
7049 r->comment = NULL;
7051 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7053 if (ndr_flags & NDR_BUFFERS) {
7054 if (r->description) {
7055 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
7056 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
7057 NDR_CHECK(ndr_pull_array_size(ndr, &r->description));
7058 NDR_CHECK(ndr_pull_array_length(ndr, &r->description));
7059 if (ndr_get_array_length(ndr, &r->description) > ndr_get_array_size(ndr, &r->description)) {
7060 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));
7062 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t)));
7063 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->description, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t), CH_UTF16));
7064 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
7066 if (r->name) {
7067 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7068 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
7069 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
7070 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
7071 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
7072 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));
7074 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
7075 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
7076 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
7078 if (r->comment) {
7079 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
7080 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
7081 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
7082 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
7083 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
7084 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));
7086 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
7087 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
7088 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
7091 return NDR_ERR_SUCCESS;
7094 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo1 *r)
7096 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo1");
7097 ndr->depth++;
7098 ndr_print_spoolss_PrinterAttributes(ndr, "flags", r->flags);
7099 ndr_print_ptr(ndr, "description", r->description);
7100 ndr->depth++;
7101 if (r->description) {
7102 ndr_print_string(ndr, "description", r->description);
7104 ndr->depth--;
7105 ndr_print_ptr(ndr, "name", r->name);
7106 ndr->depth++;
7107 if (r->name) {
7108 ndr_print_string(ndr, "name", r->name);
7110 ndr->depth--;
7111 ndr_print_ptr(ndr, "comment", r->comment);
7112 ndr->depth++;
7113 if (r->comment) {
7114 ndr_print_string(ndr, "comment", r->comment);
7116 ndr->depth--;
7117 ndr->depth--;
7120 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo2 *r)
7122 if (ndr_flags & NDR_SCALARS) {
7123 NDR_CHECK(ndr_push_align(ndr, 5));
7124 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
7125 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
7126 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sharename));
7127 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
7128 NDR_CHECK(ndr_push_unique_ptr(ndr, r->drivername));
7129 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
7130 NDR_CHECK(ndr_push_unique_ptr(ndr, r->location));
7131 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->devmode_ptr));
7132 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sepfile));
7133 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printprocessor));
7134 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
7135 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
7136 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->secdesc_ptr));
7137 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
7138 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
7139 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
7140 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
7141 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
7142 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
7143 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
7144 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
7145 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7147 if (ndr_flags & NDR_BUFFERS) {
7148 if (r->servername) {
7149 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
7150 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7151 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
7152 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7154 if (r->printername) {
7155 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7156 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7157 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7158 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7160 if (r->sharename) {
7161 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
7162 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7163 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
7164 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sharename, ndr_charset_length(r->sharename, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7166 if (r->portname) {
7167 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
7168 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7169 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
7170 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7172 if (r->drivername) {
7173 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
7174 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7175 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
7176 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->drivername, ndr_charset_length(r->drivername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7178 if (r->comment) {
7179 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
7180 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7181 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
7182 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7184 if (r->location) {
7185 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
7186 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7187 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
7188 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->location, ndr_charset_length(r->location, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7190 if (r->sepfile) {
7191 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
7192 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7193 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
7194 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sepfile, ndr_charset_length(r->sepfile, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7196 if (r->printprocessor) {
7197 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
7198 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7199 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
7200 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printprocessor, ndr_charset_length(r->printprocessor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7202 if (r->datatype) {
7203 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
7204 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7205 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
7206 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7208 if (r->parameters) {
7209 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
7210 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7211 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
7212 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7215 return NDR_ERR_SUCCESS;
7218 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo2 *r)
7220 uint32_t _ptr_servername;
7221 TALLOC_CTX *_mem_save_servername_0;
7222 uint32_t _ptr_printername;
7223 TALLOC_CTX *_mem_save_printername_0;
7224 uint32_t _ptr_sharename;
7225 TALLOC_CTX *_mem_save_sharename_0;
7226 uint32_t _ptr_portname;
7227 TALLOC_CTX *_mem_save_portname_0;
7228 uint32_t _ptr_drivername;
7229 TALLOC_CTX *_mem_save_drivername_0;
7230 uint32_t _ptr_comment;
7231 TALLOC_CTX *_mem_save_comment_0;
7232 uint32_t _ptr_location;
7233 TALLOC_CTX *_mem_save_location_0;
7234 uint32_t _ptr_sepfile;
7235 TALLOC_CTX *_mem_save_sepfile_0;
7236 uint32_t _ptr_printprocessor;
7237 TALLOC_CTX *_mem_save_printprocessor_0;
7238 uint32_t _ptr_datatype;
7239 TALLOC_CTX *_mem_save_datatype_0;
7240 uint32_t _ptr_parameters;
7241 TALLOC_CTX *_mem_save_parameters_0;
7242 if (ndr_flags & NDR_SCALARS) {
7243 NDR_CHECK(ndr_pull_align(ndr, 5));
7244 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
7245 if (_ptr_servername) {
7246 NDR_PULL_ALLOC(ndr, r->servername);
7247 } else {
7248 r->servername = NULL;
7250 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
7251 if (_ptr_printername) {
7252 NDR_PULL_ALLOC(ndr, r->printername);
7253 } else {
7254 r->printername = NULL;
7256 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
7257 if (_ptr_sharename) {
7258 NDR_PULL_ALLOC(ndr, r->sharename);
7259 } else {
7260 r->sharename = NULL;
7262 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
7263 if (_ptr_portname) {
7264 NDR_PULL_ALLOC(ndr, r->portname);
7265 } else {
7266 r->portname = NULL;
7268 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
7269 if (_ptr_drivername) {
7270 NDR_PULL_ALLOC(ndr, r->drivername);
7271 } else {
7272 r->drivername = NULL;
7274 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
7275 if (_ptr_comment) {
7276 NDR_PULL_ALLOC(ndr, r->comment);
7277 } else {
7278 r->comment = NULL;
7280 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
7281 if (_ptr_location) {
7282 NDR_PULL_ALLOC(ndr, r->location);
7283 } else {
7284 r->location = NULL;
7286 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->devmode_ptr));
7287 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
7288 if (_ptr_sepfile) {
7289 NDR_PULL_ALLOC(ndr, r->sepfile);
7290 } else {
7291 r->sepfile = NULL;
7293 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
7294 if (_ptr_printprocessor) {
7295 NDR_PULL_ALLOC(ndr, r->printprocessor);
7296 } else {
7297 r->printprocessor = NULL;
7299 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
7300 if (_ptr_datatype) {
7301 NDR_PULL_ALLOC(ndr, r->datatype);
7302 } else {
7303 r->datatype = NULL;
7305 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
7306 if (_ptr_parameters) {
7307 NDR_PULL_ALLOC(ndr, r->parameters);
7308 } else {
7309 r->parameters = NULL;
7311 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->secdesc_ptr));
7312 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
7313 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
7314 if (r->priority > 99) {
7315 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
7317 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
7318 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
7319 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
7320 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
7321 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
7322 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
7323 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7325 if (ndr_flags & NDR_BUFFERS) {
7326 if (r->servername) {
7327 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7328 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
7329 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
7330 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
7331 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
7332 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));
7334 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
7335 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
7336 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
7338 if (r->printername) {
7339 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7340 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
7341 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
7342 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
7343 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
7344 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));
7346 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
7347 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
7348 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
7350 if (r->sharename) {
7351 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
7352 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
7353 NDR_CHECK(ndr_pull_array_size(ndr, &r->sharename));
7354 NDR_CHECK(ndr_pull_array_length(ndr, &r->sharename));
7355 if (ndr_get_array_length(ndr, &r->sharename) > ndr_get_array_size(ndr, &r->sharename)) {
7356 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));
7358 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t)));
7359 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sharename, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t), CH_UTF16));
7360 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
7362 if (r->portname) {
7363 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
7364 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
7365 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
7366 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
7367 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
7368 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));
7370 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
7371 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
7372 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
7374 if (r->drivername) {
7375 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7376 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
7377 NDR_CHECK(ndr_pull_array_size(ndr, &r->drivername));
7378 NDR_CHECK(ndr_pull_array_length(ndr, &r->drivername));
7379 if (ndr_get_array_length(ndr, &r->drivername) > ndr_get_array_size(ndr, &r->drivername)) {
7380 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));
7382 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t)));
7383 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->drivername, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t), CH_UTF16));
7384 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
7386 if (r->comment) {
7387 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
7388 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
7389 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
7390 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
7391 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
7392 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));
7394 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
7395 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
7396 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
7398 if (r->location) {
7399 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
7400 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
7401 NDR_CHECK(ndr_pull_array_size(ndr, &r->location));
7402 NDR_CHECK(ndr_pull_array_length(ndr, &r->location));
7403 if (ndr_get_array_length(ndr, &r->location) > ndr_get_array_size(ndr, &r->location)) {
7404 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));
7406 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t)));
7407 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->location, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t), CH_UTF16));
7408 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
7410 if (r->sepfile) {
7411 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
7412 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
7413 NDR_CHECK(ndr_pull_array_size(ndr, &r->sepfile));
7414 NDR_CHECK(ndr_pull_array_length(ndr, &r->sepfile));
7415 if (ndr_get_array_length(ndr, &r->sepfile) > ndr_get_array_size(ndr, &r->sepfile)) {
7416 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));
7418 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t)));
7419 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sepfile, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t), CH_UTF16));
7420 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
7422 if (r->printprocessor) {
7423 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
7424 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
7425 NDR_CHECK(ndr_pull_array_size(ndr, &r->printprocessor));
7426 NDR_CHECK(ndr_pull_array_length(ndr, &r->printprocessor));
7427 if (ndr_get_array_length(ndr, &r->printprocessor) > ndr_get_array_size(ndr, &r->printprocessor)) {
7428 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));
7430 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t)));
7431 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printprocessor, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t), CH_UTF16));
7432 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
7434 if (r->datatype) {
7435 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
7436 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
7437 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
7438 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
7439 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
7440 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));
7442 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
7443 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
7444 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
7446 if (r->parameters) {
7447 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
7448 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
7449 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
7450 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
7451 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
7452 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));
7454 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
7455 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
7456 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
7459 return NDR_ERR_SUCCESS;
7462 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo2 *r)
7464 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo2");
7465 ndr->depth++;
7466 ndr_print_ptr(ndr, "servername", r->servername);
7467 ndr->depth++;
7468 if (r->servername) {
7469 ndr_print_string(ndr, "servername", r->servername);
7471 ndr->depth--;
7472 ndr_print_ptr(ndr, "printername", r->printername);
7473 ndr->depth++;
7474 if (r->printername) {
7475 ndr_print_string(ndr, "printername", r->printername);
7477 ndr->depth--;
7478 ndr_print_ptr(ndr, "sharename", r->sharename);
7479 ndr->depth++;
7480 if (r->sharename) {
7481 ndr_print_string(ndr, "sharename", r->sharename);
7483 ndr->depth--;
7484 ndr_print_ptr(ndr, "portname", r->portname);
7485 ndr->depth++;
7486 if (r->portname) {
7487 ndr_print_string(ndr, "portname", r->portname);
7489 ndr->depth--;
7490 ndr_print_ptr(ndr, "drivername", r->drivername);
7491 ndr->depth++;
7492 if (r->drivername) {
7493 ndr_print_string(ndr, "drivername", r->drivername);
7495 ndr->depth--;
7496 ndr_print_ptr(ndr, "comment", r->comment);
7497 ndr->depth++;
7498 if (r->comment) {
7499 ndr_print_string(ndr, "comment", r->comment);
7501 ndr->depth--;
7502 ndr_print_ptr(ndr, "location", r->location);
7503 ndr->depth++;
7504 if (r->location) {
7505 ndr_print_string(ndr, "location", r->location);
7507 ndr->depth--;
7508 ndr_print_uint32(ndr, "devmode_ptr", r->devmode_ptr);
7509 ndr_print_ptr(ndr, "sepfile", r->sepfile);
7510 ndr->depth++;
7511 if (r->sepfile) {
7512 ndr_print_string(ndr, "sepfile", r->sepfile);
7514 ndr->depth--;
7515 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
7516 ndr->depth++;
7517 if (r->printprocessor) {
7518 ndr_print_string(ndr, "printprocessor", r->printprocessor);
7520 ndr->depth--;
7521 ndr_print_ptr(ndr, "datatype", r->datatype);
7522 ndr->depth++;
7523 if (r->datatype) {
7524 ndr_print_string(ndr, "datatype", r->datatype);
7526 ndr->depth--;
7527 ndr_print_ptr(ndr, "parameters", r->parameters);
7528 ndr->depth++;
7529 if (r->parameters) {
7530 ndr_print_string(ndr, "parameters", r->parameters);
7532 ndr->depth--;
7533 ndr_print_uint32(ndr, "secdesc_ptr", r->secdesc_ptr);
7534 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
7535 ndr_print_uint32(ndr, "priority", r->priority);
7536 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
7537 ndr_print_uint32(ndr, "starttime", r->starttime);
7538 ndr_print_uint32(ndr, "untiltime", r->untiltime);
7539 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
7540 ndr_print_uint32(ndr, "cjobs", r->cjobs);
7541 ndr_print_uint32(ndr, "averageppm", r->averageppm);
7542 ndr->depth--;
7545 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo3 *r)
7547 if (ndr_flags & NDR_SCALARS) {
7548 NDR_CHECK(ndr_push_align(ndr, 4));
7549 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sec_desc_ptr));
7550 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
7552 if (ndr_flags & NDR_BUFFERS) {
7554 return NDR_ERR_SUCCESS;
7557 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo3 *r)
7559 if (ndr_flags & NDR_SCALARS) {
7560 NDR_CHECK(ndr_pull_align(ndr, 4));
7561 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sec_desc_ptr));
7562 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
7564 if (ndr_flags & NDR_BUFFERS) {
7566 return NDR_ERR_SUCCESS;
7569 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo3 *r)
7571 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo3");
7572 ndr->depth++;
7573 ndr_print_uint32(ndr, "sec_desc_ptr", r->sec_desc_ptr);
7574 ndr->depth--;
7577 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo4 *r)
7579 if (ndr_flags & NDR_SCALARS) {
7580 NDR_CHECK(ndr_push_align(ndr, 5));
7581 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
7582 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
7583 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
7584 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7586 if (ndr_flags & NDR_BUFFERS) {
7587 if (r->printername) {
7588 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7589 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7590 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7591 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7593 if (r->servername) {
7594 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
7595 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7596 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
7597 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7600 return NDR_ERR_SUCCESS;
7603 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo4 *r)
7605 uint32_t _ptr_printername;
7606 TALLOC_CTX *_mem_save_printername_0;
7607 uint32_t _ptr_servername;
7608 TALLOC_CTX *_mem_save_servername_0;
7609 if (ndr_flags & NDR_SCALARS) {
7610 NDR_CHECK(ndr_pull_align(ndr, 5));
7611 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
7612 if (_ptr_printername) {
7613 NDR_PULL_ALLOC(ndr, r->printername);
7614 } else {
7615 r->printername = NULL;
7617 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
7618 if (_ptr_servername) {
7619 NDR_PULL_ALLOC(ndr, r->servername);
7620 } else {
7621 r->servername = NULL;
7623 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
7624 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7626 if (ndr_flags & NDR_BUFFERS) {
7627 if (r->printername) {
7628 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7629 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
7630 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
7631 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
7632 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
7633 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));
7635 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
7636 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
7637 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
7639 if (r->servername) {
7640 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7641 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
7642 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
7643 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
7644 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
7645 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));
7647 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
7648 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
7649 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
7652 return NDR_ERR_SUCCESS;
7655 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo4 *r)
7657 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo4");
7658 ndr->depth++;
7659 ndr_print_ptr(ndr, "printername", r->printername);
7660 ndr->depth++;
7661 if (r->printername) {
7662 ndr_print_string(ndr, "printername", r->printername);
7664 ndr->depth--;
7665 ndr_print_ptr(ndr, "servername", r->servername);
7666 ndr->depth++;
7667 if (r->servername) {
7668 ndr_print_string(ndr, "servername", r->servername);
7670 ndr->depth--;
7671 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
7672 ndr->depth--;
7675 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo5 *r)
7677 if (ndr_flags & NDR_SCALARS) {
7678 NDR_CHECK(ndr_push_align(ndr, 5));
7679 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
7680 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
7681 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
7682 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
7683 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
7684 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7686 if (ndr_flags & NDR_BUFFERS) {
7687 if (r->printername) {
7688 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7689 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7690 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7691 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7693 if (r->portname) {
7694 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
7695 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7696 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
7697 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7700 return NDR_ERR_SUCCESS;
7703 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo5 *r)
7705 uint32_t _ptr_printername;
7706 TALLOC_CTX *_mem_save_printername_0;
7707 uint32_t _ptr_portname;
7708 TALLOC_CTX *_mem_save_portname_0;
7709 if (ndr_flags & NDR_SCALARS) {
7710 NDR_CHECK(ndr_pull_align(ndr, 5));
7711 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
7712 if (_ptr_printername) {
7713 NDR_PULL_ALLOC(ndr, r->printername);
7714 } else {
7715 r->printername = NULL;
7717 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
7718 if (_ptr_portname) {
7719 NDR_PULL_ALLOC(ndr, r->portname);
7720 } else {
7721 r->portname = NULL;
7723 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
7724 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
7725 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
7726 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7728 if (ndr_flags & NDR_BUFFERS) {
7729 if (r->printername) {
7730 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7731 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
7732 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
7733 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
7734 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
7735 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));
7737 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
7738 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
7739 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
7741 if (r->portname) {
7742 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
7743 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
7744 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
7745 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
7746 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
7747 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));
7749 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
7750 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
7751 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
7754 return NDR_ERR_SUCCESS;
7757 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo5 *r)
7759 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo5");
7760 ndr->depth++;
7761 ndr_print_ptr(ndr, "printername", r->printername);
7762 ndr->depth++;
7763 if (r->printername) {
7764 ndr_print_string(ndr, "printername", r->printername);
7766 ndr->depth--;
7767 ndr_print_ptr(ndr, "portname", r->portname);
7768 ndr->depth++;
7769 if (r->portname) {
7770 ndr_print_string(ndr, "portname", r->portname);
7772 ndr->depth--;
7773 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
7774 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
7775 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
7776 ndr->depth--;
7779 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo6 *r)
7781 if (ndr_flags & NDR_SCALARS) {
7782 NDR_CHECK(ndr_push_align(ndr, 4));
7783 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
7784 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
7786 if (ndr_flags & NDR_BUFFERS) {
7788 return NDR_ERR_SUCCESS;
7791 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo6 *r)
7793 if (ndr_flags & NDR_SCALARS) {
7794 NDR_CHECK(ndr_pull_align(ndr, 4));
7795 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
7796 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
7798 if (ndr_flags & NDR_BUFFERS) {
7800 return NDR_ERR_SUCCESS;
7803 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo6 *r)
7805 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo6");
7806 ndr->depth++;
7807 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
7808 ndr->depth--;
7811 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo7 *r)
7813 if (ndr_flags & NDR_SCALARS) {
7814 NDR_CHECK(ndr_push_align(ndr, 5));
7815 NDR_CHECK(ndr_push_unique_ptr(ndr, r->guid));
7816 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
7817 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7819 if (ndr_flags & NDR_BUFFERS) {
7820 if (r->guid) {
7821 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
7822 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7823 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
7824 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->guid, ndr_charset_length(r->guid, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7827 return NDR_ERR_SUCCESS;
7830 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo7 *r)
7832 uint32_t _ptr_guid;
7833 TALLOC_CTX *_mem_save_guid_0;
7834 if (ndr_flags & NDR_SCALARS) {
7835 NDR_CHECK(ndr_pull_align(ndr, 5));
7836 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
7837 if (_ptr_guid) {
7838 NDR_PULL_ALLOC(ndr, r->guid);
7839 } else {
7840 r->guid = NULL;
7842 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
7843 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7845 if (ndr_flags & NDR_BUFFERS) {
7846 if (r->guid) {
7847 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
7848 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
7849 NDR_CHECK(ndr_pull_array_size(ndr, &r->guid));
7850 NDR_CHECK(ndr_pull_array_length(ndr, &r->guid));
7851 if (ndr_get_array_length(ndr, &r->guid) > ndr_get_array_size(ndr, &r->guid)) {
7852 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));
7854 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t)));
7855 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->guid, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t), CH_UTF16));
7856 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
7859 return NDR_ERR_SUCCESS;
7862 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo7 *r)
7864 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo7");
7865 ndr->depth++;
7866 ndr_print_ptr(ndr, "guid", r->guid);
7867 ndr->depth++;
7868 if (r->guid) {
7869 ndr_print_string(ndr, "guid", r->guid);
7871 ndr->depth--;
7872 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
7873 ndr->depth--;
7876 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo8 *r)
7878 if (ndr_flags & NDR_SCALARS) {
7879 NDR_CHECK(ndr_push_align(ndr, 4));
7880 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->devmode_ptr));
7881 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
7883 if (ndr_flags & NDR_BUFFERS) {
7885 return NDR_ERR_SUCCESS;
7888 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo8 *r)
7890 if (ndr_flags & NDR_SCALARS) {
7891 NDR_CHECK(ndr_pull_align(ndr, 4));
7892 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->devmode_ptr));
7893 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
7895 if (ndr_flags & NDR_BUFFERS) {
7897 return NDR_ERR_SUCCESS;
7900 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo8 *r)
7902 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo8");
7903 ndr->depth++;
7904 ndr_print_uint32(ndr, "devmode_ptr", r->devmode_ptr);
7905 ndr->depth--;
7908 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo9(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo9 *r)
7910 if (ndr_flags & NDR_SCALARS) {
7911 NDR_CHECK(ndr_push_align(ndr, 4));
7912 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->devmode_ptr));
7913 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
7915 if (ndr_flags & NDR_BUFFERS) {
7917 return NDR_ERR_SUCCESS;
7920 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo9(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo9 *r)
7922 if (ndr_flags & NDR_SCALARS) {
7923 NDR_CHECK(ndr_pull_align(ndr, 4));
7924 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->devmode_ptr));
7925 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
7927 if (ndr_flags & NDR_BUFFERS) {
7929 return NDR_ERR_SUCCESS;
7932 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo9(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo9 *r)
7934 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo9");
7935 ndr->depth++;
7936 ndr_print_uint32(ndr, "devmode_ptr", r->devmode_ptr);
7937 ndr->depth--;
7940 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetPrinterInfo *r)
7942 if (ndr_flags & NDR_SCALARS) {
7943 int level = ndr_push_get_switch_value(ndr, r);
7944 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7945 NDR_CHECK(ndr_push_union_align(ndr, 5));
7946 switch (level) {
7947 case 0: {
7948 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
7949 break; }
7951 case 1: {
7952 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7953 break; }
7955 case 2: {
7956 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
7957 break; }
7959 case 3: {
7960 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
7961 break; }
7963 case 4: {
7964 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
7965 break; }
7967 case 5: {
7968 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info5));
7969 break; }
7971 case 6: {
7972 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
7973 break; }
7975 case 7: {
7976 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info7));
7977 break; }
7979 case 8: {
7980 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
7981 break; }
7983 case 9: {
7984 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info9));
7985 break; }
7987 default: {
7988 break; }
7992 if (ndr_flags & NDR_BUFFERS) {
7993 int level = ndr_push_get_switch_value(ndr, r);
7994 switch (level) {
7995 case 0:
7996 if (r->info0) {
7997 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
7999 break;
8001 case 1:
8002 if (r->info1) {
8003 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
8005 break;
8007 case 2:
8008 if (r->info2) {
8009 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
8011 break;
8013 case 3:
8014 if (r->info3) {
8015 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
8017 break;
8019 case 4:
8020 if (r->info4) {
8021 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
8023 break;
8025 case 5:
8026 if (r->info5) {
8027 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
8029 break;
8031 case 6:
8032 if (r->info6) {
8033 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
8035 break;
8037 case 7:
8038 if (r->info7) {
8039 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
8041 break;
8043 case 8:
8044 if (r->info8) {
8045 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo8(ndr, NDR_SCALARS, r->info8));
8047 break;
8049 case 9:
8050 if (r->info9) {
8051 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo9(ndr, NDR_SCALARS, r->info9));
8053 break;
8055 default:
8056 break;
8060 return NDR_ERR_SUCCESS;
8063 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetPrinterInfo *r)
8065 int level;
8066 uint32_t _level;
8067 TALLOC_CTX *_mem_save_info0_0;
8068 TALLOC_CTX *_mem_save_info1_0;
8069 TALLOC_CTX *_mem_save_info2_0;
8070 TALLOC_CTX *_mem_save_info3_0;
8071 TALLOC_CTX *_mem_save_info4_0;
8072 TALLOC_CTX *_mem_save_info5_0;
8073 TALLOC_CTX *_mem_save_info6_0;
8074 TALLOC_CTX *_mem_save_info7_0;
8075 TALLOC_CTX *_mem_save_info8_0;
8076 TALLOC_CTX *_mem_save_info9_0;
8077 level = ndr_pull_get_switch_value(ndr, r);
8078 if (ndr_flags & NDR_SCALARS) {
8079 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
8080 if (_level != level) {
8081 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
8083 NDR_CHECK(ndr_pull_union_align(ndr, 5));
8084 switch (level) {
8085 case 0: {
8086 uint32_t _ptr_info0;
8087 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
8088 if (_ptr_info0) {
8089 NDR_PULL_ALLOC(ndr, r->info0);
8090 } else {
8091 r->info0 = NULL;
8093 break; }
8095 case 1: {
8096 uint32_t _ptr_info1;
8097 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
8098 if (_ptr_info1) {
8099 NDR_PULL_ALLOC(ndr, r->info1);
8100 } else {
8101 r->info1 = NULL;
8103 break; }
8105 case 2: {
8106 uint32_t _ptr_info2;
8107 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
8108 if (_ptr_info2) {
8109 NDR_PULL_ALLOC(ndr, r->info2);
8110 } else {
8111 r->info2 = NULL;
8113 break; }
8115 case 3: {
8116 uint32_t _ptr_info3;
8117 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
8118 if (_ptr_info3) {
8119 NDR_PULL_ALLOC(ndr, r->info3);
8120 } else {
8121 r->info3 = NULL;
8123 break; }
8125 case 4: {
8126 uint32_t _ptr_info4;
8127 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
8128 if (_ptr_info4) {
8129 NDR_PULL_ALLOC(ndr, r->info4);
8130 } else {
8131 r->info4 = NULL;
8133 break; }
8135 case 5: {
8136 uint32_t _ptr_info5;
8137 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info5));
8138 if (_ptr_info5) {
8139 NDR_PULL_ALLOC(ndr, r->info5);
8140 } else {
8141 r->info5 = NULL;
8143 break; }
8145 case 6: {
8146 uint32_t _ptr_info6;
8147 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
8148 if (_ptr_info6) {
8149 NDR_PULL_ALLOC(ndr, r->info6);
8150 } else {
8151 r->info6 = NULL;
8153 break; }
8155 case 7: {
8156 uint32_t _ptr_info7;
8157 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info7));
8158 if (_ptr_info7) {
8159 NDR_PULL_ALLOC(ndr, r->info7);
8160 } else {
8161 r->info7 = NULL;
8163 break; }
8165 case 8: {
8166 uint32_t _ptr_info8;
8167 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
8168 if (_ptr_info8) {
8169 NDR_PULL_ALLOC(ndr, r->info8);
8170 } else {
8171 r->info8 = NULL;
8173 break; }
8175 case 9: {
8176 uint32_t _ptr_info9;
8177 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info9));
8178 if (_ptr_info9) {
8179 NDR_PULL_ALLOC(ndr, r->info9);
8180 } else {
8181 r->info9 = NULL;
8183 break; }
8185 default: {
8186 break; }
8190 if (ndr_flags & NDR_BUFFERS) {
8191 switch (level) {
8192 case 0:
8193 if (r->info0) {
8194 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
8195 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
8196 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
8197 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
8199 break;
8201 case 1:
8202 if (r->info1) {
8203 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
8204 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
8205 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
8206 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
8208 break;
8210 case 2:
8211 if (r->info2) {
8212 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
8213 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
8214 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
8215 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
8217 break;
8219 case 3:
8220 if (r->info3) {
8221 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
8222 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
8223 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
8224 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
8226 break;
8228 case 4:
8229 if (r->info4) {
8230 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
8231 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
8232 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
8233 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
8235 break;
8237 case 5:
8238 if (r->info5) {
8239 _mem_save_info5_0 = NDR_PULL_GET_MEM_CTX(ndr);
8240 NDR_PULL_SET_MEM_CTX(ndr, r->info5, 0);
8241 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
8242 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info5_0, 0);
8244 break;
8246 case 6:
8247 if (r->info6) {
8248 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
8249 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
8250 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
8251 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
8253 break;
8255 case 7:
8256 if (r->info7) {
8257 _mem_save_info7_0 = NDR_PULL_GET_MEM_CTX(ndr);
8258 NDR_PULL_SET_MEM_CTX(ndr, r->info7, 0);
8259 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
8260 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info7_0, 0);
8262 break;
8264 case 8:
8265 if (r->info8) {
8266 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
8267 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
8268 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo8(ndr, NDR_SCALARS, r->info8));
8269 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
8271 break;
8273 case 9:
8274 if (r->info9) {
8275 _mem_save_info9_0 = NDR_PULL_GET_MEM_CTX(ndr);
8276 NDR_PULL_SET_MEM_CTX(ndr, r->info9, 0);
8277 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo9(ndr, NDR_SCALARS, r->info9));
8278 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info9_0, 0);
8280 break;
8282 default:
8283 break;
8287 return NDR_ERR_SUCCESS;
8290 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetPrinterInfo *r)
8292 int level;
8293 level = ndr_print_get_switch_value(ndr, r);
8294 ndr_print_union(ndr, name, level, "spoolss_SetPrinterInfo");
8295 switch (level) {
8296 case 0:
8297 ndr_print_ptr(ndr, "info0", r->info0);
8298 ndr->depth++;
8299 if (r->info0) {
8300 ndr_print_spoolss_SetPrinterInfo0(ndr, "info0", r->info0);
8302 ndr->depth--;
8303 break;
8305 case 1:
8306 ndr_print_ptr(ndr, "info1", r->info1);
8307 ndr->depth++;
8308 if (r->info1) {
8309 ndr_print_spoolss_SetPrinterInfo1(ndr, "info1", r->info1);
8311 ndr->depth--;
8312 break;
8314 case 2:
8315 ndr_print_ptr(ndr, "info2", r->info2);
8316 ndr->depth++;
8317 if (r->info2) {
8318 ndr_print_spoolss_SetPrinterInfo2(ndr, "info2", r->info2);
8320 ndr->depth--;
8321 break;
8323 case 3:
8324 ndr_print_ptr(ndr, "info3", r->info3);
8325 ndr->depth++;
8326 if (r->info3) {
8327 ndr_print_spoolss_SetPrinterInfo3(ndr, "info3", r->info3);
8329 ndr->depth--;
8330 break;
8332 case 4:
8333 ndr_print_ptr(ndr, "info4", r->info4);
8334 ndr->depth++;
8335 if (r->info4) {
8336 ndr_print_spoolss_SetPrinterInfo4(ndr, "info4", r->info4);
8338 ndr->depth--;
8339 break;
8341 case 5:
8342 ndr_print_ptr(ndr, "info5", r->info5);
8343 ndr->depth++;
8344 if (r->info5) {
8345 ndr_print_spoolss_SetPrinterInfo5(ndr, "info5", r->info5);
8347 ndr->depth--;
8348 break;
8350 case 6:
8351 ndr_print_ptr(ndr, "info6", r->info6);
8352 ndr->depth++;
8353 if (r->info6) {
8354 ndr_print_spoolss_SetPrinterInfo6(ndr, "info6", r->info6);
8356 ndr->depth--;
8357 break;
8359 case 7:
8360 ndr_print_ptr(ndr, "info7", r->info7);
8361 ndr->depth++;
8362 if (r->info7) {
8363 ndr_print_spoolss_SetPrinterInfo7(ndr, "info7", r->info7);
8365 ndr->depth--;
8366 break;
8368 case 8:
8369 ndr_print_ptr(ndr, "info8", r->info8);
8370 ndr->depth++;
8371 if (r->info8) {
8372 ndr_print_spoolss_SetPrinterInfo8(ndr, "info8", r->info8);
8374 ndr->depth--;
8375 break;
8377 case 9:
8378 ndr_print_ptr(ndr, "info9", r->info9);
8379 ndr->depth++;
8380 if (r->info9) {
8381 ndr_print_spoolss_SetPrinterInfo9(ndr, "info9", r->info9);
8383 ndr->depth--;
8384 break;
8386 default:
8387 break;
8392 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfoCtr *r)
8394 if (ndr_flags & NDR_SCALARS) {
8395 NDR_CHECK(ndr_push_align(ndr, 5));
8396 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
8397 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
8398 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
8399 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8401 if (ndr_flags & NDR_BUFFERS) {
8402 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
8404 return NDR_ERR_SUCCESS;
8407 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfoCtr *r)
8409 if (ndr_flags & NDR_SCALARS) {
8410 NDR_CHECK(ndr_pull_align(ndr, 5));
8411 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
8412 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
8413 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
8414 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8416 if (ndr_flags & NDR_BUFFERS) {
8417 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
8419 return NDR_ERR_SUCCESS;
8422 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfoCtr *r)
8424 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfoCtr");
8425 ndr->depth++;
8426 ndr_print_uint32(ndr, "level", r->level);
8427 ndr_print_set_switch_value(ndr, &r->info, r->level);
8428 ndr_print_spoolss_SetPrinterInfo(ndr, "info", &r->info);
8429 ndr->depth--;
8432 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_StringArray(struct ndr_push *ndr, int ndr_flags, const struct spoolss_StringArray *r)
8434 if (ndr_flags & NDR_SCALARS) {
8435 NDR_CHECK(ndr_push_align(ndr, 4));
8436 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, (ndr_size_spoolss_StringArray(r, ndr->iconv_convenience, ndr->flags) - 4) / 2));
8438 uint32_t _flags_save_string_array = ndr->flags;
8439 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8440 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string));
8441 ndr->flags = _flags_save_string_array;
8443 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
8445 if (ndr_flags & NDR_BUFFERS) {
8447 return NDR_ERR_SUCCESS;
8450 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_StringArray(struct ndr_pull *ndr, int ndr_flags, struct spoolss_StringArray *r)
8452 if (ndr_flags & NDR_SCALARS) {
8453 NDR_CHECK(ndr_pull_align(ndr, 4));
8454 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
8456 uint32_t _flags_save_string_array = ndr->flags;
8457 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8458 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string));
8459 ndr->flags = _flags_save_string_array;
8461 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
8463 if (ndr_flags & NDR_BUFFERS) {
8465 return NDR_ERR_SUCCESS;
8468 _PUBLIC_ void ndr_print_spoolss_StringArray(struct ndr_print *ndr, const char *name, const struct spoolss_StringArray *r)
8470 ndr_print_struct(ndr, name, "spoolss_StringArray");
8471 ndr->depth++;
8472 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);
8473 ndr_print_string_array(ndr, "string", r->string);
8474 ndr->depth--;
8477 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo1 *r)
8479 if (ndr_flags & NDR_SCALARS) {
8480 NDR_CHECK(ndr_push_align(ndr, 5));
8481 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8482 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8484 if (ndr_flags & NDR_BUFFERS) {
8485 if (r->driver_name) {
8486 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8487 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8488 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8489 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8492 return NDR_ERR_SUCCESS;
8495 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo1 *r)
8497 uint32_t _ptr_driver_name;
8498 TALLOC_CTX *_mem_save_driver_name_0;
8499 if (ndr_flags & NDR_SCALARS) {
8500 NDR_CHECK(ndr_pull_align(ndr, 5));
8501 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8502 if (_ptr_driver_name) {
8503 NDR_PULL_ALLOC(ndr, r->driver_name);
8504 } else {
8505 r->driver_name = NULL;
8507 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8509 if (ndr_flags & NDR_BUFFERS) {
8510 if (r->driver_name) {
8511 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8512 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8513 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8514 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8515 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8516 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));
8518 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8519 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8520 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8523 return NDR_ERR_SUCCESS;
8526 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo1 *r)
8528 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo1");
8529 ndr->depth++;
8530 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8531 ndr->depth++;
8532 if (r->driver_name) {
8533 ndr_print_string(ndr, "driver_name", r->driver_name);
8535 ndr->depth--;
8536 ndr->depth--;
8539 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverOSVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverOSVersion r)
8541 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
8542 return NDR_ERR_SUCCESS;
8545 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverOSVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverOSVersion *r)
8547 uint32_t v;
8548 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
8549 *r = v;
8550 return NDR_ERR_SUCCESS;
8553 _PUBLIC_ void ndr_print_spoolss_DriverOSVersion(struct ndr_print *ndr, const char *name, enum spoolss_DriverOSVersion r)
8555 const char *val = NULL;
8557 switch (r) {
8558 case SPOOLSS_DRIVER_VERSION_9X: val = "SPOOLSS_DRIVER_VERSION_9X"; break;
8559 case SPOOLSS_DRIVER_VERSION_NT35: val = "SPOOLSS_DRIVER_VERSION_NT35"; break;
8560 case SPOOLSS_DRIVER_VERSION_NT4: val = "SPOOLSS_DRIVER_VERSION_NT4"; break;
8561 case SPOOLSS_DRIVER_VERSION_200X: val = "SPOOLSS_DRIVER_VERSION_200X"; break;
8563 ndr_print_enum(ndr, name, "ENUM", val, r);
8566 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo2 *r)
8568 if (ndr_flags & NDR_SCALARS) {
8569 NDR_CHECK(ndr_push_align(ndr, 5));
8570 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8571 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8572 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8573 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8574 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8575 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8576 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8578 if (ndr_flags & NDR_BUFFERS) {
8579 if (r->driver_name) {
8580 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8581 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8582 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8583 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8585 if (r->architecture) {
8586 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8587 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8588 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8589 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8591 if (r->driver_path) {
8592 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8593 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8594 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8595 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8597 if (r->data_file) {
8598 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8599 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8600 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8601 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8603 if (r->config_file) {
8604 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8605 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8606 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8607 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8610 return NDR_ERR_SUCCESS;
8613 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo2 *r)
8615 uint32_t _ptr_driver_name;
8616 TALLOC_CTX *_mem_save_driver_name_0;
8617 uint32_t _ptr_architecture;
8618 TALLOC_CTX *_mem_save_architecture_0;
8619 uint32_t _ptr_driver_path;
8620 TALLOC_CTX *_mem_save_driver_path_0;
8621 uint32_t _ptr_data_file;
8622 TALLOC_CTX *_mem_save_data_file_0;
8623 uint32_t _ptr_config_file;
8624 TALLOC_CTX *_mem_save_config_file_0;
8625 if (ndr_flags & NDR_SCALARS) {
8626 NDR_CHECK(ndr_pull_align(ndr, 5));
8627 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8628 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8629 if (_ptr_driver_name) {
8630 NDR_PULL_ALLOC(ndr, r->driver_name);
8631 } else {
8632 r->driver_name = NULL;
8634 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8635 if (_ptr_architecture) {
8636 NDR_PULL_ALLOC(ndr, r->architecture);
8637 } else {
8638 r->architecture = NULL;
8640 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8641 if (_ptr_driver_path) {
8642 NDR_PULL_ALLOC(ndr, r->driver_path);
8643 } else {
8644 r->driver_path = NULL;
8646 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8647 if (_ptr_data_file) {
8648 NDR_PULL_ALLOC(ndr, r->data_file);
8649 } else {
8650 r->data_file = NULL;
8652 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8653 if (_ptr_config_file) {
8654 NDR_PULL_ALLOC(ndr, r->config_file);
8655 } else {
8656 r->config_file = NULL;
8658 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8660 if (ndr_flags & NDR_BUFFERS) {
8661 if (r->driver_name) {
8662 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8663 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8664 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8665 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8666 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8667 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));
8669 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8670 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8671 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8673 if (r->architecture) {
8674 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8675 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8676 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8677 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8678 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8679 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));
8681 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8682 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8683 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8685 if (r->driver_path) {
8686 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8687 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8688 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8689 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8690 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8691 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));
8693 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8694 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8695 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8697 if (r->data_file) {
8698 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8699 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8700 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8701 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8702 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8703 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));
8705 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8706 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8707 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8709 if (r->config_file) {
8710 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8711 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8712 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8713 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8714 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8715 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));
8717 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8718 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8719 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8722 return NDR_ERR_SUCCESS;
8725 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo2 *r)
8727 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo2");
8728 ndr->depth++;
8729 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8730 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8731 ndr->depth++;
8732 if (r->driver_name) {
8733 ndr_print_string(ndr, "driver_name", r->driver_name);
8735 ndr->depth--;
8736 ndr_print_ptr(ndr, "architecture", r->architecture);
8737 ndr->depth++;
8738 if (r->architecture) {
8739 ndr_print_string(ndr, "architecture", r->architecture);
8741 ndr->depth--;
8742 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8743 ndr->depth++;
8744 if (r->driver_path) {
8745 ndr_print_string(ndr, "driver_path", r->driver_path);
8747 ndr->depth--;
8748 ndr_print_ptr(ndr, "data_file", r->data_file);
8749 ndr->depth++;
8750 if (r->data_file) {
8751 ndr_print_string(ndr, "data_file", r->data_file);
8753 ndr->depth--;
8754 ndr_print_ptr(ndr, "config_file", r->config_file);
8755 ndr->depth++;
8756 if (r->config_file) {
8757 ndr_print_string(ndr, "config_file", r->config_file);
8759 ndr->depth--;
8760 ndr->depth--;
8763 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo3 *r)
8765 if (ndr_flags & NDR_SCALARS) {
8766 NDR_CHECK(ndr_push_align(ndr, 5));
8767 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8768 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8769 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8770 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8771 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8772 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8773 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8774 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8775 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8776 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8777 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8778 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8780 if (ndr_flags & NDR_BUFFERS) {
8781 if (r->driver_name) {
8782 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8783 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8784 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8785 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8787 if (r->architecture) {
8788 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8789 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8790 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8791 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8793 if (r->driver_path) {
8794 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8795 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8796 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8797 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8799 if (r->data_file) {
8800 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8801 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8802 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8803 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8805 if (r->config_file) {
8806 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8807 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8808 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8809 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8811 if (r->help_file) {
8812 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8813 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8814 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8815 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8817 if (r->monitor_name) {
8818 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8819 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8820 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8821 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8823 if (r->default_datatype) {
8824 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8825 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8826 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8827 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8829 if (r->dependent_files) {
8830 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8833 return NDR_ERR_SUCCESS;
8836 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo3 *r)
8838 uint32_t _ptr_driver_name;
8839 TALLOC_CTX *_mem_save_driver_name_0;
8840 uint32_t _ptr_architecture;
8841 TALLOC_CTX *_mem_save_architecture_0;
8842 uint32_t _ptr_driver_path;
8843 TALLOC_CTX *_mem_save_driver_path_0;
8844 uint32_t _ptr_data_file;
8845 TALLOC_CTX *_mem_save_data_file_0;
8846 uint32_t _ptr_config_file;
8847 TALLOC_CTX *_mem_save_config_file_0;
8848 uint32_t _ptr_help_file;
8849 TALLOC_CTX *_mem_save_help_file_0;
8850 uint32_t _ptr_monitor_name;
8851 TALLOC_CTX *_mem_save_monitor_name_0;
8852 uint32_t _ptr_default_datatype;
8853 TALLOC_CTX *_mem_save_default_datatype_0;
8854 uint32_t _ptr_dependent_files;
8855 TALLOC_CTX *_mem_save_dependent_files_0;
8856 if (ndr_flags & NDR_SCALARS) {
8857 NDR_CHECK(ndr_pull_align(ndr, 5));
8858 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8859 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8860 if (_ptr_driver_name) {
8861 NDR_PULL_ALLOC(ndr, r->driver_name);
8862 } else {
8863 r->driver_name = NULL;
8865 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8866 if (_ptr_architecture) {
8867 NDR_PULL_ALLOC(ndr, r->architecture);
8868 } else {
8869 r->architecture = NULL;
8871 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8872 if (_ptr_driver_path) {
8873 NDR_PULL_ALLOC(ndr, r->driver_path);
8874 } else {
8875 r->driver_path = NULL;
8877 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8878 if (_ptr_data_file) {
8879 NDR_PULL_ALLOC(ndr, r->data_file);
8880 } else {
8881 r->data_file = NULL;
8883 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8884 if (_ptr_config_file) {
8885 NDR_PULL_ALLOC(ndr, r->config_file);
8886 } else {
8887 r->config_file = NULL;
8889 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8890 if (_ptr_help_file) {
8891 NDR_PULL_ALLOC(ndr, r->help_file);
8892 } else {
8893 r->help_file = NULL;
8895 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8896 if (_ptr_monitor_name) {
8897 NDR_PULL_ALLOC(ndr, r->monitor_name);
8898 } else {
8899 r->monitor_name = NULL;
8901 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8902 if (_ptr_default_datatype) {
8903 NDR_PULL_ALLOC(ndr, r->default_datatype);
8904 } else {
8905 r->default_datatype = NULL;
8907 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8908 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8909 if (_ptr_dependent_files) {
8910 NDR_PULL_ALLOC(ndr, r->dependent_files);
8911 } else {
8912 r->dependent_files = NULL;
8914 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8916 if (ndr_flags & NDR_BUFFERS) {
8917 if (r->driver_name) {
8918 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8919 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8920 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8921 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8922 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8923 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));
8925 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8926 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8927 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8929 if (r->architecture) {
8930 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8931 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8932 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8933 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8934 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8935 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));
8937 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8938 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8939 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8941 if (r->driver_path) {
8942 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8943 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8944 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8945 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8946 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8947 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));
8949 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8950 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8951 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8953 if (r->data_file) {
8954 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8955 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8956 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8957 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8958 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8959 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));
8961 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8962 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8963 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8965 if (r->config_file) {
8966 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8967 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8968 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8969 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8970 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8971 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));
8973 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8974 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8975 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8977 if (r->help_file) {
8978 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8979 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8980 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8981 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8982 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8983 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));
8985 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8986 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
8987 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8989 if (r->monitor_name) {
8990 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8991 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8992 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8993 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8994 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8995 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));
8997 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8998 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
8999 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9001 if (r->default_datatype) {
9002 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9003 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9004 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9005 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9006 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
9007 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));
9009 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
9010 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
9011 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9013 if (r->dependent_files) {
9014 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9015 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9016 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9017 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9020 return NDR_ERR_SUCCESS;
9023 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo3 *r)
9025 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo3");
9026 ndr->depth++;
9027 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9028 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9029 ndr->depth++;
9030 if (r->driver_name) {
9031 ndr_print_string(ndr, "driver_name", r->driver_name);
9033 ndr->depth--;
9034 ndr_print_ptr(ndr, "architecture", r->architecture);
9035 ndr->depth++;
9036 if (r->architecture) {
9037 ndr_print_string(ndr, "architecture", r->architecture);
9039 ndr->depth--;
9040 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9041 ndr->depth++;
9042 if (r->driver_path) {
9043 ndr_print_string(ndr, "driver_path", r->driver_path);
9045 ndr->depth--;
9046 ndr_print_ptr(ndr, "data_file", r->data_file);
9047 ndr->depth++;
9048 if (r->data_file) {
9049 ndr_print_string(ndr, "data_file", r->data_file);
9051 ndr->depth--;
9052 ndr_print_ptr(ndr, "config_file", r->config_file);
9053 ndr->depth++;
9054 if (r->config_file) {
9055 ndr_print_string(ndr, "config_file", r->config_file);
9057 ndr->depth--;
9058 ndr_print_ptr(ndr, "help_file", r->help_file);
9059 ndr->depth++;
9060 if (r->help_file) {
9061 ndr_print_string(ndr, "help_file", r->help_file);
9063 ndr->depth--;
9064 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9065 ndr->depth++;
9066 if (r->monitor_name) {
9067 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9069 ndr->depth--;
9070 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9071 ndr->depth++;
9072 if (r->default_datatype) {
9073 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9075 ndr->depth--;
9076 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);
9077 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9078 ndr->depth++;
9079 if (r->dependent_files) {
9080 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9082 ndr->depth--;
9083 ndr->depth--;
9086 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo4 *r)
9088 if (ndr_flags & NDR_SCALARS) {
9089 NDR_CHECK(ndr_push_align(ndr, 5));
9090 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9091 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
9092 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
9093 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
9094 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
9095 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
9096 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
9097 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
9098 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
9099 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9100 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
9101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9102 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
9103 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
9105 if (ndr_flags & NDR_BUFFERS) {
9106 if (r->driver_name) {
9107 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9108 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9109 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9110 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9112 if (r->architecture) {
9113 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9114 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9115 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9116 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9118 if (r->driver_path) {
9119 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9120 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9121 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9122 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9124 if (r->data_file) {
9125 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9126 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9127 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9128 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9130 if (r->config_file) {
9131 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9132 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9133 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9134 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9136 if (r->help_file) {
9137 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9138 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9139 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9140 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9142 if (r->monitor_name) {
9143 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9144 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9145 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9146 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9148 if (r->default_datatype) {
9149 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9150 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9151 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9152 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9154 if (r->dependent_files) {
9155 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9157 if (r->previous_names) {
9158 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9161 return NDR_ERR_SUCCESS;
9164 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo4 *r)
9166 uint32_t _ptr_driver_name;
9167 TALLOC_CTX *_mem_save_driver_name_0;
9168 uint32_t _ptr_architecture;
9169 TALLOC_CTX *_mem_save_architecture_0;
9170 uint32_t _ptr_driver_path;
9171 TALLOC_CTX *_mem_save_driver_path_0;
9172 uint32_t _ptr_data_file;
9173 TALLOC_CTX *_mem_save_data_file_0;
9174 uint32_t _ptr_config_file;
9175 TALLOC_CTX *_mem_save_config_file_0;
9176 uint32_t _ptr_help_file;
9177 TALLOC_CTX *_mem_save_help_file_0;
9178 uint32_t _ptr_monitor_name;
9179 TALLOC_CTX *_mem_save_monitor_name_0;
9180 uint32_t _ptr_default_datatype;
9181 TALLOC_CTX *_mem_save_default_datatype_0;
9182 uint32_t _ptr_dependent_files;
9183 TALLOC_CTX *_mem_save_dependent_files_0;
9184 uint32_t _ptr_previous_names;
9185 TALLOC_CTX *_mem_save_previous_names_0;
9186 if (ndr_flags & NDR_SCALARS) {
9187 NDR_CHECK(ndr_pull_align(ndr, 5));
9188 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9189 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9190 if (_ptr_driver_name) {
9191 NDR_PULL_ALLOC(ndr, r->driver_name);
9192 } else {
9193 r->driver_name = NULL;
9195 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9196 if (_ptr_architecture) {
9197 NDR_PULL_ALLOC(ndr, r->architecture);
9198 } else {
9199 r->architecture = NULL;
9201 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9202 if (_ptr_driver_path) {
9203 NDR_PULL_ALLOC(ndr, r->driver_path);
9204 } else {
9205 r->driver_path = NULL;
9207 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9208 if (_ptr_data_file) {
9209 NDR_PULL_ALLOC(ndr, r->data_file);
9210 } else {
9211 r->data_file = NULL;
9213 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9214 if (_ptr_config_file) {
9215 NDR_PULL_ALLOC(ndr, r->config_file);
9216 } else {
9217 r->config_file = NULL;
9219 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9220 if (_ptr_help_file) {
9221 NDR_PULL_ALLOC(ndr, r->help_file);
9222 } else {
9223 r->help_file = NULL;
9225 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9226 if (_ptr_monitor_name) {
9227 NDR_PULL_ALLOC(ndr, r->monitor_name);
9228 } else {
9229 r->monitor_name = NULL;
9231 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9232 if (_ptr_default_datatype) {
9233 NDR_PULL_ALLOC(ndr, r->default_datatype);
9234 } else {
9235 r->default_datatype = NULL;
9237 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9238 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9239 if (_ptr_dependent_files) {
9240 NDR_PULL_ALLOC(ndr, r->dependent_files);
9241 } else {
9242 r->dependent_files = NULL;
9244 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
9245 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9246 if (_ptr_previous_names) {
9247 NDR_PULL_ALLOC(ndr, r->previous_names);
9248 } else {
9249 r->previous_names = NULL;
9251 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
9253 if (ndr_flags & NDR_BUFFERS) {
9254 if (r->driver_name) {
9255 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9256 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9257 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9258 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9259 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
9260 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
9262 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
9263 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
9264 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9266 if (r->architecture) {
9267 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9268 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9269 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9270 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9271 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
9272 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));
9274 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
9275 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
9276 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9278 if (r->driver_path) {
9279 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9280 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9281 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9282 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9283 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
9284 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
9286 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
9287 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
9288 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9290 if (r->data_file) {
9291 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9292 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9293 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9294 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9295 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
9296 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
9298 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
9299 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
9300 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9302 if (r->config_file) {
9303 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9304 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9305 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9306 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9307 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
9308 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
9310 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
9311 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
9312 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9314 if (r->help_file) {
9315 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9316 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9317 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9318 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9319 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
9320 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->help_file), ndr_get_array_length(ndr, &r->help_file));
9322 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
9323 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
9324 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9326 if (r->monitor_name) {
9327 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9328 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9329 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9330 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9331 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
9332 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->monitor_name), ndr_get_array_length(ndr, &r->monitor_name));
9334 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
9335 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
9336 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9338 if (r->default_datatype) {
9339 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9340 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9341 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9342 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9343 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
9344 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->default_datatype), ndr_get_array_length(ndr, &r->default_datatype));
9346 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
9347 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
9348 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9350 if (r->dependent_files) {
9351 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9352 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9353 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9354 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9356 if (r->previous_names) {
9357 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9358 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9359 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9360 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9363 return NDR_ERR_SUCCESS;
9366 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo4 *r)
9368 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo4");
9369 ndr->depth++;
9370 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9371 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9372 ndr->depth++;
9373 if (r->driver_name) {
9374 ndr_print_string(ndr, "driver_name", r->driver_name);
9376 ndr->depth--;
9377 ndr_print_ptr(ndr, "architecture", r->architecture);
9378 ndr->depth++;
9379 if (r->architecture) {
9380 ndr_print_string(ndr, "architecture", r->architecture);
9382 ndr->depth--;
9383 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9384 ndr->depth++;
9385 if (r->driver_path) {
9386 ndr_print_string(ndr, "driver_path", r->driver_path);
9388 ndr->depth--;
9389 ndr_print_ptr(ndr, "data_file", r->data_file);
9390 ndr->depth++;
9391 if (r->data_file) {
9392 ndr_print_string(ndr, "data_file", r->data_file);
9394 ndr->depth--;
9395 ndr_print_ptr(ndr, "config_file", r->config_file);
9396 ndr->depth++;
9397 if (r->config_file) {
9398 ndr_print_string(ndr, "config_file", r->config_file);
9400 ndr->depth--;
9401 ndr_print_ptr(ndr, "help_file", r->help_file);
9402 ndr->depth++;
9403 if (r->help_file) {
9404 ndr_print_string(ndr, "help_file", r->help_file);
9406 ndr->depth--;
9407 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9408 ndr->depth++;
9409 if (r->monitor_name) {
9410 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9412 ndr->depth--;
9413 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9414 ndr->depth++;
9415 if (r->default_datatype) {
9416 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9418 ndr->depth--;
9419 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);
9420 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9421 ndr->depth++;
9422 if (r->dependent_files) {
9423 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9425 ndr->depth--;
9426 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);
9427 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9428 ndr->depth++;
9429 if (r->previous_names) {
9430 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
9432 ndr->depth--;
9433 ndr->depth--;
9436 static enum ndr_err_code ndr_push_spoolss_DriverAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
9438 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
9439 return NDR_ERR_SUCCESS;
9442 static enum ndr_err_code ndr_pull_spoolss_DriverAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
9444 uint32_t v;
9445 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
9446 *r = v;
9447 return NDR_ERR_SUCCESS;
9450 _PUBLIC_ void ndr_print_spoolss_DriverAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
9452 ndr_print_uint32(ndr, name, r);
9453 ndr->depth++;
9454 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_PACKAGE_AWARE", PRINTER_DRIVER_PACKAGE_AWARE, r);
9455 ndr->depth--;
9458 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo6 *r)
9460 if (ndr_flags & NDR_SCALARS) {
9461 NDR_CHECK(ndr_push_align(ndr, 8));
9462 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9463 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
9464 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
9465 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
9466 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
9467 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
9468 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
9469 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
9470 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
9471 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9472 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
9473 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9474 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
9475 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
9476 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
9477 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
9478 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
9479 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
9480 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
9481 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
9483 if (ndr_flags & NDR_BUFFERS) {
9484 if (r->driver_name) {
9485 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9486 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9487 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9488 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9490 if (r->architecture) {
9491 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9492 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9493 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9494 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9496 if (r->driver_path) {
9497 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9498 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9499 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9500 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9502 if (r->data_file) {
9503 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9504 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9505 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9506 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9508 if (r->config_file) {
9509 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9510 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9511 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9512 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9514 if (r->help_file) {
9515 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9516 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9517 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9518 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9520 if (r->monitor_name) {
9521 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9522 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9523 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9524 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9526 if (r->default_datatype) {
9527 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9528 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9529 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9530 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9532 if (r->dependent_files) {
9533 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9535 if (r->previous_names) {
9536 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9538 if (r->manufacturer_name) {
9539 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9540 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9541 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9542 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9544 if (r->manufacturer_url) {
9545 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9546 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9547 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9548 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9550 if (r->hardware_id) {
9551 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9552 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9553 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9554 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9556 if (r->provider) {
9557 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9558 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9559 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9560 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9563 return NDR_ERR_SUCCESS;
9566 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo6 *r)
9568 uint32_t _ptr_driver_name;
9569 TALLOC_CTX *_mem_save_driver_name_0;
9570 uint32_t _ptr_architecture;
9571 TALLOC_CTX *_mem_save_architecture_0;
9572 uint32_t _ptr_driver_path;
9573 TALLOC_CTX *_mem_save_driver_path_0;
9574 uint32_t _ptr_data_file;
9575 TALLOC_CTX *_mem_save_data_file_0;
9576 uint32_t _ptr_config_file;
9577 TALLOC_CTX *_mem_save_config_file_0;
9578 uint32_t _ptr_help_file;
9579 TALLOC_CTX *_mem_save_help_file_0;
9580 uint32_t _ptr_monitor_name;
9581 TALLOC_CTX *_mem_save_monitor_name_0;
9582 uint32_t _ptr_default_datatype;
9583 TALLOC_CTX *_mem_save_default_datatype_0;
9584 uint32_t _ptr_dependent_files;
9585 TALLOC_CTX *_mem_save_dependent_files_0;
9586 uint32_t _ptr_previous_names;
9587 TALLOC_CTX *_mem_save_previous_names_0;
9588 uint32_t _ptr_manufacturer_name;
9589 TALLOC_CTX *_mem_save_manufacturer_name_0;
9590 uint32_t _ptr_manufacturer_url;
9591 TALLOC_CTX *_mem_save_manufacturer_url_0;
9592 uint32_t _ptr_hardware_id;
9593 TALLOC_CTX *_mem_save_hardware_id_0;
9594 uint32_t _ptr_provider;
9595 TALLOC_CTX *_mem_save_provider_0;
9596 if (ndr_flags & NDR_SCALARS) {
9597 NDR_CHECK(ndr_pull_align(ndr, 8));
9598 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9599 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9600 if (_ptr_driver_name) {
9601 NDR_PULL_ALLOC(ndr, r->driver_name);
9602 } else {
9603 r->driver_name = NULL;
9605 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9606 if (_ptr_architecture) {
9607 NDR_PULL_ALLOC(ndr, r->architecture);
9608 } else {
9609 r->architecture = NULL;
9611 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9612 if (_ptr_driver_path) {
9613 NDR_PULL_ALLOC(ndr, r->driver_path);
9614 } else {
9615 r->driver_path = NULL;
9617 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9618 if (_ptr_data_file) {
9619 NDR_PULL_ALLOC(ndr, r->data_file);
9620 } else {
9621 r->data_file = NULL;
9623 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9624 if (_ptr_config_file) {
9625 NDR_PULL_ALLOC(ndr, r->config_file);
9626 } else {
9627 r->config_file = NULL;
9629 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9630 if (_ptr_help_file) {
9631 NDR_PULL_ALLOC(ndr, r->help_file);
9632 } else {
9633 r->help_file = NULL;
9635 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9636 if (_ptr_monitor_name) {
9637 NDR_PULL_ALLOC(ndr, r->monitor_name);
9638 } else {
9639 r->monitor_name = NULL;
9641 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9642 if (_ptr_default_datatype) {
9643 NDR_PULL_ALLOC(ndr, r->default_datatype);
9644 } else {
9645 r->default_datatype = NULL;
9647 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9648 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9649 if (_ptr_dependent_files) {
9650 NDR_PULL_ALLOC(ndr, r->dependent_files);
9651 } else {
9652 r->dependent_files = NULL;
9654 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
9655 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9656 if (_ptr_previous_names) {
9657 NDR_PULL_ALLOC(ndr, r->previous_names);
9658 } else {
9659 r->previous_names = NULL;
9661 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
9662 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9663 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9664 if (_ptr_manufacturer_name) {
9665 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9666 } else {
9667 r->manufacturer_name = NULL;
9669 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9670 if (_ptr_manufacturer_url) {
9671 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9672 } else {
9673 r->manufacturer_url = NULL;
9675 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9676 if (_ptr_hardware_id) {
9677 NDR_PULL_ALLOC(ndr, r->hardware_id);
9678 } else {
9679 r->hardware_id = NULL;
9681 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9682 if (_ptr_provider) {
9683 NDR_PULL_ALLOC(ndr, r->provider);
9684 } else {
9685 r->provider = NULL;
9687 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
9689 if (ndr_flags & NDR_BUFFERS) {
9690 if (r->driver_name) {
9691 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9692 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9693 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9694 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9695 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
9696 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));
9698 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
9699 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
9700 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9702 if (r->architecture) {
9703 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9704 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9705 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9706 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9707 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
9708 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));
9710 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
9711 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
9712 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9714 if (r->driver_path) {
9715 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9716 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9717 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9718 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9719 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
9720 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));
9722 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
9723 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
9724 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9726 if (r->data_file) {
9727 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9728 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9729 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9730 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9731 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
9732 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));
9734 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
9735 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
9736 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9738 if (r->config_file) {
9739 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9740 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9741 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9742 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9743 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
9744 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));
9746 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
9747 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
9748 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9750 if (r->help_file) {
9751 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9752 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9753 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9754 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9755 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
9756 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));
9758 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
9759 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
9760 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9762 if (r->monitor_name) {
9763 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9764 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9765 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9766 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9767 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
9768 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));
9770 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
9771 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
9772 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9774 if (r->default_datatype) {
9775 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9776 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9777 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9778 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9779 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
9780 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));
9782 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
9783 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
9784 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9786 if (r->dependent_files) {
9787 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9788 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9789 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9790 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9792 if (r->previous_names) {
9793 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9794 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9795 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9796 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9798 if (r->manufacturer_name) {
9799 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9800 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
9801 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
9802 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
9803 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
9804 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));
9806 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
9807 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
9808 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
9810 if (r->manufacturer_url) {
9811 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
9812 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
9813 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
9814 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
9815 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
9816 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));
9818 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
9819 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
9820 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
9822 if (r->hardware_id) {
9823 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9824 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
9825 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
9826 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
9827 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
9828 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));
9830 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
9831 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
9832 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
9834 if (r->provider) {
9835 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
9836 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
9837 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
9838 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
9839 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
9840 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));
9842 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
9843 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
9844 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
9847 return NDR_ERR_SUCCESS;
9850 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo6 *r)
9852 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo6");
9853 ndr->depth++;
9854 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9855 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9856 ndr->depth++;
9857 if (r->driver_name) {
9858 ndr_print_string(ndr, "driver_name", r->driver_name);
9860 ndr->depth--;
9861 ndr_print_ptr(ndr, "architecture", r->architecture);
9862 ndr->depth++;
9863 if (r->architecture) {
9864 ndr_print_string(ndr, "architecture", r->architecture);
9866 ndr->depth--;
9867 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9868 ndr->depth++;
9869 if (r->driver_path) {
9870 ndr_print_string(ndr, "driver_path", r->driver_path);
9872 ndr->depth--;
9873 ndr_print_ptr(ndr, "data_file", r->data_file);
9874 ndr->depth++;
9875 if (r->data_file) {
9876 ndr_print_string(ndr, "data_file", r->data_file);
9878 ndr->depth--;
9879 ndr_print_ptr(ndr, "config_file", r->config_file);
9880 ndr->depth++;
9881 if (r->config_file) {
9882 ndr_print_string(ndr, "config_file", r->config_file);
9884 ndr->depth--;
9885 ndr_print_ptr(ndr, "help_file", r->help_file);
9886 ndr->depth++;
9887 if (r->help_file) {
9888 ndr_print_string(ndr, "help_file", r->help_file);
9890 ndr->depth--;
9891 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9892 ndr->depth++;
9893 if (r->monitor_name) {
9894 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9896 ndr->depth--;
9897 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9898 ndr->depth++;
9899 if (r->default_datatype) {
9900 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9902 ndr->depth--;
9903 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);
9904 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9905 ndr->depth++;
9906 if (r->dependent_files) {
9907 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9909 ndr->depth--;
9910 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);
9911 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9912 ndr->depth++;
9913 if (r->previous_names) {
9914 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
9916 ndr->depth--;
9917 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
9918 ndr_print_hyper(ndr, "driver_version", r->driver_version);
9919 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
9920 ndr->depth++;
9921 if (r->manufacturer_name) {
9922 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
9924 ndr->depth--;
9925 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
9926 ndr->depth++;
9927 if (r->manufacturer_url) {
9928 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
9930 ndr->depth--;
9931 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
9932 ndr->depth++;
9933 if (r->hardware_id) {
9934 ndr_print_string(ndr, "hardware_id", r->hardware_id);
9936 ndr->depth--;
9937 ndr_print_ptr(ndr, "provider", r->provider);
9938 ndr->depth++;
9939 if (r->provider) {
9940 ndr_print_string(ndr, "provider", r->provider);
9942 ndr->depth--;
9943 ndr->depth--;
9946 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo8 *r)
9948 if (ndr_flags & NDR_SCALARS) {
9949 NDR_CHECK(ndr_push_align(ndr, 8));
9950 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9951 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
9952 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
9953 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
9954 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
9955 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
9956 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
9957 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
9958 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
9959 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9960 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
9961 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9962 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
9963 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
9964 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
9965 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
9966 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
9967 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
9968 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
9969 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
9970 NDR_CHECK(ndr_push_unique_ptr(ndr, r->vendor_setup));
9971 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->color_profiles, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9972 NDR_CHECK(ndr_push_unique_ptr(ndr, r->color_profiles));
9973 NDR_CHECK(ndr_push_unique_ptr(ndr, r->inf_path));
9974 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
9975 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9976 NDR_CHECK(ndr_push_unique_ptr(ndr, r->core_driver_dependencies));
9977 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
9978 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
9979 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
9981 if (ndr_flags & NDR_BUFFERS) {
9982 if (r->driver_name) {
9983 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9984 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9985 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9986 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9988 if (r->architecture) {
9989 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9990 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9991 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9992 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9994 if (r->driver_path) {
9995 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9996 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9997 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9998 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10000 if (r->data_file) {
10001 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
10002 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10003 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
10004 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10006 if (r->config_file) {
10007 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
10008 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10009 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
10010 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10012 if (r->help_file) {
10013 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
10014 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10015 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
10016 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10018 if (r->monitor_name) {
10019 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
10020 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10021 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
10022 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10024 if (r->default_datatype) {
10025 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
10026 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10027 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
10028 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10030 if (r->dependent_files) {
10031 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
10033 if (r->previous_names) {
10034 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
10036 if (r->manufacturer_name) {
10037 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
10038 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10039 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
10040 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10042 if (r->manufacturer_url) {
10043 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
10044 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10045 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
10046 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10048 if (r->hardware_id) {
10049 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
10050 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10051 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
10052 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10054 if (r->provider) {
10055 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
10056 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10057 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
10058 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10060 if (r->print_processor) {
10061 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
10062 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10063 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
10064 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10066 if (r->vendor_setup) {
10067 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
10068 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10069 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
10070 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->vendor_setup, ndr_charset_length(r->vendor_setup, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10072 if (r->color_profiles) {
10073 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
10075 if (r->inf_path) {
10076 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
10077 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10078 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
10079 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->inf_path, ndr_charset_length(r->inf_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10081 if (r->core_driver_dependencies) {
10082 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
10085 return NDR_ERR_SUCCESS;
10088 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo8 *r)
10090 uint32_t _ptr_driver_name;
10091 TALLOC_CTX *_mem_save_driver_name_0;
10092 uint32_t _ptr_architecture;
10093 TALLOC_CTX *_mem_save_architecture_0;
10094 uint32_t _ptr_driver_path;
10095 TALLOC_CTX *_mem_save_driver_path_0;
10096 uint32_t _ptr_data_file;
10097 TALLOC_CTX *_mem_save_data_file_0;
10098 uint32_t _ptr_config_file;
10099 TALLOC_CTX *_mem_save_config_file_0;
10100 uint32_t _ptr_help_file;
10101 TALLOC_CTX *_mem_save_help_file_0;
10102 uint32_t _ptr_monitor_name;
10103 TALLOC_CTX *_mem_save_monitor_name_0;
10104 uint32_t _ptr_default_datatype;
10105 TALLOC_CTX *_mem_save_default_datatype_0;
10106 uint32_t _ptr_dependent_files;
10107 TALLOC_CTX *_mem_save_dependent_files_0;
10108 uint32_t _ptr_previous_names;
10109 TALLOC_CTX *_mem_save_previous_names_0;
10110 uint32_t _ptr_manufacturer_name;
10111 TALLOC_CTX *_mem_save_manufacturer_name_0;
10112 uint32_t _ptr_manufacturer_url;
10113 TALLOC_CTX *_mem_save_manufacturer_url_0;
10114 uint32_t _ptr_hardware_id;
10115 TALLOC_CTX *_mem_save_hardware_id_0;
10116 uint32_t _ptr_provider;
10117 TALLOC_CTX *_mem_save_provider_0;
10118 uint32_t _ptr_print_processor;
10119 TALLOC_CTX *_mem_save_print_processor_0;
10120 uint32_t _ptr_vendor_setup;
10121 TALLOC_CTX *_mem_save_vendor_setup_0;
10122 uint32_t _ptr_color_profiles;
10123 TALLOC_CTX *_mem_save_color_profiles_0;
10124 uint32_t _ptr_inf_path;
10125 TALLOC_CTX *_mem_save_inf_path_0;
10126 uint32_t _ptr_core_driver_dependencies;
10127 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
10128 if (ndr_flags & NDR_SCALARS) {
10129 NDR_CHECK(ndr_pull_align(ndr, 8));
10130 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10131 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10132 if (_ptr_driver_name) {
10133 NDR_PULL_ALLOC(ndr, r->driver_name);
10134 } else {
10135 r->driver_name = NULL;
10137 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10138 if (_ptr_architecture) {
10139 NDR_PULL_ALLOC(ndr, r->architecture);
10140 } else {
10141 r->architecture = NULL;
10143 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10144 if (_ptr_driver_path) {
10145 NDR_PULL_ALLOC(ndr, r->driver_path);
10146 } else {
10147 r->driver_path = NULL;
10149 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10150 if (_ptr_data_file) {
10151 NDR_PULL_ALLOC(ndr, r->data_file);
10152 } else {
10153 r->data_file = NULL;
10155 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10156 if (_ptr_config_file) {
10157 NDR_PULL_ALLOC(ndr, r->config_file);
10158 } else {
10159 r->config_file = NULL;
10161 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
10162 if (_ptr_help_file) {
10163 NDR_PULL_ALLOC(ndr, r->help_file);
10164 } else {
10165 r->help_file = NULL;
10167 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
10168 if (_ptr_monitor_name) {
10169 NDR_PULL_ALLOC(ndr, r->monitor_name);
10170 } else {
10171 r->monitor_name = NULL;
10173 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
10174 if (_ptr_default_datatype) {
10175 NDR_PULL_ALLOC(ndr, r->default_datatype);
10176 } else {
10177 r->default_datatype = NULL;
10179 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
10180 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
10181 if (_ptr_dependent_files) {
10182 NDR_PULL_ALLOC(ndr, r->dependent_files);
10183 } else {
10184 r->dependent_files = NULL;
10186 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
10187 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
10188 if (_ptr_previous_names) {
10189 NDR_PULL_ALLOC(ndr, r->previous_names);
10190 } else {
10191 r->previous_names = NULL;
10193 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
10194 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
10195 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
10196 if (_ptr_manufacturer_name) {
10197 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
10198 } else {
10199 r->manufacturer_name = NULL;
10201 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
10202 if (_ptr_manufacturer_url) {
10203 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
10204 } else {
10205 r->manufacturer_url = NULL;
10207 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
10208 if (_ptr_hardware_id) {
10209 NDR_PULL_ALLOC(ndr, r->hardware_id);
10210 } else {
10211 r->hardware_id = NULL;
10213 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
10214 if (_ptr_provider) {
10215 NDR_PULL_ALLOC(ndr, r->provider);
10216 } else {
10217 r->provider = NULL;
10219 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
10220 if (_ptr_print_processor) {
10221 NDR_PULL_ALLOC(ndr, r->print_processor);
10222 } else {
10223 r->print_processor = NULL;
10225 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
10226 if (_ptr_vendor_setup) {
10227 NDR_PULL_ALLOC(ndr, r->vendor_setup);
10228 } else {
10229 r->vendor_setup = NULL;
10231 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_color_profiles));
10232 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
10233 if (_ptr_color_profiles) {
10234 NDR_PULL_ALLOC(ndr, r->color_profiles);
10235 } else {
10236 r->color_profiles = NULL;
10238 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
10239 if (_ptr_inf_path) {
10240 NDR_PULL_ALLOC(ndr, r->inf_path);
10241 } else {
10242 r->inf_path = NULL;
10244 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
10245 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_core_driver_dependencies));
10246 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
10247 if (_ptr_core_driver_dependencies) {
10248 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
10249 } else {
10250 r->core_driver_dependencies = NULL;
10252 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
10253 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
10254 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
10256 if (ndr_flags & NDR_BUFFERS) {
10257 if (r->driver_name) {
10258 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10259 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10260 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
10261 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
10262 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
10263 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));
10265 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
10266 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
10267 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10269 if (r->architecture) {
10270 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10271 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10272 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
10273 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
10274 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
10275 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));
10277 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
10278 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
10279 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10281 if (r->driver_path) {
10282 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10283 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10284 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
10285 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
10286 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
10287 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));
10289 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
10290 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
10291 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10293 if (r->data_file) {
10294 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10295 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10296 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
10297 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
10298 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
10299 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));
10301 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
10302 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
10303 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10305 if (r->config_file) {
10306 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10307 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10308 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
10309 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
10310 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
10311 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));
10313 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
10314 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
10315 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10317 if (r->help_file) {
10318 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10319 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
10320 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
10321 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
10322 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
10323 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));
10325 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
10326 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
10327 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
10329 if (r->monitor_name) {
10330 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10331 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
10332 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
10333 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
10334 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
10335 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));
10337 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
10338 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
10339 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
10341 if (r->default_datatype) {
10342 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
10343 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
10344 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
10345 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
10346 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
10347 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));
10349 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
10350 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
10351 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
10353 if (r->dependent_files) {
10354 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
10355 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
10356 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
10357 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
10359 if (r->previous_names) {
10360 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
10361 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
10362 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
10363 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
10365 if (r->manufacturer_name) {
10366 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10367 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
10368 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
10369 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
10370 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
10371 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));
10373 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
10374 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
10375 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
10377 if (r->manufacturer_url) {
10378 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
10379 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
10380 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
10381 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
10382 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
10383 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));
10385 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
10386 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
10387 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
10389 if (r->hardware_id) {
10390 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
10391 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
10392 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
10393 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
10394 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
10395 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));
10397 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
10398 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
10399 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
10401 if (r->provider) {
10402 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
10403 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
10404 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
10405 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
10406 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
10407 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));
10409 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
10410 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
10411 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
10413 if (r->print_processor) {
10414 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
10415 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
10416 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
10417 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
10418 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
10419 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));
10421 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
10422 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
10423 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
10425 if (r->vendor_setup) {
10426 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
10427 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
10428 NDR_CHECK(ndr_pull_array_size(ndr, &r->vendor_setup));
10429 NDR_CHECK(ndr_pull_array_length(ndr, &r->vendor_setup));
10430 if (ndr_get_array_length(ndr, &r->vendor_setup) > ndr_get_array_size(ndr, &r->vendor_setup)) {
10431 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));
10433 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t)));
10434 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->vendor_setup, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t), CH_UTF16));
10435 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
10437 if (r->color_profiles) {
10438 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
10439 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
10440 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
10441 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
10443 if (r->inf_path) {
10444 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10445 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
10446 NDR_CHECK(ndr_pull_array_size(ndr, &r->inf_path));
10447 NDR_CHECK(ndr_pull_array_length(ndr, &r->inf_path));
10448 if (ndr_get_array_length(ndr, &r->inf_path) > ndr_get_array_size(ndr, &r->inf_path)) {
10449 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));
10451 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t)));
10452 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->inf_path, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t), CH_UTF16));
10453 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
10455 if (r->core_driver_dependencies) {
10456 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
10457 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
10458 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
10459 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
10462 return NDR_ERR_SUCCESS;
10465 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo8 *r)
10467 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo8");
10468 ndr->depth++;
10469 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10470 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10471 ndr->depth++;
10472 if (r->driver_name) {
10473 ndr_print_string(ndr, "driver_name", r->driver_name);
10475 ndr->depth--;
10476 ndr_print_ptr(ndr, "architecture", r->architecture);
10477 ndr->depth++;
10478 if (r->architecture) {
10479 ndr_print_string(ndr, "architecture", r->architecture);
10481 ndr->depth--;
10482 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10483 ndr->depth++;
10484 if (r->driver_path) {
10485 ndr_print_string(ndr, "driver_path", r->driver_path);
10487 ndr->depth--;
10488 ndr_print_ptr(ndr, "data_file", r->data_file);
10489 ndr->depth++;
10490 if (r->data_file) {
10491 ndr_print_string(ndr, "data_file", r->data_file);
10493 ndr->depth--;
10494 ndr_print_ptr(ndr, "config_file", r->config_file);
10495 ndr->depth++;
10496 if (r->config_file) {
10497 ndr_print_string(ndr, "config_file", r->config_file);
10499 ndr->depth--;
10500 ndr_print_ptr(ndr, "help_file", r->help_file);
10501 ndr->depth++;
10502 if (r->help_file) {
10503 ndr_print_string(ndr, "help_file", r->help_file);
10505 ndr->depth--;
10506 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
10507 ndr->depth++;
10508 if (r->monitor_name) {
10509 ndr_print_string(ndr, "monitor_name", r->monitor_name);
10511 ndr->depth--;
10512 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
10513 ndr->depth++;
10514 if (r->default_datatype) {
10515 ndr_print_string(ndr, "default_datatype", r->default_datatype);
10517 ndr->depth--;
10518 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);
10519 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
10520 ndr->depth++;
10521 if (r->dependent_files) {
10522 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
10524 ndr->depth--;
10525 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);
10526 ndr_print_ptr(ndr, "previous_names", r->previous_names);
10527 ndr->depth++;
10528 if (r->previous_names) {
10529 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
10531 ndr->depth--;
10532 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
10533 ndr_print_hyper(ndr, "driver_version", r->driver_version);
10534 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
10535 ndr->depth++;
10536 if (r->manufacturer_name) {
10537 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
10539 ndr->depth--;
10540 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
10541 ndr->depth++;
10542 if (r->manufacturer_url) {
10543 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
10545 ndr->depth--;
10546 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
10547 ndr->depth++;
10548 if (r->hardware_id) {
10549 ndr_print_string(ndr, "hardware_id", r->hardware_id);
10551 ndr->depth--;
10552 ndr_print_ptr(ndr, "provider", r->provider);
10553 ndr->depth++;
10554 if (r->provider) {
10555 ndr_print_string(ndr, "provider", r->provider);
10557 ndr->depth--;
10558 ndr_print_ptr(ndr, "print_processor", r->print_processor);
10559 ndr->depth++;
10560 if (r->print_processor) {
10561 ndr_print_string(ndr, "print_processor", r->print_processor);
10563 ndr->depth--;
10564 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
10565 ndr->depth++;
10566 if (r->vendor_setup) {
10567 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
10569 ndr->depth--;
10570 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);
10571 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
10572 ndr->depth++;
10573 if (r->color_profiles) {
10574 ndr_print_spoolss_StringArray(ndr, "color_profiles", r->color_profiles);
10576 ndr->depth--;
10577 ndr_print_ptr(ndr, "inf_path", r->inf_path);
10578 ndr->depth++;
10579 if (r->inf_path) {
10580 ndr_print_string(ndr, "inf_path", r->inf_path);
10582 ndr->depth--;
10583 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
10584 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);
10585 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10586 ndr->depth++;
10587 if (r->core_driver_dependencies) {
10588 ndr_print_spoolss_StringArray(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10590 ndr->depth--;
10591 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
10592 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
10593 ndr->depth--;
10596 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddDriverInfo *r)
10598 if (ndr_flags & NDR_SCALARS) {
10599 int level = ndr_push_get_switch_value(ndr, r);
10600 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
10601 NDR_CHECK(ndr_push_union_align(ndr, 5));
10602 switch (level) {
10603 case 1: {
10604 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
10605 break; }
10607 case 2: {
10608 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
10609 break; }
10611 case 3: {
10612 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
10613 break; }
10615 case 4: {
10616 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
10617 break; }
10619 case 6: {
10620 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
10621 break; }
10623 case 8: {
10624 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
10625 break; }
10627 default:
10628 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10631 if (ndr_flags & NDR_BUFFERS) {
10632 int level = ndr_push_get_switch_value(ndr, r);
10633 switch (level) {
10634 case 1:
10635 if (r->info1) {
10636 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
10638 break;
10640 case 2:
10641 if (r->info2) {
10642 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
10644 break;
10646 case 3:
10647 if (r->info3) {
10648 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
10650 break;
10652 case 4:
10653 if (r->info4) {
10654 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
10656 break;
10658 case 6:
10659 if (r->info6) {
10660 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
10662 break;
10664 case 8:
10665 if (r->info8) {
10666 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
10668 break;
10670 default:
10671 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10674 return NDR_ERR_SUCCESS;
10677 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddDriverInfo *r)
10679 int level;
10680 uint32_t _level;
10681 TALLOC_CTX *_mem_save_info1_0;
10682 TALLOC_CTX *_mem_save_info2_0;
10683 TALLOC_CTX *_mem_save_info3_0;
10684 TALLOC_CTX *_mem_save_info4_0;
10685 TALLOC_CTX *_mem_save_info6_0;
10686 TALLOC_CTX *_mem_save_info8_0;
10687 level = ndr_pull_get_switch_value(ndr, r);
10688 if (ndr_flags & NDR_SCALARS) {
10689 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
10690 if (_level != level) {
10691 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
10693 NDR_CHECK(ndr_pull_union_align(ndr, 5));
10694 switch (level) {
10695 case 1: {
10696 uint32_t _ptr_info1;
10697 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
10698 if (_ptr_info1) {
10699 NDR_PULL_ALLOC(ndr, r->info1);
10700 } else {
10701 r->info1 = NULL;
10703 break; }
10705 case 2: {
10706 uint32_t _ptr_info2;
10707 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
10708 if (_ptr_info2) {
10709 NDR_PULL_ALLOC(ndr, r->info2);
10710 } else {
10711 r->info2 = NULL;
10713 break; }
10715 case 3: {
10716 uint32_t _ptr_info3;
10717 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
10718 if (_ptr_info3) {
10719 NDR_PULL_ALLOC(ndr, r->info3);
10720 } else {
10721 r->info3 = NULL;
10723 break; }
10725 case 4: {
10726 uint32_t _ptr_info4;
10727 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
10728 if (_ptr_info4) {
10729 NDR_PULL_ALLOC(ndr, r->info4);
10730 } else {
10731 r->info4 = NULL;
10733 break; }
10735 case 6: {
10736 uint32_t _ptr_info6;
10737 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
10738 if (_ptr_info6) {
10739 NDR_PULL_ALLOC(ndr, r->info6);
10740 } else {
10741 r->info6 = NULL;
10743 break; }
10745 case 8: {
10746 uint32_t _ptr_info8;
10747 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
10748 if (_ptr_info8) {
10749 NDR_PULL_ALLOC(ndr, r->info8);
10750 } else {
10751 r->info8 = NULL;
10753 break; }
10755 default:
10756 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10759 if (ndr_flags & NDR_BUFFERS) {
10760 switch (level) {
10761 case 1:
10762 if (r->info1) {
10763 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
10764 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
10765 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
10766 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
10768 break;
10770 case 2:
10771 if (r->info2) {
10772 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
10773 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
10774 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
10775 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
10777 break;
10779 case 3:
10780 if (r->info3) {
10781 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
10782 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
10783 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
10784 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
10786 break;
10788 case 4:
10789 if (r->info4) {
10790 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
10791 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
10792 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
10793 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
10795 break;
10797 case 6:
10798 if (r->info6) {
10799 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
10800 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
10801 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
10802 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
10804 break;
10806 case 8:
10807 if (r->info8) {
10808 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
10809 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
10810 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
10811 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
10813 break;
10815 default:
10816 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10819 return NDR_ERR_SUCCESS;
10822 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddDriverInfo *r)
10824 int level;
10825 level = ndr_print_get_switch_value(ndr, r);
10826 ndr_print_union(ndr, name, level, "spoolss_AddDriverInfo");
10827 switch (level) {
10828 case 1:
10829 ndr_print_ptr(ndr, "info1", r->info1);
10830 ndr->depth++;
10831 if (r->info1) {
10832 ndr_print_spoolss_AddDriverInfo1(ndr, "info1", r->info1);
10834 ndr->depth--;
10835 break;
10837 case 2:
10838 ndr_print_ptr(ndr, "info2", r->info2);
10839 ndr->depth++;
10840 if (r->info2) {
10841 ndr_print_spoolss_AddDriverInfo2(ndr, "info2", r->info2);
10843 ndr->depth--;
10844 break;
10846 case 3:
10847 ndr_print_ptr(ndr, "info3", r->info3);
10848 ndr->depth++;
10849 if (r->info3) {
10850 ndr_print_spoolss_AddDriverInfo3(ndr, "info3", r->info3);
10852 ndr->depth--;
10853 break;
10855 case 4:
10856 ndr_print_ptr(ndr, "info4", r->info4);
10857 ndr->depth++;
10858 if (r->info4) {
10859 ndr_print_spoolss_AddDriverInfo4(ndr, "info4", r->info4);
10861 ndr->depth--;
10862 break;
10864 case 6:
10865 ndr_print_ptr(ndr, "info6", r->info6);
10866 ndr->depth++;
10867 if (r->info6) {
10868 ndr_print_spoolss_AddDriverInfo6(ndr, "info6", r->info6);
10870 ndr->depth--;
10871 break;
10873 case 8:
10874 ndr_print_ptr(ndr, "info8", r->info8);
10875 ndr->depth++;
10876 if (r->info8) {
10877 ndr_print_spoolss_AddDriverInfo8(ndr, "info8", r->info8);
10879 ndr->depth--;
10880 break;
10882 default:
10883 ndr_print_bad_level(ndr, name, level);
10887 static enum ndr_err_code ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfoCtr *r)
10889 if (ndr_flags & NDR_SCALARS) {
10890 NDR_CHECK(ndr_push_align(ndr, 5));
10891 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
10892 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
10893 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
10894 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10896 if (ndr_flags & NDR_BUFFERS) {
10897 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
10899 return NDR_ERR_SUCCESS;
10902 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfoCtr *r)
10904 if (ndr_flags & NDR_SCALARS) {
10905 NDR_CHECK(ndr_pull_align(ndr, 5));
10906 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
10907 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
10908 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
10909 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10911 if (ndr_flags & NDR_BUFFERS) {
10912 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
10914 return NDR_ERR_SUCCESS;
10917 _PUBLIC_ void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfoCtr *r)
10919 ndr_print_struct(ndr, name, "spoolss_AddDriverInfoCtr");
10920 ndr->depth++;
10921 ndr_print_uint32(ndr, "level", r->level);
10922 ndr_print_set_switch_value(ndr, &r->info, r->level);
10923 ndr_print_spoolss_AddDriverInfo(ndr, "info", &r->info);
10924 ndr->depth--;
10927 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo1 *r)
10929 if (ndr_flags & NDR_SCALARS) {
10930 NDR_CHECK(ndr_push_align(ndr, 5));
10932 uint32_t _flags_save_string = ndr->flags;
10933 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10934 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10935 ndr->flags = _flags_save_string;
10937 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10939 if (ndr_flags & NDR_BUFFERS) {
10941 uint32_t _flags_save_string = ndr->flags;
10942 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10943 if (r->driver_name) {
10944 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
10945 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10946 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
10948 ndr->flags = _flags_save_string;
10951 return NDR_ERR_SUCCESS;
10954 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo1 *r)
10956 uint32_t _ptr_driver_name;
10957 TALLOC_CTX *_mem_save_driver_name_0;
10958 if (ndr_flags & NDR_SCALARS) {
10959 NDR_CHECK(ndr_pull_align(ndr, 5));
10961 uint32_t _flags_save_string = ndr->flags;
10962 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10963 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10964 if (_ptr_driver_name) {
10965 NDR_PULL_ALLOC(ndr, r->driver_name);
10966 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10967 } else {
10968 r->driver_name = NULL;
10970 ndr->flags = _flags_save_string;
10972 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10974 if (ndr_flags & NDR_BUFFERS) {
10976 uint32_t _flags_save_string = ndr->flags;
10977 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10978 if (r->driver_name) {
10979 uint32_t _relative_save_offset;
10980 _relative_save_offset = ndr->offset;
10981 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10982 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10983 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10984 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10985 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10986 if (ndr->offset > ndr->relative_highest_offset) {
10987 ndr->relative_highest_offset = ndr->offset;
10989 ndr->offset = _relative_save_offset;
10991 ndr->flags = _flags_save_string;
10994 return NDR_ERR_SUCCESS;
10997 _PUBLIC_ void ndr_print_spoolss_DriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo1 *r)
10999 ndr_print_struct(ndr, name, "spoolss_DriverInfo1");
11000 ndr->depth++;
11001 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11002 ndr->depth++;
11003 if (r->driver_name) {
11004 ndr_print_string(ndr, "driver_name", r->driver_name);
11006 ndr->depth--;
11007 ndr->depth--;
11010 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1 *r, struct smb_iconv_convenience *ic, int flags)
11012 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo1, ic);
11015 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo2 *r)
11017 if (ndr_flags & NDR_SCALARS) {
11018 NDR_CHECK(ndr_push_align(ndr, 5));
11019 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11021 uint32_t _flags_save_string = ndr->flags;
11022 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11023 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11024 ndr->flags = _flags_save_string;
11027 uint32_t _flags_save_string = ndr->flags;
11028 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11029 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11030 ndr->flags = _flags_save_string;
11033 uint32_t _flags_save_string = ndr->flags;
11034 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11035 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11036 ndr->flags = _flags_save_string;
11039 uint32_t _flags_save_string = ndr->flags;
11040 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11041 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11042 ndr->flags = _flags_save_string;
11045 uint32_t _flags_save_string = ndr->flags;
11046 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11047 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11048 ndr->flags = _flags_save_string;
11050 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11052 if (ndr_flags & NDR_BUFFERS) {
11054 uint32_t _flags_save_string = ndr->flags;
11055 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11056 if (r->driver_name) {
11057 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
11058 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11059 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
11061 ndr->flags = _flags_save_string;
11064 uint32_t _flags_save_string = ndr->flags;
11065 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11066 if (r->architecture) {
11067 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
11068 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11069 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
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->driver_path) {
11077 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
11078 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11079 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
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->data_file) {
11087 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
11088 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11089 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
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->config_file) {
11097 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
11098 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11099 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
11101 ndr->flags = _flags_save_string;
11104 return NDR_ERR_SUCCESS;
11107 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo2 *r)
11109 uint32_t _ptr_driver_name;
11110 TALLOC_CTX *_mem_save_driver_name_0;
11111 uint32_t _ptr_architecture;
11112 TALLOC_CTX *_mem_save_architecture_0;
11113 uint32_t _ptr_driver_path;
11114 TALLOC_CTX *_mem_save_driver_path_0;
11115 uint32_t _ptr_data_file;
11116 TALLOC_CTX *_mem_save_data_file_0;
11117 uint32_t _ptr_config_file;
11118 TALLOC_CTX *_mem_save_config_file_0;
11119 if (ndr_flags & NDR_SCALARS) {
11120 NDR_CHECK(ndr_pull_align(ndr, 5));
11121 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11123 uint32_t _flags_save_string = ndr->flags;
11124 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11125 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11126 if (_ptr_driver_name) {
11127 NDR_PULL_ALLOC(ndr, r->driver_name);
11128 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11129 } else {
11130 r->driver_name = NULL;
11132 ndr->flags = _flags_save_string;
11135 uint32_t _flags_save_string = ndr->flags;
11136 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11137 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11138 if (_ptr_architecture) {
11139 NDR_PULL_ALLOC(ndr, r->architecture);
11140 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11141 } else {
11142 r->architecture = NULL;
11144 ndr->flags = _flags_save_string;
11147 uint32_t _flags_save_string = ndr->flags;
11148 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11149 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11150 if (_ptr_driver_path) {
11151 NDR_PULL_ALLOC(ndr, r->driver_path);
11152 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11153 } else {
11154 r->driver_path = NULL;
11156 ndr->flags = _flags_save_string;
11159 uint32_t _flags_save_string = ndr->flags;
11160 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11161 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11162 if (_ptr_data_file) {
11163 NDR_PULL_ALLOC(ndr, r->data_file);
11164 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11165 } else {
11166 r->data_file = NULL;
11168 ndr->flags = _flags_save_string;
11171 uint32_t _flags_save_string = ndr->flags;
11172 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11173 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11174 if (_ptr_config_file) {
11175 NDR_PULL_ALLOC(ndr, r->config_file);
11176 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11177 } else {
11178 r->config_file = NULL;
11180 ndr->flags = _flags_save_string;
11182 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11184 if (ndr_flags & NDR_BUFFERS) {
11186 uint32_t _flags_save_string = ndr->flags;
11187 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11188 if (r->driver_name) {
11189 uint32_t _relative_save_offset;
11190 _relative_save_offset = ndr->offset;
11191 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11192 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11193 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11194 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11195 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11196 if (ndr->offset > ndr->relative_highest_offset) {
11197 ndr->relative_highest_offset = ndr->offset;
11199 ndr->offset = _relative_save_offset;
11201 ndr->flags = _flags_save_string;
11204 uint32_t _flags_save_string = ndr->flags;
11205 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11206 if (r->architecture) {
11207 uint32_t _relative_save_offset;
11208 _relative_save_offset = ndr->offset;
11209 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11210 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11211 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11212 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11213 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11214 if (ndr->offset > ndr->relative_highest_offset) {
11215 ndr->relative_highest_offset = ndr->offset;
11217 ndr->offset = _relative_save_offset;
11219 ndr->flags = _flags_save_string;
11222 uint32_t _flags_save_string = ndr->flags;
11223 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11224 if (r->driver_path) {
11225 uint32_t _relative_save_offset;
11226 _relative_save_offset = ndr->offset;
11227 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11228 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11229 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11230 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11231 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11232 if (ndr->offset > ndr->relative_highest_offset) {
11233 ndr->relative_highest_offset = ndr->offset;
11235 ndr->offset = _relative_save_offset;
11237 ndr->flags = _flags_save_string;
11240 uint32_t _flags_save_string = ndr->flags;
11241 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11242 if (r->data_file) {
11243 uint32_t _relative_save_offset;
11244 _relative_save_offset = ndr->offset;
11245 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11246 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11247 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11248 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11249 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11250 if (ndr->offset > ndr->relative_highest_offset) {
11251 ndr->relative_highest_offset = ndr->offset;
11253 ndr->offset = _relative_save_offset;
11255 ndr->flags = _flags_save_string;
11258 uint32_t _flags_save_string = ndr->flags;
11259 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11260 if (r->config_file) {
11261 uint32_t _relative_save_offset;
11262 _relative_save_offset = ndr->offset;
11263 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11264 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11265 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11266 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11267 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11268 if (ndr->offset > ndr->relative_highest_offset) {
11269 ndr->relative_highest_offset = ndr->offset;
11271 ndr->offset = _relative_save_offset;
11273 ndr->flags = _flags_save_string;
11276 return NDR_ERR_SUCCESS;
11279 _PUBLIC_ void ndr_print_spoolss_DriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo2 *r)
11281 ndr_print_struct(ndr, name, "spoolss_DriverInfo2");
11282 ndr->depth++;
11283 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11284 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11285 ndr->depth++;
11286 if (r->driver_name) {
11287 ndr_print_string(ndr, "driver_name", r->driver_name);
11289 ndr->depth--;
11290 ndr_print_ptr(ndr, "architecture", r->architecture);
11291 ndr->depth++;
11292 if (r->architecture) {
11293 ndr_print_string(ndr, "architecture", r->architecture);
11295 ndr->depth--;
11296 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11297 ndr->depth++;
11298 if (r->driver_path) {
11299 ndr_print_string(ndr, "driver_path", r->driver_path);
11301 ndr->depth--;
11302 ndr_print_ptr(ndr, "data_file", r->data_file);
11303 ndr->depth++;
11304 if (r->data_file) {
11305 ndr_print_string(ndr, "data_file", r->data_file);
11307 ndr->depth--;
11308 ndr_print_ptr(ndr, "config_file", r->config_file);
11309 ndr->depth++;
11310 if (r->config_file) {
11311 ndr_print_string(ndr, "config_file", r->config_file);
11313 ndr->depth--;
11314 ndr->depth--;
11317 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2 *r, struct smb_iconv_convenience *ic, int flags)
11319 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo2, ic);
11322 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo3 *r)
11324 if (ndr_flags & NDR_SCALARS) {
11325 NDR_CHECK(ndr_push_align(ndr, 5));
11326 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11328 uint32_t _flags_save_string = ndr->flags;
11329 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11330 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11331 ndr->flags = _flags_save_string;
11334 uint32_t _flags_save_string = ndr->flags;
11335 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11336 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11337 ndr->flags = _flags_save_string;
11340 uint32_t _flags_save_string = ndr->flags;
11341 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11342 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11343 ndr->flags = _flags_save_string;
11346 uint32_t _flags_save_string = ndr->flags;
11347 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11348 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11349 ndr->flags = _flags_save_string;
11352 uint32_t _flags_save_string = ndr->flags;
11353 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11354 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11355 ndr->flags = _flags_save_string;
11358 uint32_t _flags_save_string = ndr->flags;
11359 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11360 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
11361 ndr->flags = _flags_save_string;
11364 uint32_t _flags_save_string_array = ndr->flags;
11365 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11366 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
11367 ndr->flags = _flags_save_string_array;
11370 uint32_t _flags_save_string = ndr->flags;
11371 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11372 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
11373 ndr->flags = _flags_save_string;
11376 uint32_t _flags_save_string = ndr->flags;
11377 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11378 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
11379 ndr->flags = _flags_save_string;
11381 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11383 if (ndr_flags & NDR_BUFFERS) {
11385 uint32_t _flags_save_string = ndr->flags;
11386 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11387 if (r->driver_name) {
11388 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
11389 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11390 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
11392 ndr->flags = _flags_save_string;
11395 uint32_t _flags_save_string = ndr->flags;
11396 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11397 if (r->architecture) {
11398 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
11399 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11400 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
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->driver_path) {
11408 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
11409 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11410 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
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->data_file) {
11418 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
11419 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11420 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
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->config_file) {
11428 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
11429 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11430 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_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->help_file) {
11438 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
11439 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
11440 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
11442 ndr->flags = _flags_save_string;
11445 uint32_t _flags_save_string_array = ndr->flags;
11446 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11447 if (r->dependent_files) {
11448 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
11449 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
11450 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
11452 ndr->flags = _flags_save_string_array;
11455 uint32_t _flags_save_string = ndr->flags;
11456 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11457 if (r->monitor_name) {
11458 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
11459 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
11460 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
11462 ndr->flags = _flags_save_string;
11465 uint32_t _flags_save_string = ndr->flags;
11466 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11467 if (r->default_datatype) {
11468 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
11469 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
11470 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
11472 ndr->flags = _flags_save_string;
11475 return NDR_ERR_SUCCESS;
11478 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo3 *r)
11480 uint32_t _ptr_driver_name;
11481 TALLOC_CTX *_mem_save_driver_name_0;
11482 uint32_t _ptr_architecture;
11483 TALLOC_CTX *_mem_save_architecture_0;
11484 uint32_t _ptr_driver_path;
11485 TALLOC_CTX *_mem_save_driver_path_0;
11486 uint32_t _ptr_data_file;
11487 TALLOC_CTX *_mem_save_data_file_0;
11488 uint32_t _ptr_config_file;
11489 TALLOC_CTX *_mem_save_config_file_0;
11490 uint32_t _ptr_help_file;
11491 TALLOC_CTX *_mem_save_help_file_0;
11492 uint32_t _ptr_dependent_files;
11493 TALLOC_CTX *_mem_save_dependent_files_0;
11494 uint32_t _ptr_monitor_name;
11495 TALLOC_CTX *_mem_save_monitor_name_0;
11496 uint32_t _ptr_default_datatype;
11497 TALLOC_CTX *_mem_save_default_datatype_0;
11498 if (ndr_flags & NDR_SCALARS) {
11499 NDR_CHECK(ndr_pull_align(ndr, 5));
11500 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11502 uint32_t _flags_save_string = ndr->flags;
11503 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11504 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11505 if (_ptr_driver_name) {
11506 NDR_PULL_ALLOC(ndr, r->driver_name);
11507 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11508 } else {
11509 r->driver_name = NULL;
11511 ndr->flags = _flags_save_string;
11514 uint32_t _flags_save_string = ndr->flags;
11515 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11516 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11517 if (_ptr_architecture) {
11518 NDR_PULL_ALLOC(ndr, r->architecture);
11519 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11520 } else {
11521 r->architecture = NULL;
11523 ndr->flags = _flags_save_string;
11526 uint32_t _flags_save_string = ndr->flags;
11527 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11528 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11529 if (_ptr_driver_path) {
11530 NDR_PULL_ALLOC(ndr, r->driver_path);
11531 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11532 } else {
11533 r->driver_path = NULL;
11535 ndr->flags = _flags_save_string;
11538 uint32_t _flags_save_string = ndr->flags;
11539 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11540 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11541 if (_ptr_data_file) {
11542 NDR_PULL_ALLOC(ndr, r->data_file);
11543 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11544 } else {
11545 r->data_file = NULL;
11547 ndr->flags = _flags_save_string;
11550 uint32_t _flags_save_string = ndr->flags;
11551 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11552 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11553 if (_ptr_config_file) {
11554 NDR_PULL_ALLOC(ndr, r->config_file);
11555 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11556 } else {
11557 r->config_file = NULL;
11559 ndr->flags = _flags_save_string;
11562 uint32_t _flags_save_string = ndr->flags;
11563 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11564 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
11565 if (_ptr_help_file) {
11566 NDR_PULL_ALLOC(ndr, r->help_file);
11567 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
11568 } else {
11569 r->help_file = NULL;
11571 ndr->flags = _flags_save_string;
11574 uint32_t _flags_save_string_array = ndr->flags;
11575 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11576 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
11577 if (_ptr_dependent_files) {
11578 NDR_PULL_ALLOC(ndr, r->dependent_files);
11579 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
11580 } else {
11581 r->dependent_files = NULL;
11583 ndr->flags = _flags_save_string_array;
11586 uint32_t _flags_save_string = ndr->flags;
11587 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11588 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
11589 if (_ptr_monitor_name) {
11590 NDR_PULL_ALLOC(ndr, r->monitor_name);
11591 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
11592 } else {
11593 r->monitor_name = NULL;
11595 ndr->flags = _flags_save_string;
11598 uint32_t _flags_save_string = ndr->flags;
11599 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11600 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
11601 if (_ptr_default_datatype) {
11602 NDR_PULL_ALLOC(ndr, r->default_datatype);
11603 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
11604 } else {
11605 r->default_datatype = NULL;
11607 ndr->flags = _flags_save_string;
11609 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11611 if (ndr_flags & NDR_BUFFERS) {
11613 uint32_t _flags_save_string = ndr->flags;
11614 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11615 if (r->driver_name) {
11616 uint32_t _relative_save_offset;
11617 _relative_save_offset = ndr->offset;
11618 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11619 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11620 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11621 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11622 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11623 if (ndr->offset > ndr->relative_highest_offset) {
11624 ndr->relative_highest_offset = ndr->offset;
11626 ndr->offset = _relative_save_offset;
11628 ndr->flags = _flags_save_string;
11631 uint32_t _flags_save_string = ndr->flags;
11632 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11633 if (r->architecture) {
11634 uint32_t _relative_save_offset;
11635 _relative_save_offset = ndr->offset;
11636 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11637 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11638 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11639 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11640 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11641 if (ndr->offset > ndr->relative_highest_offset) {
11642 ndr->relative_highest_offset = ndr->offset;
11644 ndr->offset = _relative_save_offset;
11646 ndr->flags = _flags_save_string;
11649 uint32_t _flags_save_string = ndr->flags;
11650 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11651 if (r->driver_path) {
11652 uint32_t _relative_save_offset;
11653 _relative_save_offset = ndr->offset;
11654 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11655 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11656 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11657 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11658 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11659 if (ndr->offset > ndr->relative_highest_offset) {
11660 ndr->relative_highest_offset = ndr->offset;
11662 ndr->offset = _relative_save_offset;
11664 ndr->flags = _flags_save_string;
11667 uint32_t _flags_save_string = ndr->flags;
11668 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11669 if (r->data_file) {
11670 uint32_t _relative_save_offset;
11671 _relative_save_offset = ndr->offset;
11672 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11673 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11674 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11675 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11676 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11677 if (ndr->offset > ndr->relative_highest_offset) {
11678 ndr->relative_highest_offset = ndr->offset;
11680 ndr->offset = _relative_save_offset;
11682 ndr->flags = _flags_save_string;
11685 uint32_t _flags_save_string = ndr->flags;
11686 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11687 if (r->config_file) {
11688 uint32_t _relative_save_offset;
11689 _relative_save_offset = ndr->offset;
11690 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11691 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11692 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11693 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11694 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11695 if (ndr->offset > ndr->relative_highest_offset) {
11696 ndr->relative_highest_offset = ndr->offset;
11698 ndr->offset = _relative_save_offset;
11700 ndr->flags = _flags_save_string;
11703 uint32_t _flags_save_string = ndr->flags;
11704 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11705 if (r->help_file) {
11706 uint32_t _relative_save_offset;
11707 _relative_save_offset = ndr->offset;
11708 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
11709 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11710 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
11711 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
11712 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
11713 if (ndr->offset > ndr->relative_highest_offset) {
11714 ndr->relative_highest_offset = ndr->offset;
11716 ndr->offset = _relative_save_offset;
11718 ndr->flags = _flags_save_string;
11721 uint32_t _flags_save_string_array = ndr->flags;
11722 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11723 if (r->dependent_files) {
11724 uint32_t _relative_save_offset;
11725 _relative_save_offset = ndr->offset;
11726 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
11727 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
11728 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
11729 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
11730 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
11731 if (ndr->offset > ndr->relative_highest_offset) {
11732 ndr->relative_highest_offset = ndr->offset;
11734 ndr->offset = _relative_save_offset;
11736 ndr->flags = _flags_save_string_array;
11739 uint32_t _flags_save_string = ndr->flags;
11740 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11741 if (r->monitor_name) {
11742 uint32_t _relative_save_offset;
11743 _relative_save_offset = ndr->offset;
11744 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
11745 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11746 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
11747 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
11748 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
11749 if (ndr->offset > ndr->relative_highest_offset) {
11750 ndr->relative_highest_offset = ndr->offset;
11752 ndr->offset = _relative_save_offset;
11754 ndr->flags = _flags_save_string;
11757 uint32_t _flags_save_string = ndr->flags;
11758 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11759 if (r->default_datatype) {
11760 uint32_t _relative_save_offset;
11761 _relative_save_offset = ndr->offset;
11762 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
11763 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11764 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
11765 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
11766 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
11767 if (ndr->offset > ndr->relative_highest_offset) {
11768 ndr->relative_highest_offset = ndr->offset;
11770 ndr->offset = _relative_save_offset;
11772 ndr->flags = _flags_save_string;
11775 return NDR_ERR_SUCCESS;
11778 _PUBLIC_ void ndr_print_spoolss_DriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo3 *r)
11780 ndr_print_struct(ndr, name, "spoolss_DriverInfo3");
11781 ndr->depth++;
11782 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11783 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11784 ndr->depth++;
11785 if (r->driver_name) {
11786 ndr_print_string(ndr, "driver_name", r->driver_name);
11788 ndr->depth--;
11789 ndr_print_ptr(ndr, "architecture", r->architecture);
11790 ndr->depth++;
11791 if (r->architecture) {
11792 ndr_print_string(ndr, "architecture", r->architecture);
11794 ndr->depth--;
11795 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11796 ndr->depth++;
11797 if (r->driver_path) {
11798 ndr_print_string(ndr, "driver_path", r->driver_path);
11800 ndr->depth--;
11801 ndr_print_ptr(ndr, "data_file", r->data_file);
11802 ndr->depth++;
11803 if (r->data_file) {
11804 ndr_print_string(ndr, "data_file", r->data_file);
11806 ndr->depth--;
11807 ndr_print_ptr(ndr, "config_file", r->config_file);
11808 ndr->depth++;
11809 if (r->config_file) {
11810 ndr_print_string(ndr, "config_file", r->config_file);
11812 ndr->depth--;
11813 ndr_print_ptr(ndr, "help_file", r->help_file);
11814 ndr->depth++;
11815 if (r->help_file) {
11816 ndr_print_string(ndr, "help_file", r->help_file);
11818 ndr->depth--;
11819 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
11820 ndr->depth++;
11821 if (r->dependent_files) {
11822 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
11824 ndr->depth--;
11825 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
11826 ndr->depth++;
11827 if (r->monitor_name) {
11828 ndr_print_string(ndr, "monitor_name", r->monitor_name);
11830 ndr->depth--;
11831 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
11832 ndr->depth++;
11833 if (r->default_datatype) {
11834 ndr_print_string(ndr, "default_datatype", r->default_datatype);
11836 ndr->depth--;
11837 ndr->depth--;
11840 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3 *r, struct smb_iconv_convenience *ic, int flags)
11842 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo3, ic);
11845 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo4 *r)
11847 if (ndr_flags & NDR_SCALARS) {
11848 NDR_CHECK(ndr_push_align(ndr, 5));
11849 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11851 uint32_t _flags_save_string = ndr->flags;
11852 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11853 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11854 ndr->flags = _flags_save_string;
11857 uint32_t _flags_save_string = ndr->flags;
11858 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11859 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11860 ndr->flags = _flags_save_string;
11863 uint32_t _flags_save_string = ndr->flags;
11864 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11865 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11866 ndr->flags = _flags_save_string;
11869 uint32_t _flags_save_string = ndr->flags;
11870 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11871 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11872 ndr->flags = _flags_save_string;
11875 uint32_t _flags_save_string = ndr->flags;
11876 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11877 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11878 ndr->flags = _flags_save_string;
11881 uint32_t _flags_save_string = ndr->flags;
11882 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11883 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
11884 ndr->flags = _flags_save_string;
11887 uint32_t _flags_save_string_array = ndr->flags;
11888 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11889 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
11890 ndr->flags = _flags_save_string_array;
11893 uint32_t _flags_save_string = ndr->flags;
11894 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11895 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
11896 ndr->flags = _flags_save_string;
11899 uint32_t _flags_save_string = ndr->flags;
11900 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11901 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
11902 ndr->flags = _flags_save_string;
11905 uint32_t _flags_save_string_array = ndr->flags;
11906 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11907 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
11908 ndr->flags = _flags_save_string_array;
11910 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11912 if (ndr_flags & NDR_BUFFERS) {
11914 uint32_t _flags_save_string = ndr->flags;
11915 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11916 if (r->driver_name) {
11917 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
11918 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11919 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
11921 ndr->flags = _flags_save_string;
11924 uint32_t _flags_save_string = ndr->flags;
11925 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11926 if (r->architecture) {
11927 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
11928 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11929 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
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->driver_path) {
11937 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
11938 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11939 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
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->data_file) {
11947 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
11948 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11949 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
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->config_file) {
11957 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
11958 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11959 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_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->help_file) {
11967 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
11968 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
11969 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
11971 ndr->flags = _flags_save_string;
11974 uint32_t _flags_save_string_array = ndr->flags;
11975 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11976 if (r->dependent_files) {
11977 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
11978 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
11979 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
11981 ndr->flags = _flags_save_string_array;
11984 uint32_t _flags_save_string = ndr->flags;
11985 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11986 if (r->monitor_name) {
11987 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
11988 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
11989 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
11991 ndr->flags = _flags_save_string;
11994 uint32_t _flags_save_string = ndr->flags;
11995 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11996 if (r->default_datatype) {
11997 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
11998 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
11999 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
12001 ndr->flags = _flags_save_string;
12004 uint32_t _flags_save_string_array = ndr->flags;
12005 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12006 if (r->previous_names) {
12007 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->previous_names));
12008 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
12009 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->previous_names));
12011 ndr->flags = _flags_save_string_array;
12014 return NDR_ERR_SUCCESS;
12017 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo4 *r)
12019 uint32_t _ptr_driver_name;
12020 TALLOC_CTX *_mem_save_driver_name_0;
12021 uint32_t _ptr_architecture;
12022 TALLOC_CTX *_mem_save_architecture_0;
12023 uint32_t _ptr_driver_path;
12024 TALLOC_CTX *_mem_save_driver_path_0;
12025 uint32_t _ptr_data_file;
12026 TALLOC_CTX *_mem_save_data_file_0;
12027 uint32_t _ptr_config_file;
12028 TALLOC_CTX *_mem_save_config_file_0;
12029 uint32_t _ptr_help_file;
12030 TALLOC_CTX *_mem_save_help_file_0;
12031 uint32_t _ptr_dependent_files;
12032 TALLOC_CTX *_mem_save_dependent_files_0;
12033 uint32_t _ptr_monitor_name;
12034 TALLOC_CTX *_mem_save_monitor_name_0;
12035 uint32_t _ptr_default_datatype;
12036 TALLOC_CTX *_mem_save_default_datatype_0;
12037 uint32_t _ptr_previous_names;
12038 TALLOC_CTX *_mem_save_previous_names_0;
12039 if (ndr_flags & NDR_SCALARS) {
12040 NDR_CHECK(ndr_pull_align(ndr, 5));
12041 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12043 uint32_t _flags_save_string = ndr->flags;
12044 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12045 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12046 if (_ptr_driver_name) {
12047 NDR_PULL_ALLOC(ndr, r->driver_name);
12048 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12049 } else {
12050 r->driver_name = NULL;
12052 ndr->flags = _flags_save_string;
12055 uint32_t _flags_save_string = ndr->flags;
12056 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12057 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
12058 if (_ptr_architecture) {
12059 NDR_PULL_ALLOC(ndr, r->architecture);
12060 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12061 } else {
12062 r->architecture = NULL;
12064 ndr->flags = _flags_save_string;
12067 uint32_t _flags_save_string = ndr->flags;
12068 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12069 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
12070 if (_ptr_driver_path) {
12071 NDR_PULL_ALLOC(ndr, r->driver_path);
12072 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
12073 } else {
12074 r->driver_path = NULL;
12076 ndr->flags = _flags_save_string;
12079 uint32_t _flags_save_string = ndr->flags;
12080 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12081 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
12082 if (_ptr_data_file) {
12083 NDR_PULL_ALLOC(ndr, r->data_file);
12084 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
12085 } else {
12086 r->data_file = NULL;
12088 ndr->flags = _flags_save_string;
12091 uint32_t _flags_save_string = ndr->flags;
12092 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12093 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
12094 if (_ptr_config_file) {
12095 NDR_PULL_ALLOC(ndr, r->config_file);
12096 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
12097 } else {
12098 r->config_file = NULL;
12100 ndr->flags = _flags_save_string;
12103 uint32_t _flags_save_string = ndr->flags;
12104 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12105 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
12106 if (_ptr_help_file) {
12107 NDR_PULL_ALLOC(ndr, r->help_file);
12108 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
12109 } else {
12110 r->help_file = NULL;
12112 ndr->flags = _flags_save_string;
12115 uint32_t _flags_save_string_array = ndr->flags;
12116 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12117 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
12118 if (_ptr_dependent_files) {
12119 NDR_PULL_ALLOC(ndr, r->dependent_files);
12120 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
12121 } else {
12122 r->dependent_files = NULL;
12124 ndr->flags = _flags_save_string_array;
12127 uint32_t _flags_save_string = ndr->flags;
12128 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12129 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12130 if (_ptr_monitor_name) {
12131 NDR_PULL_ALLOC(ndr, r->monitor_name);
12132 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12133 } else {
12134 r->monitor_name = NULL;
12136 ndr->flags = _flags_save_string;
12139 uint32_t _flags_save_string = ndr->flags;
12140 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12141 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
12142 if (_ptr_default_datatype) {
12143 NDR_PULL_ALLOC(ndr, r->default_datatype);
12144 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
12145 } else {
12146 r->default_datatype = NULL;
12148 ndr->flags = _flags_save_string;
12151 uint32_t _flags_save_string_array = ndr->flags;
12152 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12153 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
12154 if (_ptr_previous_names) {
12155 NDR_PULL_ALLOC(ndr, r->previous_names);
12156 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
12157 } else {
12158 r->previous_names = NULL;
12160 ndr->flags = _flags_save_string_array;
12162 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
12164 if (ndr_flags & NDR_BUFFERS) {
12166 uint32_t _flags_save_string = ndr->flags;
12167 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12168 if (r->driver_name) {
12169 uint32_t _relative_save_offset;
12170 _relative_save_offset = ndr->offset;
12171 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12172 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12173 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12174 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12175 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12176 if (ndr->offset > ndr->relative_highest_offset) {
12177 ndr->relative_highest_offset = ndr->offset;
12179 ndr->offset = _relative_save_offset;
12181 ndr->flags = _flags_save_string;
12184 uint32_t _flags_save_string = ndr->flags;
12185 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12186 if (r->architecture) {
12187 uint32_t _relative_save_offset;
12188 _relative_save_offset = ndr->offset;
12189 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12190 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12191 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12192 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12193 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12194 if (ndr->offset > ndr->relative_highest_offset) {
12195 ndr->relative_highest_offset = ndr->offset;
12197 ndr->offset = _relative_save_offset;
12199 ndr->flags = _flags_save_string;
12202 uint32_t _flags_save_string = ndr->flags;
12203 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12204 if (r->driver_path) {
12205 uint32_t _relative_save_offset;
12206 _relative_save_offset = ndr->offset;
12207 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12208 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12209 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12210 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12211 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
12212 if (ndr->offset > ndr->relative_highest_offset) {
12213 ndr->relative_highest_offset = ndr->offset;
12215 ndr->offset = _relative_save_offset;
12217 ndr->flags = _flags_save_string;
12220 uint32_t _flags_save_string = ndr->flags;
12221 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12222 if (r->data_file) {
12223 uint32_t _relative_save_offset;
12224 _relative_save_offset = ndr->offset;
12225 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12226 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12227 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12228 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12229 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12230 if (ndr->offset > ndr->relative_highest_offset) {
12231 ndr->relative_highest_offset = ndr->offset;
12233 ndr->offset = _relative_save_offset;
12235 ndr->flags = _flags_save_string;
12238 uint32_t _flags_save_string = ndr->flags;
12239 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12240 if (r->config_file) {
12241 uint32_t _relative_save_offset;
12242 _relative_save_offset = ndr->offset;
12243 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12244 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12245 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12246 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12247 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12248 if (ndr->offset > ndr->relative_highest_offset) {
12249 ndr->relative_highest_offset = ndr->offset;
12251 ndr->offset = _relative_save_offset;
12253 ndr->flags = _flags_save_string;
12256 uint32_t _flags_save_string = ndr->flags;
12257 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12258 if (r->help_file) {
12259 uint32_t _relative_save_offset;
12260 _relative_save_offset = ndr->offset;
12261 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
12262 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12263 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
12264 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
12265 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
12266 if (ndr->offset > ndr->relative_highest_offset) {
12267 ndr->relative_highest_offset = ndr->offset;
12269 ndr->offset = _relative_save_offset;
12271 ndr->flags = _flags_save_string;
12274 uint32_t _flags_save_string_array = ndr->flags;
12275 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12276 if (r->dependent_files) {
12277 uint32_t _relative_save_offset;
12278 _relative_save_offset = ndr->offset;
12279 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
12280 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
12281 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
12282 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
12283 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
12284 if (ndr->offset > ndr->relative_highest_offset) {
12285 ndr->relative_highest_offset = ndr->offset;
12287 ndr->offset = _relative_save_offset;
12289 ndr->flags = _flags_save_string_array;
12292 uint32_t _flags_save_string = ndr->flags;
12293 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12294 if (r->monitor_name) {
12295 uint32_t _relative_save_offset;
12296 _relative_save_offset = ndr->offset;
12297 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12298 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12299 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12300 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12301 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12302 if (ndr->offset > ndr->relative_highest_offset) {
12303 ndr->relative_highest_offset = ndr->offset;
12305 ndr->offset = _relative_save_offset;
12307 ndr->flags = _flags_save_string;
12310 uint32_t _flags_save_string = ndr->flags;
12311 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12312 if (r->default_datatype) {
12313 uint32_t _relative_save_offset;
12314 _relative_save_offset = ndr->offset;
12315 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
12316 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
12317 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
12318 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
12319 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
12320 if (ndr->offset > ndr->relative_highest_offset) {
12321 ndr->relative_highest_offset = ndr->offset;
12323 ndr->offset = _relative_save_offset;
12325 ndr->flags = _flags_save_string;
12328 uint32_t _flags_save_string_array = ndr->flags;
12329 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12330 if (r->previous_names) {
12331 uint32_t _relative_save_offset;
12332 _relative_save_offset = ndr->offset;
12333 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
12334 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
12335 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
12336 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
12337 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
12338 if (ndr->offset > ndr->relative_highest_offset) {
12339 ndr->relative_highest_offset = ndr->offset;
12341 ndr->offset = _relative_save_offset;
12343 ndr->flags = _flags_save_string_array;
12346 return NDR_ERR_SUCCESS;
12349 _PUBLIC_ void ndr_print_spoolss_DriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo4 *r)
12351 ndr_print_struct(ndr, name, "spoolss_DriverInfo4");
12352 ndr->depth++;
12353 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
12354 ndr_print_ptr(ndr, "driver_name", r->driver_name);
12355 ndr->depth++;
12356 if (r->driver_name) {
12357 ndr_print_string(ndr, "driver_name", r->driver_name);
12359 ndr->depth--;
12360 ndr_print_ptr(ndr, "architecture", r->architecture);
12361 ndr->depth++;
12362 if (r->architecture) {
12363 ndr_print_string(ndr, "architecture", r->architecture);
12365 ndr->depth--;
12366 ndr_print_ptr(ndr, "driver_path", r->driver_path);
12367 ndr->depth++;
12368 if (r->driver_path) {
12369 ndr_print_string(ndr, "driver_path", r->driver_path);
12371 ndr->depth--;
12372 ndr_print_ptr(ndr, "data_file", r->data_file);
12373 ndr->depth++;
12374 if (r->data_file) {
12375 ndr_print_string(ndr, "data_file", r->data_file);
12377 ndr->depth--;
12378 ndr_print_ptr(ndr, "config_file", r->config_file);
12379 ndr->depth++;
12380 if (r->config_file) {
12381 ndr_print_string(ndr, "config_file", r->config_file);
12383 ndr->depth--;
12384 ndr_print_ptr(ndr, "help_file", r->help_file);
12385 ndr->depth++;
12386 if (r->help_file) {
12387 ndr_print_string(ndr, "help_file", r->help_file);
12389 ndr->depth--;
12390 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
12391 ndr->depth++;
12392 if (r->dependent_files) {
12393 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
12395 ndr->depth--;
12396 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12397 ndr->depth++;
12398 if (r->monitor_name) {
12399 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12401 ndr->depth--;
12402 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
12403 ndr->depth++;
12404 if (r->default_datatype) {
12405 ndr_print_string(ndr, "default_datatype", r->default_datatype);
12407 ndr->depth--;
12408 ndr_print_ptr(ndr, "previous_names", r->previous_names);
12409 ndr->depth++;
12410 if (r->previous_names) {
12411 ndr_print_string_array(ndr, "previous_names", r->previous_names);
12413 ndr->depth--;
12414 ndr->depth--;
12417 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4 *r, struct smb_iconv_convenience *ic, int flags)
12419 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo4, ic);
12422 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo5 *r)
12424 if (ndr_flags & NDR_SCALARS) {
12425 NDR_CHECK(ndr_push_align(ndr, 5));
12426 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12428 uint32_t _flags_save_string = ndr->flags;
12429 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12430 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12431 ndr->flags = _flags_save_string;
12434 uint32_t _flags_save_string = ndr->flags;
12435 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12436 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12437 ndr->flags = _flags_save_string;
12440 uint32_t _flags_save_string = ndr->flags;
12441 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12442 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
12443 ndr->flags = _flags_save_string;
12446 uint32_t _flags_save_string = ndr->flags;
12447 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12448 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
12449 ndr->flags = _flags_save_string;
12452 uint32_t _flags_save_string = ndr->flags;
12453 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12454 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12455 ndr->flags = _flags_save_string;
12457 NDR_CHECK(ndr_push_spoolss_DriverAttributes(ndr, NDR_SCALARS, r->driver_attributes));
12458 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->config_version));
12459 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_version));
12460 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
12462 if (ndr_flags & NDR_BUFFERS) {
12464 uint32_t _flags_save_string = ndr->flags;
12465 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12466 if (r->driver_name) {
12467 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
12468 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12469 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
12471 ndr->flags = _flags_save_string;
12474 uint32_t _flags_save_string = ndr->flags;
12475 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12476 if (r->architecture) {
12477 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
12478 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
12479 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
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->driver_path) {
12487 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
12488 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
12489 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
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->data_file) {
12497 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
12498 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
12499 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
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->config_file) {
12507 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
12508 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
12509 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
12511 ndr->flags = _flags_save_string;
12514 return NDR_ERR_SUCCESS;
12517 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo5 *r)
12519 uint32_t _ptr_driver_name;
12520 TALLOC_CTX *_mem_save_driver_name_0;
12521 uint32_t _ptr_architecture;
12522 TALLOC_CTX *_mem_save_architecture_0;
12523 uint32_t _ptr_driver_path;
12524 TALLOC_CTX *_mem_save_driver_path_0;
12525 uint32_t _ptr_data_file;
12526 TALLOC_CTX *_mem_save_data_file_0;
12527 uint32_t _ptr_config_file;
12528 TALLOC_CTX *_mem_save_config_file_0;
12529 if (ndr_flags & NDR_SCALARS) {
12530 NDR_CHECK(ndr_pull_align(ndr, 5));
12531 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12533 uint32_t _flags_save_string = ndr->flags;
12534 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12535 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12536 if (_ptr_driver_name) {
12537 NDR_PULL_ALLOC(ndr, r->driver_name);
12538 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12539 } else {
12540 r->driver_name = NULL;
12542 ndr->flags = _flags_save_string;
12545 uint32_t _flags_save_string = ndr->flags;
12546 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12547 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
12548 if (_ptr_architecture) {
12549 NDR_PULL_ALLOC(ndr, r->architecture);
12550 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12551 } else {
12552 r->architecture = NULL;
12554 ndr->flags = _flags_save_string;
12557 uint32_t _flags_save_string = ndr->flags;
12558 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12559 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
12560 if (_ptr_driver_path) {
12561 NDR_PULL_ALLOC(ndr, r->driver_path);
12562 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
12563 } else {
12564 r->driver_path = NULL;
12566 ndr->flags = _flags_save_string;
12569 uint32_t _flags_save_string = ndr->flags;
12570 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12571 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
12572 if (_ptr_data_file) {
12573 NDR_PULL_ALLOC(ndr, r->data_file);
12574 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
12575 } else {
12576 r->data_file = NULL;
12578 ndr->flags = _flags_save_string;
12581 uint32_t _flags_save_string = ndr->flags;
12582 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12583 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
12584 if (_ptr_config_file) {
12585 NDR_PULL_ALLOC(ndr, r->config_file);
12586 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
12587 } else {
12588 r->config_file = NULL;
12590 ndr->flags = _flags_save_string;
12592 NDR_CHECK(ndr_pull_spoolss_DriverAttributes(ndr, NDR_SCALARS, &r->driver_attributes));
12593 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->config_version));
12594 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_version));
12595 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
12597 if (ndr_flags & NDR_BUFFERS) {
12599 uint32_t _flags_save_string = ndr->flags;
12600 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12601 if (r->driver_name) {
12602 uint32_t _relative_save_offset;
12603 _relative_save_offset = ndr->offset;
12604 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12605 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12606 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12607 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12608 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12609 if (ndr->offset > ndr->relative_highest_offset) {
12610 ndr->relative_highest_offset = ndr->offset;
12612 ndr->offset = _relative_save_offset;
12614 ndr->flags = _flags_save_string;
12617 uint32_t _flags_save_string = ndr->flags;
12618 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12619 if (r->architecture) {
12620 uint32_t _relative_save_offset;
12621 _relative_save_offset = ndr->offset;
12622 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12623 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12624 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12625 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12626 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12627 if (ndr->offset > ndr->relative_highest_offset) {
12628 ndr->relative_highest_offset = ndr->offset;
12630 ndr->offset = _relative_save_offset;
12632 ndr->flags = _flags_save_string;
12635 uint32_t _flags_save_string = ndr->flags;
12636 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12637 if (r->driver_path) {
12638 uint32_t _relative_save_offset;
12639 _relative_save_offset = ndr->offset;
12640 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12641 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12642 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12643 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12644 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
12645 if (ndr->offset > ndr->relative_highest_offset) {
12646 ndr->relative_highest_offset = ndr->offset;
12648 ndr->offset = _relative_save_offset;
12650 ndr->flags = _flags_save_string;
12653 uint32_t _flags_save_string = ndr->flags;
12654 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12655 if (r->data_file) {
12656 uint32_t _relative_save_offset;
12657 _relative_save_offset = ndr->offset;
12658 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12659 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12660 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12661 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12662 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12663 if (ndr->offset > ndr->relative_highest_offset) {
12664 ndr->relative_highest_offset = ndr->offset;
12666 ndr->offset = _relative_save_offset;
12668 ndr->flags = _flags_save_string;
12671 uint32_t _flags_save_string = ndr->flags;
12672 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12673 if (r->config_file) {
12674 uint32_t _relative_save_offset;
12675 _relative_save_offset = ndr->offset;
12676 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12677 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12678 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12679 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12680 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12681 if (ndr->offset > ndr->relative_highest_offset) {
12682 ndr->relative_highest_offset = ndr->offset;
12684 ndr->offset = _relative_save_offset;
12686 ndr->flags = _flags_save_string;
12689 return NDR_ERR_SUCCESS;
12692 _PUBLIC_ void ndr_print_spoolss_DriverInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo5 *r)
12694 ndr_print_struct(ndr, name, "spoolss_DriverInfo5");
12695 ndr->depth++;
12696 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
12697 ndr_print_ptr(ndr, "driver_name", r->driver_name);
12698 ndr->depth++;
12699 if (r->driver_name) {
12700 ndr_print_string(ndr, "driver_name", r->driver_name);
12702 ndr->depth--;
12703 ndr_print_ptr(ndr, "architecture", r->architecture);
12704 ndr->depth++;
12705 if (r->architecture) {
12706 ndr_print_string(ndr, "architecture", r->architecture);
12708 ndr->depth--;
12709 ndr_print_ptr(ndr, "driver_path", r->driver_path);
12710 ndr->depth++;
12711 if (r->driver_path) {
12712 ndr_print_string(ndr, "driver_path", r->driver_path);
12714 ndr->depth--;
12715 ndr_print_ptr(ndr, "data_file", r->data_file);
12716 ndr->depth++;
12717 if (r->data_file) {
12718 ndr_print_string(ndr, "data_file", r->data_file);
12720 ndr->depth--;
12721 ndr_print_ptr(ndr, "config_file", r->config_file);
12722 ndr->depth++;
12723 if (r->config_file) {
12724 ndr_print_string(ndr, "config_file", r->config_file);
12726 ndr->depth--;
12727 ndr_print_spoolss_DriverAttributes(ndr, "driver_attributes", r->driver_attributes);
12728 ndr_print_uint32(ndr, "config_version", r->config_version);
12729 ndr_print_uint32(ndr, "driver_version", r->driver_version);
12730 ndr->depth--;
12733 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5 *r, struct smb_iconv_convenience *ic, int flags)
12735 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo5, ic);
12738 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo6 *r)
12740 if (ndr_flags & NDR_SCALARS) {
12741 NDR_CHECK(ndr_push_align(ndr, 8));
12742 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12744 uint32_t _flags_save_string = ndr->flags;
12745 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12746 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12747 ndr->flags = _flags_save_string;
12750 uint32_t _flags_save_string = ndr->flags;
12751 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12752 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12753 ndr->flags = _flags_save_string;
12756 uint32_t _flags_save_string = ndr->flags;
12757 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12758 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
12759 ndr->flags = _flags_save_string;
12762 uint32_t _flags_save_string = ndr->flags;
12763 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12764 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
12765 ndr->flags = _flags_save_string;
12768 uint32_t _flags_save_string = ndr->flags;
12769 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12770 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12771 ndr->flags = _flags_save_string;
12774 uint32_t _flags_save_string = ndr->flags;
12775 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12776 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
12777 ndr->flags = _flags_save_string;
12780 uint32_t _flags_save_string_array = ndr->flags;
12781 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12782 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
12783 ndr->flags = _flags_save_string_array;
12786 uint32_t _flags_save_string = ndr->flags;
12787 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12788 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12789 ndr->flags = _flags_save_string;
12792 uint32_t _flags_save_string = ndr->flags;
12793 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12794 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
12795 ndr->flags = _flags_save_string;
12798 uint32_t _flags_save_string_array = ndr->flags;
12799 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12800 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
12801 ndr->flags = _flags_save_string_array;
12803 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
12804 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
12806 uint32_t _flags_save_string = ndr->flags;
12807 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12808 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
12809 ndr->flags = _flags_save_string;
12812 uint32_t _flags_save_string = ndr->flags;
12813 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12814 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
12815 ndr->flags = _flags_save_string;
12818 uint32_t _flags_save_string = ndr->flags;
12819 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12820 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
12821 ndr->flags = _flags_save_string;
12824 uint32_t _flags_save_string = ndr->flags;
12825 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12826 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
12827 ndr->flags = _flags_save_string;
12829 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
12831 if (ndr_flags & NDR_BUFFERS) {
12833 uint32_t _flags_save_string = ndr->flags;
12834 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12835 if (r->driver_name) {
12836 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
12837 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12838 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
12840 ndr->flags = _flags_save_string;
12843 uint32_t _flags_save_string = ndr->flags;
12844 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12845 if (r->architecture) {
12846 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
12847 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
12848 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
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->driver_path) {
12856 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
12857 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
12858 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
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->data_file) {
12866 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
12867 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
12868 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
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->config_file) {
12876 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
12877 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
12878 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_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->help_file) {
12886 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
12887 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
12888 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
12890 ndr->flags = _flags_save_string;
12893 uint32_t _flags_save_string_array = ndr->flags;
12894 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12895 if (r->dependent_files) {
12896 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
12897 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
12898 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
12900 ndr->flags = _flags_save_string_array;
12903 uint32_t _flags_save_string = ndr->flags;
12904 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12905 if (r->monitor_name) {
12906 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
12907 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12908 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
12910 ndr->flags = _flags_save_string;
12913 uint32_t _flags_save_string = ndr->flags;
12914 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12915 if (r->default_datatype) {
12916 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
12917 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
12918 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
12920 ndr->flags = _flags_save_string;
12923 uint32_t _flags_save_string_array = ndr->flags;
12924 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12925 if (r->previous_names) {
12926 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->previous_names));
12927 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
12928 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->previous_names));
12930 ndr->flags = _flags_save_string_array;
12933 uint32_t _flags_save_string = ndr->flags;
12934 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12935 if (r->manufacturer_name) {
12936 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_name));
12937 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
12938 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_name));
12940 ndr->flags = _flags_save_string;
12943 uint32_t _flags_save_string = ndr->flags;
12944 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12945 if (r->manufacturer_url) {
12946 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_url));
12947 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
12948 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_url));
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->hardware_id) {
12956 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->hardware_id));
12957 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
12958 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->hardware_id));
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->provider) {
12966 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->provider));
12967 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
12968 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->provider));
12970 ndr->flags = _flags_save_string;
12973 return NDR_ERR_SUCCESS;
12976 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo6 *r)
12978 uint32_t _ptr_driver_name;
12979 TALLOC_CTX *_mem_save_driver_name_0;
12980 uint32_t _ptr_architecture;
12981 TALLOC_CTX *_mem_save_architecture_0;
12982 uint32_t _ptr_driver_path;
12983 TALLOC_CTX *_mem_save_driver_path_0;
12984 uint32_t _ptr_data_file;
12985 TALLOC_CTX *_mem_save_data_file_0;
12986 uint32_t _ptr_config_file;
12987 TALLOC_CTX *_mem_save_config_file_0;
12988 uint32_t _ptr_help_file;
12989 TALLOC_CTX *_mem_save_help_file_0;
12990 uint32_t _ptr_dependent_files;
12991 TALLOC_CTX *_mem_save_dependent_files_0;
12992 uint32_t _ptr_monitor_name;
12993 TALLOC_CTX *_mem_save_monitor_name_0;
12994 uint32_t _ptr_default_datatype;
12995 TALLOC_CTX *_mem_save_default_datatype_0;
12996 uint32_t _ptr_previous_names;
12997 TALLOC_CTX *_mem_save_previous_names_0;
12998 uint32_t _ptr_manufacturer_name;
12999 TALLOC_CTX *_mem_save_manufacturer_name_0;
13000 uint32_t _ptr_manufacturer_url;
13001 TALLOC_CTX *_mem_save_manufacturer_url_0;
13002 uint32_t _ptr_hardware_id;
13003 TALLOC_CTX *_mem_save_hardware_id_0;
13004 uint32_t _ptr_provider;
13005 TALLOC_CTX *_mem_save_provider_0;
13006 if (ndr_flags & NDR_SCALARS) {
13007 NDR_CHECK(ndr_pull_align(ndr, 8));
13008 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
13010 uint32_t _flags_save_string = ndr->flags;
13011 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13012 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
13013 if (_ptr_driver_name) {
13014 NDR_PULL_ALLOC(ndr, r->driver_name);
13015 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
13016 } else {
13017 r->driver_name = NULL;
13019 ndr->flags = _flags_save_string;
13022 uint32_t _flags_save_string = ndr->flags;
13023 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13024 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
13025 if (_ptr_architecture) {
13026 NDR_PULL_ALLOC(ndr, r->architecture);
13027 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
13028 } else {
13029 r->architecture = NULL;
13031 ndr->flags = _flags_save_string;
13034 uint32_t _flags_save_string = ndr->flags;
13035 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13036 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
13037 if (_ptr_driver_path) {
13038 NDR_PULL_ALLOC(ndr, r->driver_path);
13039 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
13040 } else {
13041 r->driver_path = NULL;
13043 ndr->flags = _flags_save_string;
13046 uint32_t _flags_save_string = ndr->flags;
13047 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13048 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
13049 if (_ptr_data_file) {
13050 NDR_PULL_ALLOC(ndr, r->data_file);
13051 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
13052 } else {
13053 r->data_file = NULL;
13055 ndr->flags = _flags_save_string;
13058 uint32_t _flags_save_string = ndr->flags;
13059 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13060 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
13061 if (_ptr_config_file) {
13062 NDR_PULL_ALLOC(ndr, r->config_file);
13063 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
13064 } else {
13065 r->config_file = NULL;
13067 ndr->flags = _flags_save_string;
13070 uint32_t _flags_save_string = ndr->flags;
13071 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13072 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
13073 if (_ptr_help_file) {
13074 NDR_PULL_ALLOC(ndr, r->help_file);
13075 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
13076 } else {
13077 r->help_file = NULL;
13079 ndr->flags = _flags_save_string;
13082 uint32_t _flags_save_string_array = ndr->flags;
13083 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13084 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
13085 if (_ptr_dependent_files) {
13086 NDR_PULL_ALLOC(ndr, r->dependent_files);
13087 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
13088 } else {
13089 r->dependent_files = NULL;
13091 ndr->flags = _flags_save_string_array;
13094 uint32_t _flags_save_string = ndr->flags;
13095 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13096 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
13097 if (_ptr_monitor_name) {
13098 NDR_PULL_ALLOC(ndr, r->monitor_name);
13099 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
13100 } else {
13101 r->monitor_name = NULL;
13103 ndr->flags = _flags_save_string;
13106 uint32_t _flags_save_string = ndr->flags;
13107 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13108 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
13109 if (_ptr_default_datatype) {
13110 NDR_PULL_ALLOC(ndr, r->default_datatype);
13111 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
13112 } else {
13113 r->default_datatype = NULL;
13115 ndr->flags = _flags_save_string;
13118 uint32_t _flags_save_string_array = ndr->flags;
13119 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13120 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
13121 if (_ptr_previous_names) {
13122 NDR_PULL_ALLOC(ndr, r->previous_names);
13123 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
13124 } else {
13125 r->previous_names = NULL;
13127 ndr->flags = _flags_save_string_array;
13129 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
13130 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
13132 uint32_t _flags_save_string = ndr->flags;
13133 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13134 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
13135 if (_ptr_manufacturer_name) {
13136 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
13137 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
13138 } else {
13139 r->manufacturer_name = NULL;
13141 ndr->flags = _flags_save_string;
13144 uint32_t _flags_save_string = ndr->flags;
13145 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13146 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
13147 if (_ptr_manufacturer_url) {
13148 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
13149 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
13150 } else {
13151 r->manufacturer_url = NULL;
13153 ndr->flags = _flags_save_string;
13156 uint32_t _flags_save_string = ndr->flags;
13157 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13158 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
13159 if (_ptr_hardware_id) {
13160 NDR_PULL_ALLOC(ndr, r->hardware_id);
13161 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
13162 } else {
13163 r->hardware_id = NULL;
13165 ndr->flags = _flags_save_string;
13168 uint32_t _flags_save_string = ndr->flags;
13169 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13170 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
13171 if (_ptr_provider) {
13172 NDR_PULL_ALLOC(ndr, r->provider);
13173 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
13174 } else {
13175 r->provider = NULL;
13177 ndr->flags = _flags_save_string;
13179 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
13181 if (ndr_flags & NDR_BUFFERS) {
13183 uint32_t _flags_save_string = ndr->flags;
13184 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13185 if (r->driver_name) {
13186 uint32_t _relative_save_offset;
13187 _relative_save_offset = ndr->offset;
13188 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
13189 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13190 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
13191 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
13192 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
13193 if (ndr->offset > ndr->relative_highest_offset) {
13194 ndr->relative_highest_offset = ndr->offset;
13196 ndr->offset = _relative_save_offset;
13198 ndr->flags = _flags_save_string;
13201 uint32_t _flags_save_string = ndr->flags;
13202 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13203 if (r->architecture) {
13204 uint32_t _relative_save_offset;
13205 _relative_save_offset = ndr->offset;
13206 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
13207 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
13208 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
13209 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
13210 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
13211 if (ndr->offset > ndr->relative_highest_offset) {
13212 ndr->relative_highest_offset = ndr->offset;
13214 ndr->offset = _relative_save_offset;
13216 ndr->flags = _flags_save_string;
13219 uint32_t _flags_save_string = ndr->flags;
13220 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13221 if (r->driver_path) {
13222 uint32_t _relative_save_offset;
13223 _relative_save_offset = ndr->offset;
13224 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
13225 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
13226 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
13227 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
13228 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
13229 if (ndr->offset > ndr->relative_highest_offset) {
13230 ndr->relative_highest_offset = ndr->offset;
13232 ndr->offset = _relative_save_offset;
13234 ndr->flags = _flags_save_string;
13237 uint32_t _flags_save_string = ndr->flags;
13238 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13239 if (r->data_file) {
13240 uint32_t _relative_save_offset;
13241 _relative_save_offset = ndr->offset;
13242 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
13243 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13244 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
13245 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
13246 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
13247 if (ndr->offset > ndr->relative_highest_offset) {
13248 ndr->relative_highest_offset = ndr->offset;
13250 ndr->offset = _relative_save_offset;
13252 ndr->flags = _flags_save_string;
13255 uint32_t _flags_save_string = ndr->flags;
13256 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13257 if (r->config_file) {
13258 uint32_t _relative_save_offset;
13259 _relative_save_offset = ndr->offset;
13260 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
13261 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13262 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
13263 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
13264 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
13265 if (ndr->offset > ndr->relative_highest_offset) {
13266 ndr->relative_highest_offset = ndr->offset;
13268 ndr->offset = _relative_save_offset;
13270 ndr->flags = _flags_save_string;
13273 uint32_t _flags_save_string = ndr->flags;
13274 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13275 if (r->help_file) {
13276 uint32_t _relative_save_offset;
13277 _relative_save_offset = ndr->offset;
13278 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
13279 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13280 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
13281 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
13282 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
13283 if (ndr->offset > ndr->relative_highest_offset) {
13284 ndr->relative_highest_offset = ndr->offset;
13286 ndr->offset = _relative_save_offset;
13288 ndr->flags = _flags_save_string;
13291 uint32_t _flags_save_string_array = ndr->flags;
13292 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13293 if (r->dependent_files) {
13294 uint32_t _relative_save_offset;
13295 _relative_save_offset = ndr->offset;
13296 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
13297 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
13298 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
13299 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
13300 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
13301 if (ndr->offset > ndr->relative_highest_offset) {
13302 ndr->relative_highest_offset = ndr->offset;
13304 ndr->offset = _relative_save_offset;
13306 ndr->flags = _flags_save_string_array;
13309 uint32_t _flags_save_string = ndr->flags;
13310 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13311 if (r->monitor_name) {
13312 uint32_t _relative_save_offset;
13313 _relative_save_offset = ndr->offset;
13314 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
13315 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13316 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
13317 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
13318 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
13319 if (ndr->offset > ndr->relative_highest_offset) {
13320 ndr->relative_highest_offset = ndr->offset;
13322 ndr->offset = _relative_save_offset;
13324 ndr->flags = _flags_save_string;
13327 uint32_t _flags_save_string = ndr->flags;
13328 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13329 if (r->default_datatype) {
13330 uint32_t _relative_save_offset;
13331 _relative_save_offset = ndr->offset;
13332 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
13333 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
13334 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
13335 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
13336 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
13337 if (ndr->offset > ndr->relative_highest_offset) {
13338 ndr->relative_highest_offset = ndr->offset;
13340 ndr->offset = _relative_save_offset;
13342 ndr->flags = _flags_save_string;
13345 uint32_t _flags_save_string_array = ndr->flags;
13346 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13347 if (r->previous_names) {
13348 uint32_t _relative_save_offset;
13349 _relative_save_offset = ndr->offset;
13350 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
13351 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
13352 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
13353 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
13354 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
13355 if (ndr->offset > ndr->relative_highest_offset) {
13356 ndr->relative_highest_offset = ndr->offset;
13358 ndr->offset = _relative_save_offset;
13360 ndr->flags = _flags_save_string_array;
13363 uint32_t _flags_save_string = ndr->flags;
13364 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13365 if (r->manufacturer_name) {
13366 uint32_t _relative_save_offset;
13367 _relative_save_offset = ndr->offset;
13368 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
13369 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13370 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
13371 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
13372 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
13373 if (ndr->offset > ndr->relative_highest_offset) {
13374 ndr->relative_highest_offset = ndr->offset;
13376 ndr->offset = _relative_save_offset;
13378 ndr->flags = _flags_save_string;
13381 uint32_t _flags_save_string = ndr->flags;
13382 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13383 if (r->manufacturer_url) {
13384 uint32_t _relative_save_offset;
13385 _relative_save_offset = ndr->offset;
13386 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
13387 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
13388 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
13389 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
13390 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
13391 if (ndr->offset > ndr->relative_highest_offset) {
13392 ndr->relative_highest_offset = ndr->offset;
13394 ndr->offset = _relative_save_offset;
13396 ndr->flags = _flags_save_string;
13399 uint32_t _flags_save_string = ndr->flags;
13400 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13401 if (r->hardware_id) {
13402 uint32_t _relative_save_offset;
13403 _relative_save_offset = ndr->offset;
13404 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
13405 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
13406 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
13407 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
13408 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
13409 if (ndr->offset > ndr->relative_highest_offset) {
13410 ndr->relative_highest_offset = ndr->offset;
13412 ndr->offset = _relative_save_offset;
13414 ndr->flags = _flags_save_string;
13417 uint32_t _flags_save_string = ndr->flags;
13418 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13419 if (r->provider) {
13420 uint32_t _relative_save_offset;
13421 _relative_save_offset = ndr->offset;
13422 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
13423 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
13424 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
13425 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
13426 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
13427 if (ndr->offset > ndr->relative_highest_offset) {
13428 ndr->relative_highest_offset = ndr->offset;
13430 ndr->offset = _relative_save_offset;
13432 ndr->flags = _flags_save_string;
13435 return NDR_ERR_SUCCESS;
13438 _PUBLIC_ void ndr_print_spoolss_DriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo6 *r)
13440 ndr_print_struct(ndr, name, "spoolss_DriverInfo6");
13441 ndr->depth++;
13442 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13443 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13444 ndr->depth++;
13445 if (r->driver_name) {
13446 ndr_print_string(ndr, "driver_name", r->driver_name);
13448 ndr->depth--;
13449 ndr_print_ptr(ndr, "architecture", r->architecture);
13450 ndr->depth++;
13451 if (r->architecture) {
13452 ndr_print_string(ndr, "architecture", r->architecture);
13454 ndr->depth--;
13455 ndr_print_ptr(ndr, "driver_path", r->driver_path);
13456 ndr->depth++;
13457 if (r->driver_path) {
13458 ndr_print_string(ndr, "driver_path", r->driver_path);
13460 ndr->depth--;
13461 ndr_print_ptr(ndr, "data_file", r->data_file);
13462 ndr->depth++;
13463 if (r->data_file) {
13464 ndr_print_string(ndr, "data_file", r->data_file);
13466 ndr->depth--;
13467 ndr_print_ptr(ndr, "config_file", r->config_file);
13468 ndr->depth++;
13469 if (r->config_file) {
13470 ndr_print_string(ndr, "config_file", r->config_file);
13472 ndr->depth--;
13473 ndr_print_ptr(ndr, "help_file", r->help_file);
13474 ndr->depth++;
13475 if (r->help_file) {
13476 ndr_print_string(ndr, "help_file", r->help_file);
13478 ndr->depth--;
13479 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
13480 ndr->depth++;
13481 if (r->dependent_files) {
13482 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
13484 ndr->depth--;
13485 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13486 ndr->depth++;
13487 if (r->monitor_name) {
13488 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13490 ndr->depth--;
13491 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
13492 ndr->depth++;
13493 if (r->default_datatype) {
13494 ndr_print_string(ndr, "default_datatype", r->default_datatype);
13496 ndr->depth--;
13497 ndr_print_ptr(ndr, "previous_names", r->previous_names);
13498 ndr->depth++;
13499 if (r->previous_names) {
13500 ndr_print_string_array(ndr, "previous_names", r->previous_names);
13502 ndr->depth--;
13503 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
13504 ndr_print_hyper(ndr, "driver_version", r->driver_version);
13505 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
13506 ndr->depth++;
13507 if (r->manufacturer_name) {
13508 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
13510 ndr->depth--;
13511 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
13512 ndr->depth++;
13513 if (r->manufacturer_url) {
13514 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
13516 ndr->depth--;
13517 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
13518 ndr->depth++;
13519 if (r->hardware_id) {
13520 ndr_print_string(ndr, "hardware_id", r->hardware_id);
13522 ndr->depth--;
13523 ndr_print_ptr(ndr, "provider", r->provider);
13524 ndr->depth++;
13525 if (r->provider) {
13526 ndr_print_string(ndr, "provider", r->provider);
13528 ndr->depth--;
13529 ndr->depth--;
13532 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6 *r, struct smb_iconv_convenience *ic, int flags)
13534 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo6, ic);
13537 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo7 *r)
13539 if (ndr_flags & NDR_SCALARS) {
13540 NDR_CHECK(ndr_push_align(ndr, 5));
13541 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
13542 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
13544 uint32_t _flags_save_string = ndr->flags;
13545 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13546 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
13547 ndr->flags = _flags_save_string;
13550 uint32_t _flags_save_string = ndr->flags;
13551 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13552 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_name));
13553 ndr->flags = _flags_save_string;
13556 uint32_t _flags_save_string = ndr->flags;
13557 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13558 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->install_source_root));
13559 ndr->flags = _flags_save_string;
13561 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
13563 if (ndr_flags & NDR_BUFFERS) {
13565 uint32_t _flags_save_string = ndr->flags;
13566 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13567 if (r->driver_name) {
13568 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
13569 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
13570 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
13572 ndr->flags = _flags_save_string;
13575 uint32_t _flags_save_string = ndr->flags;
13576 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13577 if (r->inf_name) {
13578 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->inf_name));
13579 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_name));
13580 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->inf_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->install_source_root) {
13588 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->install_source_root));
13589 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->install_source_root));
13590 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->install_source_root));
13592 ndr->flags = _flags_save_string;
13595 return NDR_ERR_SUCCESS;
13598 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo7 *r)
13600 uint32_t _ptr_driver_name;
13601 TALLOC_CTX *_mem_save_driver_name_0;
13602 uint32_t _ptr_inf_name;
13603 TALLOC_CTX *_mem_save_inf_name_0;
13604 uint32_t _ptr_install_source_root;
13605 TALLOC_CTX *_mem_save_install_source_root_0;
13606 if (ndr_flags & NDR_SCALARS) {
13607 NDR_CHECK(ndr_pull_align(ndr, 5));
13608 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
13609 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
13611 uint32_t _flags_save_string = ndr->flags;
13612 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13613 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
13614 if (_ptr_driver_name) {
13615 NDR_PULL_ALLOC(ndr, r->driver_name);
13616 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
13617 } else {
13618 r->driver_name = NULL;
13620 ndr->flags = _flags_save_string;
13623 uint32_t _flags_save_string = ndr->flags;
13624 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13625 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_name));
13626 if (_ptr_inf_name) {
13627 NDR_PULL_ALLOC(ndr, r->inf_name);
13628 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_name, _ptr_inf_name));
13629 } else {
13630 r->inf_name = NULL;
13632 ndr->flags = _flags_save_string;
13635 uint32_t _flags_save_string = ndr->flags;
13636 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13637 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_install_source_root));
13638 if (_ptr_install_source_root) {
13639 NDR_PULL_ALLOC(ndr, r->install_source_root);
13640 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->install_source_root, _ptr_install_source_root));
13641 } else {
13642 r->install_source_root = NULL;
13644 ndr->flags = _flags_save_string;
13646 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
13648 if (ndr_flags & NDR_BUFFERS) {
13650 uint32_t _flags_save_string = ndr->flags;
13651 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13652 if (r->driver_name) {
13653 uint32_t _relative_save_offset;
13654 _relative_save_offset = ndr->offset;
13655 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
13656 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13657 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
13658 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
13659 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
13660 if (ndr->offset > ndr->relative_highest_offset) {
13661 ndr->relative_highest_offset = ndr->offset;
13663 ndr->offset = _relative_save_offset;
13665 ndr->flags = _flags_save_string;
13668 uint32_t _flags_save_string = ndr->flags;
13669 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13670 if (r->inf_name) {
13671 uint32_t _relative_save_offset;
13672 _relative_save_offset = ndr->offset;
13673 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_name));
13674 _mem_save_inf_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13675 NDR_PULL_SET_MEM_CTX(ndr, r->inf_name, 0);
13676 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_name));
13677 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_name_0, 0);
13678 if (ndr->offset > ndr->relative_highest_offset) {
13679 ndr->relative_highest_offset = ndr->offset;
13681 ndr->offset = _relative_save_offset;
13683 ndr->flags = _flags_save_string;
13686 uint32_t _flags_save_string = ndr->flags;
13687 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13688 if (r->install_source_root) {
13689 uint32_t _relative_save_offset;
13690 _relative_save_offset = ndr->offset;
13691 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->install_source_root));
13692 _mem_save_install_source_root_0 = NDR_PULL_GET_MEM_CTX(ndr);
13693 NDR_PULL_SET_MEM_CTX(ndr, r->install_source_root, 0);
13694 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->install_source_root));
13695 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_install_source_root_0, 0);
13696 if (ndr->offset > ndr->relative_highest_offset) {
13697 ndr->relative_highest_offset = ndr->offset;
13699 ndr->offset = _relative_save_offset;
13701 ndr->flags = _flags_save_string;
13704 return NDR_ERR_SUCCESS;
13707 _PUBLIC_ void ndr_print_spoolss_DriverInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo7 *r)
13709 ndr_print_struct(ndr, name, "spoolss_DriverInfo7");
13710 ndr->depth++;
13711 ndr_print_uint32(ndr, "size", r->size);
13712 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13713 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13714 ndr->depth++;
13715 if (r->driver_name) {
13716 ndr_print_string(ndr, "driver_name", r->driver_name);
13718 ndr->depth--;
13719 ndr_print_ptr(ndr, "inf_name", r->inf_name);
13720 ndr->depth++;
13721 if (r->inf_name) {
13722 ndr_print_string(ndr, "inf_name", r->inf_name);
13724 ndr->depth--;
13725 ndr_print_ptr(ndr, "install_source_root", r->install_source_root);
13726 ndr->depth++;
13727 if (r->install_source_root) {
13728 ndr_print_string(ndr, "install_source_root", r->install_source_root);
13730 ndr->depth--;
13731 ndr->depth--;
13734 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo7(const struct spoolss_DriverInfo7 *r, struct smb_iconv_convenience *ic, int flags)
13736 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo7, ic);
13739 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo8 *r)
13741 if (ndr_flags & NDR_SCALARS) {
13742 NDR_CHECK(ndr_push_align(ndr, 8));
13743 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
13745 uint32_t _flags_save_string = ndr->flags;
13746 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13747 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
13748 ndr->flags = _flags_save_string;
13751 uint32_t _flags_save_string = ndr->flags;
13752 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13753 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
13754 ndr->flags = _flags_save_string;
13757 uint32_t _flags_save_string = ndr->flags;
13758 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13759 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
13760 ndr->flags = _flags_save_string;
13763 uint32_t _flags_save_string = ndr->flags;
13764 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13765 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
13766 ndr->flags = _flags_save_string;
13769 uint32_t _flags_save_string = ndr->flags;
13770 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13771 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
13772 ndr->flags = _flags_save_string;
13775 uint32_t _flags_save_string = ndr->flags;
13776 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13777 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
13778 ndr->flags = _flags_save_string;
13781 uint32_t _flags_save_string_array = ndr->flags;
13782 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13783 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
13784 ndr->flags = _flags_save_string_array;
13787 uint32_t _flags_save_string = ndr->flags;
13788 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13789 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
13790 ndr->flags = _flags_save_string;
13793 uint32_t _flags_save_string = ndr->flags;
13794 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13795 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
13796 ndr->flags = _flags_save_string;
13799 uint32_t _flags_save_string_array = ndr->flags;
13800 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13801 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
13802 ndr->flags = _flags_save_string_array;
13804 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
13805 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
13807 uint32_t _flags_save_string = ndr->flags;
13808 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13809 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
13810 ndr->flags = _flags_save_string;
13813 uint32_t _flags_save_string = ndr->flags;
13814 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13815 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
13816 ndr->flags = _flags_save_string;
13819 uint32_t _flags_save_string = ndr->flags;
13820 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13821 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
13822 ndr->flags = _flags_save_string;
13825 uint32_t _flags_save_string = ndr->flags;
13826 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13827 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
13828 ndr->flags = _flags_save_string;
13831 uint32_t _flags_save_string = ndr->flags;
13832 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13833 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
13834 ndr->flags = _flags_save_string;
13837 uint32_t _flags_save_string = ndr->flags;
13838 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13839 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->vendor_setup));
13840 ndr->flags = _flags_save_string;
13843 uint32_t _flags_save_string_array = ndr->flags;
13844 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13845 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->color_profiles));
13846 ndr->flags = _flags_save_string_array;
13849 uint32_t _flags_save_string = ndr->flags;
13850 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13851 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_path));
13852 ndr->flags = _flags_save_string;
13854 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
13856 uint32_t _flags_save_string_array = ndr->flags;
13857 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13858 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->core_driver_dependencies));
13859 ndr->flags = _flags_save_string_array;
13861 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
13862 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
13863 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
13865 if (ndr_flags & NDR_BUFFERS) {
13867 uint32_t _flags_save_string = ndr->flags;
13868 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13869 if (r->driver_name) {
13870 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
13871 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
13872 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
13874 ndr->flags = _flags_save_string;
13877 uint32_t _flags_save_string = ndr->flags;
13878 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13879 if (r->architecture) {
13880 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
13881 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
13882 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
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->driver_path) {
13890 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
13891 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
13892 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
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->data_file) {
13900 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
13901 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
13902 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
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->config_file) {
13910 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
13911 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
13912 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_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->help_file) {
13920 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
13921 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
13922 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
13924 ndr->flags = _flags_save_string;
13927 uint32_t _flags_save_string_array = ndr->flags;
13928 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13929 if (r->dependent_files) {
13930 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
13931 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
13932 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
13934 ndr->flags = _flags_save_string_array;
13937 uint32_t _flags_save_string = ndr->flags;
13938 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13939 if (r->monitor_name) {
13940 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
13941 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
13942 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
13944 ndr->flags = _flags_save_string;
13947 uint32_t _flags_save_string = ndr->flags;
13948 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13949 if (r->default_datatype) {
13950 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
13951 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
13952 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
13954 ndr->flags = _flags_save_string;
13957 uint32_t _flags_save_string_array = ndr->flags;
13958 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13959 if (r->previous_names) {
13960 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->previous_names));
13961 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
13962 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->previous_names));
13964 ndr->flags = _flags_save_string_array;
13967 uint32_t _flags_save_string = ndr->flags;
13968 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13969 if (r->manufacturer_name) {
13970 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_name));
13971 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
13972 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_name));
13974 ndr->flags = _flags_save_string;
13977 uint32_t _flags_save_string = ndr->flags;
13978 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13979 if (r->manufacturer_url) {
13980 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_url));
13981 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
13982 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_url));
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->hardware_id) {
13990 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->hardware_id));
13991 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
13992 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->hardware_id));
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->provider) {
14000 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->provider));
14001 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
14002 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->provider));
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->print_processor) {
14010 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor));
14011 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
14012 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor));
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->vendor_setup) {
14020 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->vendor_setup));
14021 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->vendor_setup));
14022 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->vendor_setup));
14024 ndr->flags = _flags_save_string;
14027 uint32_t _flags_save_string_array = ndr->flags;
14028 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14029 if (r->color_profiles) {
14030 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->color_profiles));
14031 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->color_profiles));
14032 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->color_profiles));
14034 ndr->flags = _flags_save_string_array;
14037 uint32_t _flags_save_string = ndr->flags;
14038 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14039 if (r->inf_path) {
14040 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->inf_path));
14041 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_path));
14042 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->inf_path));
14044 ndr->flags = _flags_save_string;
14047 uint32_t _flags_save_string_array = ndr->flags;
14048 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14049 if (r->core_driver_dependencies) {
14050 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->core_driver_dependencies));
14051 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->core_driver_dependencies));
14052 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->core_driver_dependencies));
14054 ndr->flags = _flags_save_string_array;
14057 return NDR_ERR_SUCCESS;
14060 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo8 *r)
14062 uint32_t _ptr_driver_name;
14063 TALLOC_CTX *_mem_save_driver_name_0;
14064 uint32_t _ptr_architecture;
14065 TALLOC_CTX *_mem_save_architecture_0;
14066 uint32_t _ptr_driver_path;
14067 TALLOC_CTX *_mem_save_driver_path_0;
14068 uint32_t _ptr_data_file;
14069 TALLOC_CTX *_mem_save_data_file_0;
14070 uint32_t _ptr_config_file;
14071 TALLOC_CTX *_mem_save_config_file_0;
14072 uint32_t _ptr_help_file;
14073 TALLOC_CTX *_mem_save_help_file_0;
14074 uint32_t _ptr_dependent_files;
14075 TALLOC_CTX *_mem_save_dependent_files_0;
14076 uint32_t _ptr_monitor_name;
14077 TALLOC_CTX *_mem_save_monitor_name_0;
14078 uint32_t _ptr_default_datatype;
14079 TALLOC_CTX *_mem_save_default_datatype_0;
14080 uint32_t _ptr_previous_names;
14081 TALLOC_CTX *_mem_save_previous_names_0;
14082 uint32_t _ptr_manufacturer_name;
14083 TALLOC_CTX *_mem_save_manufacturer_name_0;
14084 uint32_t _ptr_manufacturer_url;
14085 TALLOC_CTX *_mem_save_manufacturer_url_0;
14086 uint32_t _ptr_hardware_id;
14087 TALLOC_CTX *_mem_save_hardware_id_0;
14088 uint32_t _ptr_provider;
14089 TALLOC_CTX *_mem_save_provider_0;
14090 uint32_t _ptr_print_processor;
14091 TALLOC_CTX *_mem_save_print_processor_0;
14092 uint32_t _ptr_vendor_setup;
14093 TALLOC_CTX *_mem_save_vendor_setup_0;
14094 uint32_t _ptr_color_profiles;
14095 TALLOC_CTX *_mem_save_color_profiles_0;
14096 uint32_t _ptr_inf_path;
14097 TALLOC_CTX *_mem_save_inf_path_0;
14098 uint32_t _ptr_core_driver_dependencies;
14099 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
14100 if (ndr_flags & NDR_SCALARS) {
14101 NDR_CHECK(ndr_pull_align(ndr, 8));
14102 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
14104 uint32_t _flags_save_string = ndr->flags;
14105 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14106 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
14107 if (_ptr_driver_name) {
14108 NDR_PULL_ALLOC(ndr, r->driver_name);
14109 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
14110 } else {
14111 r->driver_name = NULL;
14113 ndr->flags = _flags_save_string;
14116 uint32_t _flags_save_string = ndr->flags;
14117 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14118 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
14119 if (_ptr_architecture) {
14120 NDR_PULL_ALLOC(ndr, r->architecture);
14121 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
14122 } else {
14123 r->architecture = NULL;
14125 ndr->flags = _flags_save_string;
14128 uint32_t _flags_save_string = ndr->flags;
14129 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14130 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
14131 if (_ptr_driver_path) {
14132 NDR_PULL_ALLOC(ndr, r->driver_path);
14133 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
14134 } else {
14135 r->driver_path = NULL;
14137 ndr->flags = _flags_save_string;
14140 uint32_t _flags_save_string = ndr->flags;
14141 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14142 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
14143 if (_ptr_data_file) {
14144 NDR_PULL_ALLOC(ndr, r->data_file);
14145 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
14146 } else {
14147 r->data_file = NULL;
14149 ndr->flags = _flags_save_string;
14152 uint32_t _flags_save_string = ndr->flags;
14153 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14154 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
14155 if (_ptr_config_file) {
14156 NDR_PULL_ALLOC(ndr, r->config_file);
14157 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
14158 } else {
14159 r->config_file = NULL;
14161 ndr->flags = _flags_save_string;
14164 uint32_t _flags_save_string = ndr->flags;
14165 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14166 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
14167 if (_ptr_help_file) {
14168 NDR_PULL_ALLOC(ndr, r->help_file);
14169 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
14170 } else {
14171 r->help_file = NULL;
14173 ndr->flags = _flags_save_string;
14176 uint32_t _flags_save_string_array = ndr->flags;
14177 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14178 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
14179 if (_ptr_dependent_files) {
14180 NDR_PULL_ALLOC(ndr, r->dependent_files);
14181 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
14182 } else {
14183 r->dependent_files = NULL;
14185 ndr->flags = _flags_save_string_array;
14188 uint32_t _flags_save_string = ndr->flags;
14189 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14190 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
14191 if (_ptr_monitor_name) {
14192 NDR_PULL_ALLOC(ndr, r->monitor_name);
14193 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
14194 } else {
14195 r->monitor_name = NULL;
14197 ndr->flags = _flags_save_string;
14200 uint32_t _flags_save_string = ndr->flags;
14201 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14202 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
14203 if (_ptr_default_datatype) {
14204 NDR_PULL_ALLOC(ndr, r->default_datatype);
14205 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
14206 } else {
14207 r->default_datatype = NULL;
14209 ndr->flags = _flags_save_string;
14212 uint32_t _flags_save_string_array = ndr->flags;
14213 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14214 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
14215 if (_ptr_previous_names) {
14216 NDR_PULL_ALLOC(ndr, r->previous_names);
14217 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
14218 } else {
14219 r->previous_names = NULL;
14221 ndr->flags = _flags_save_string_array;
14223 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
14224 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
14226 uint32_t _flags_save_string = ndr->flags;
14227 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14228 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
14229 if (_ptr_manufacturer_name) {
14230 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
14231 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
14232 } else {
14233 r->manufacturer_name = NULL;
14235 ndr->flags = _flags_save_string;
14238 uint32_t _flags_save_string = ndr->flags;
14239 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14240 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
14241 if (_ptr_manufacturer_url) {
14242 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
14243 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
14244 } else {
14245 r->manufacturer_url = NULL;
14247 ndr->flags = _flags_save_string;
14250 uint32_t _flags_save_string = ndr->flags;
14251 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14252 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
14253 if (_ptr_hardware_id) {
14254 NDR_PULL_ALLOC(ndr, r->hardware_id);
14255 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
14256 } else {
14257 r->hardware_id = NULL;
14259 ndr->flags = _flags_save_string;
14262 uint32_t _flags_save_string = ndr->flags;
14263 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14264 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
14265 if (_ptr_provider) {
14266 NDR_PULL_ALLOC(ndr, r->provider);
14267 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
14268 } else {
14269 r->provider = NULL;
14271 ndr->flags = _flags_save_string;
14274 uint32_t _flags_save_string = ndr->flags;
14275 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14276 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
14277 if (_ptr_print_processor) {
14278 NDR_PULL_ALLOC(ndr, r->print_processor);
14279 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
14280 } else {
14281 r->print_processor = NULL;
14283 ndr->flags = _flags_save_string;
14286 uint32_t _flags_save_string = ndr->flags;
14287 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14288 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
14289 if (_ptr_vendor_setup) {
14290 NDR_PULL_ALLOC(ndr, r->vendor_setup);
14291 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->vendor_setup, _ptr_vendor_setup));
14292 } else {
14293 r->vendor_setup = NULL;
14295 ndr->flags = _flags_save_string;
14298 uint32_t _flags_save_string_array = ndr->flags;
14299 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14300 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
14301 if (_ptr_color_profiles) {
14302 NDR_PULL_ALLOC(ndr, r->color_profiles);
14303 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->color_profiles, _ptr_color_profiles));
14304 } else {
14305 r->color_profiles = NULL;
14307 ndr->flags = _flags_save_string_array;
14310 uint32_t _flags_save_string = ndr->flags;
14311 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14312 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
14313 if (_ptr_inf_path) {
14314 NDR_PULL_ALLOC(ndr, r->inf_path);
14315 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_path, _ptr_inf_path));
14316 } else {
14317 r->inf_path = NULL;
14319 ndr->flags = _flags_save_string;
14321 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
14323 uint32_t _flags_save_string_array = ndr->flags;
14324 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14325 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
14326 if (_ptr_core_driver_dependencies) {
14327 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
14328 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->core_driver_dependencies, _ptr_core_driver_dependencies));
14329 } else {
14330 r->core_driver_dependencies = NULL;
14332 ndr->flags = _flags_save_string_array;
14334 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
14335 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
14336 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
14338 if (ndr_flags & NDR_BUFFERS) {
14340 uint32_t _flags_save_string = ndr->flags;
14341 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14342 if (r->driver_name) {
14343 uint32_t _relative_save_offset;
14344 _relative_save_offset = ndr->offset;
14345 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
14346 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14347 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
14348 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
14349 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
14350 if (ndr->offset > ndr->relative_highest_offset) {
14351 ndr->relative_highest_offset = ndr->offset;
14353 ndr->offset = _relative_save_offset;
14355 ndr->flags = _flags_save_string;
14358 uint32_t _flags_save_string = ndr->flags;
14359 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14360 if (r->architecture) {
14361 uint32_t _relative_save_offset;
14362 _relative_save_offset = ndr->offset;
14363 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
14364 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
14365 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
14366 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
14367 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
14368 if (ndr->offset > ndr->relative_highest_offset) {
14369 ndr->relative_highest_offset = ndr->offset;
14371 ndr->offset = _relative_save_offset;
14373 ndr->flags = _flags_save_string;
14376 uint32_t _flags_save_string = ndr->flags;
14377 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14378 if (r->driver_path) {
14379 uint32_t _relative_save_offset;
14380 _relative_save_offset = ndr->offset;
14381 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
14382 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
14383 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
14384 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
14385 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
14386 if (ndr->offset > ndr->relative_highest_offset) {
14387 ndr->relative_highest_offset = ndr->offset;
14389 ndr->offset = _relative_save_offset;
14391 ndr->flags = _flags_save_string;
14394 uint32_t _flags_save_string = ndr->flags;
14395 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14396 if (r->data_file) {
14397 uint32_t _relative_save_offset;
14398 _relative_save_offset = ndr->offset;
14399 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
14400 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
14401 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
14402 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
14403 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
14404 if (ndr->offset > ndr->relative_highest_offset) {
14405 ndr->relative_highest_offset = ndr->offset;
14407 ndr->offset = _relative_save_offset;
14409 ndr->flags = _flags_save_string;
14412 uint32_t _flags_save_string = ndr->flags;
14413 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14414 if (r->config_file) {
14415 uint32_t _relative_save_offset;
14416 _relative_save_offset = ndr->offset;
14417 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
14418 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
14419 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
14420 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
14421 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
14422 if (ndr->offset > ndr->relative_highest_offset) {
14423 ndr->relative_highest_offset = ndr->offset;
14425 ndr->offset = _relative_save_offset;
14427 ndr->flags = _flags_save_string;
14430 uint32_t _flags_save_string = ndr->flags;
14431 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14432 if (r->help_file) {
14433 uint32_t _relative_save_offset;
14434 _relative_save_offset = ndr->offset;
14435 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
14436 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
14437 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
14438 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
14439 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
14440 if (ndr->offset > ndr->relative_highest_offset) {
14441 ndr->relative_highest_offset = ndr->offset;
14443 ndr->offset = _relative_save_offset;
14445 ndr->flags = _flags_save_string;
14448 uint32_t _flags_save_string_array = ndr->flags;
14449 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14450 if (r->dependent_files) {
14451 uint32_t _relative_save_offset;
14452 _relative_save_offset = ndr->offset;
14453 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
14454 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
14455 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
14456 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
14457 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
14458 if (ndr->offset > ndr->relative_highest_offset) {
14459 ndr->relative_highest_offset = ndr->offset;
14461 ndr->offset = _relative_save_offset;
14463 ndr->flags = _flags_save_string_array;
14466 uint32_t _flags_save_string = ndr->flags;
14467 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14468 if (r->monitor_name) {
14469 uint32_t _relative_save_offset;
14470 _relative_save_offset = ndr->offset;
14471 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
14472 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14473 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
14474 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
14475 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
14476 if (ndr->offset > ndr->relative_highest_offset) {
14477 ndr->relative_highest_offset = ndr->offset;
14479 ndr->offset = _relative_save_offset;
14481 ndr->flags = _flags_save_string;
14484 uint32_t _flags_save_string = ndr->flags;
14485 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14486 if (r->default_datatype) {
14487 uint32_t _relative_save_offset;
14488 _relative_save_offset = ndr->offset;
14489 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
14490 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
14491 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
14492 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
14493 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
14494 if (ndr->offset > ndr->relative_highest_offset) {
14495 ndr->relative_highest_offset = ndr->offset;
14497 ndr->offset = _relative_save_offset;
14499 ndr->flags = _flags_save_string;
14502 uint32_t _flags_save_string_array = ndr->flags;
14503 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14504 if (r->previous_names) {
14505 uint32_t _relative_save_offset;
14506 _relative_save_offset = ndr->offset;
14507 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
14508 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
14509 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
14510 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
14511 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
14512 if (ndr->offset > ndr->relative_highest_offset) {
14513 ndr->relative_highest_offset = ndr->offset;
14515 ndr->offset = _relative_save_offset;
14517 ndr->flags = _flags_save_string_array;
14520 uint32_t _flags_save_string = ndr->flags;
14521 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14522 if (r->manufacturer_name) {
14523 uint32_t _relative_save_offset;
14524 _relative_save_offset = ndr->offset;
14525 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
14526 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14527 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
14528 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
14529 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
14530 if (ndr->offset > ndr->relative_highest_offset) {
14531 ndr->relative_highest_offset = ndr->offset;
14533 ndr->offset = _relative_save_offset;
14535 ndr->flags = _flags_save_string;
14538 uint32_t _flags_save_string = ndr->flags;
14539 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14540 if (r->manufacturer_url) {
14541 uint32_t _relative_save_offset;
14542 _relative_save_offset = ndr->offset;
14543 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
14544 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
14545 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
14546 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
14547 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
14548 if (ndr->offset > ndr->relative_highest_offset) {
14549 ndr->relative_highest_offset = ndr->offset;
14551 ndr->offset = _relative_save_offset;
14553 ndr->flags = _flags_save_string;
14556 uint32_t _flags_save_string = ndr->flags;
14557 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14558 if (r->hardware_id) {
14559 uint32_t _relative_save_offset;
14560 _relative_save_offset = ndr->offset;
14561 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
14562 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
14563 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
14564 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
14565 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
14566 if (ndr->offset > ndr->relative_highest_offset) {
14567 ndr->relative_highest_offset = ndr->offset;
14569 ndr->offset = _relative_save_offset;
14571 ndr->flags = _flags_save_string;
14574 uint32_t _flags_save_string = ndr->flags;
14575 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14576 if (r->provider) {
14577 uint32_t _relative_save_offset;
14578 _relative_save_offset = ndr->offset;
14579 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
14580 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
14581 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
14582 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
14583 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
14584 if (ndr->offset > ndr->relative_highest_offset) {
14585 ndr->relative_highest_offset = ndr->offset;
14587 ndr->offset = _relative_save_offset;
14589 ndr->flags = _flags_save_string;
14592 uint32_t _flags_save_string = ndr->flags;
14593 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14594 if (r->print_processor) {
14595 uint32_t _relative_save_offset;
14596 _relative_save_offset = ndr->offset;
14597 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
14598 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
14599 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
14600 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
14601 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
14602 if (ndr->offset > ndr->relative_highest_offset) {
14603 ndr->relative_highest_offset = ndr->offset;
14605 ndr->offset = _relative_save_offset;
14607 ndr->flags = _flags_save_string;
14610 uint32_t _flags_save_string = ndr->flags;
14611 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14612 if (r->vendor_setup) {
14613 uint32_t _relative_save_offset;
14614 _relative_save_offset = ndr->offset;
14615 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->vendor_setup));
14616 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
14617 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
14618 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->vendor_setup));
14619 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
14620 if (ndr->offset > ndr->relative_highest_offset) {
14621 ndr->relative_highest_offset = ndr->offset;
14623 ndr->offset = _relative_save_offset;
14625 ndr->flags = _flags_save_string;
14628 uint32_t _flags_save_string_array = ndr->flags;
14629 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14630 if (r->color_profiles) {
14631 uint32_t _relative_save_offset;
14632 _relative_save_offset = ndr->offset;
14633 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->color_profiles));
14634 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
14635 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
14636 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->color_profiles));
14637 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
14638 if (ndr->offset > ndr->relative_highest_offset) {
14639 ndr->relative_highest_offset = ndr->offset;
14641 ndr->offset = _relative_save_offset;
14643 ndr->flags = _flags_save_string_array;
14646 uint32_t _flags_save_string = ndr->flags;
14647 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14648 if (r->inf_path) {
14649 uint32_t _relative_save_offset;
14650 _relative_save_offset = ndr->offset;
14651 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_path));
14652 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
14653 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
14654 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_path));
14655 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
14656 if (ndr->offset > ndr->relative_highest_offset) {
14657 ndr->relative_highest_offset = ndr->offset;
14659 ndr->offset = _relative_save_offset;
14661 ndr->flags = _flags_save_string;
14664 uint32_t _flags_save_string_array = ndr->flags;
14665 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14666 if (r->core_driver_dependencies) {
14667 uint32_t _relative_save_offset;
14668 _relative_save_offset = ndr->offset;
14669 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->core_driver_dependencies));
14670 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
14671 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
14672 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->core_driver_dependencies));
14673 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
14674 if (ndr->offset > ndr->relative_highest_offset) {
14675 ndr->relative_highest_offset = ndr->offset;
14677 ndr->offset = _relative_save_offset;
14679 ndr->flags = _flags_save_string_array;
14682 return NDR_ERR_SUCCESS;
14685 _PUBLIC_ void ndr_print_spoolss_DriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo8 *r)
14687 ndr_print_struct(ndr, name, "spoolss_DriverInfo8");
14688 ndr->depth++;
14689 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
14690 ndr_print_ptr(ndr, "driver_name", r->driver_name);
14691 ndr->depth++;
14692 if (r->driver_name) {
14693 ndr_print_string(ndr, "driver_name", r->driver_name);
14695 ndr->depth--;
14696 ndr_print_ptr(ndr, "architecture", r->architecture);
14697 ndr->depth++;
14698 if (r->architecture) {
14699 ndr_print_string(ndr, "architecture", r->architecture);
14701 ndr->depth--;
14702 ndr_print_ptr(ndr, "driver_path", r->driver_path);
14703 ndr->depth++;
14704 if (r->driver_path) {
14705 ndr_print_string(ndr, "driver_path", r->driver_path);
14707 ndr->depth--;
14708 ndr_print_ptr(ndr, "data_file", r->data_file);
14709 ndr->depth++;
14710 if (r->data_file) {
14711 ndr_print_string(ndr, "data_file", r->data_file);
14713 ndr->depth--;
14714 ndr_print_ptr(ndr, "config_file", r->config_file);
14715 ndr->depth++;
14716 if (r->config_file) {
14717 ndr_print_string(ndr, "config_file", r->config_file);
14719 ndr->depth--;
14720 ndr_print_ptr(ndr, "help_file", r->help_file);
14721 ndr->depth++;
14722 if (r->help_file) {
14723 ndr_print_string(ndr, "help_file", r->help_file);
14725 ndr->depth--;
14726 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
14727 ndr->depth++;
14728 if (r->dependent_files) {
14729 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
14731 ndr->depth--;
14732 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
14733 ndr->depth++;
14734 if (r->monitor_name) {
14735 ndr_print_string(ndr, "monitor_name", r->monitor_name);
14737 ndr->depth--;
14738 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
14739 ndr->depth++;
14740 if (r->default_datatype) {
14741 ndr_print_string(ndr, "default_datatype", r->default_datatype);
14743 ndr->depth--;
14744 ndr_print_ptr(ndr, "previous_names", r->previous_names);
14745 ndr->depth++;
14746 if (r->previous_names) {
14747 ndr_print_string_array(ndr, "previous_names", r->previous_names);
14749 ndr->depth--;
14750 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
14751 ndr_print_hyper(ndr, "driver_version", r->driver_version);
14752 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
14753 ndr->depth++;
14754 if (r->manufacturer_name) {
14755 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
14757 ndr->depth--;
14758 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
14759 ndr->depth++;
14760 if (r->manufacturer_url) {
14761 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
14763 ndr->depth--;
14764 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
14765 ndr->depth++;
14766 if (r->hardware_id) {
14767 ndr_print_string(ndr, "hardware_id", r->hardware_id);
14769 ndr->depth--;
14770 ndr_print_ptr(ndr, "provider", r->provider);
14771 ndr->depth++;
14772 if (r->provider) {
14773 ndr_print_string(ndr, "provider", r->provider);
14775 ndr->depth--;
14776 ndr_print_ptr(ndr, "print_processor", r->print_processor);
14777 ndr->depth++;
14778 if (r->print_processor) {
14779 ndr_print_string(ndr, "print_processor", r->print_processor);
14781 ndr->depth--;
14782 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
14783 ndr->depth++;
14784 if (r->vendor_setup) {
14785 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
14787 ndr->depth--;
14788 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
14789 ndr->depth++;
14790 if (r->color_profiles) {
14791 ndr_print_string_array(ndr, "color_profiles", r->color_profiles);
14793 ndr->depth--;
14794 ndr_print_ptr(ndr, "inf_path", r->inf_path);
14795 ndr->depth++;
14796 if (r->inf_path) {
14797 ndr_print_string(ndr, "inf_path", r->inf_path);
14799 ndr->depth--;
14800 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
14801 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
14802 ndr->depth++;
14803 if (r->core_driver_dependencies) {
14804 ndr_print_string_array(ndr, "core_driver_dependencies", r->core_driver_dependencies);
14806 ndr->depth--;
14807 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
14808 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
14809 ndr->depth--;
14812 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8 *r, struct smb_iconv_convenience *ic, int flags)
14814 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo8, ic);
14817 static enum ndr_err_code ndr_push_spoolss_DriverFileType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverFileType r)
14819 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
14820 return NDR_ERR_SUCCESS;
14823 static enum ndr_err_code ndr_pull_spoolss_DriverFileType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverFileType *r)
14825 uint32_t v;
14826 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
14827 *r = v;
14828 return NDR_ERR_SUCCESS;
14831 _PUBLIC_ void ndr_print_spoolss_DriverFileType(struct ndr_print *ndr, const char *name, enum spoolss_DriverFileType r)
14833 const char *val = NULL;
14835 switch (r) {
14836 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING: val = "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
14837 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION: val = "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
14838 case SPOOLSS_DRIVER_FILE_TYPE_DATA: val = "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
14839 case SPOOLSS_DRIVER_FILE_TYPE_HELP: val = "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
14840 case SPOOLSS_DRIVER_FILE_TYPE_OTHER: val = "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
14842 ndr_print_enum(ndr, name, "ENUM", val, r);
14845 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverFileInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverFileInfo *r)
14847 if (ndr_flags & NDR_SCALARS) {
14848 NDR_CHECK(ndr_push_align(ndr, 5));
14850 uint32_t _flags_save_string = ndr->flags;
14851 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14852 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->file_name));
14853 ndr->flags = _flags_save_string;
14855 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr, NDR_SCALARS, r->file_type));
14856 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->file_version));
14857 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
14859 if (ndr_flags & NDR_BUFFERS) {
14861 uint32_t _flags_save_string = ndr->flags;
14862 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14863 if (r->file_name) {
14864 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->file_name));
14865 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->file_name));
14866 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->file_name));
14868 ndr->flags = _flags_save_string;
14871 return NDR_ERR_SUCCESS;
14874 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverFileInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverFileInfo *r)
14876 uint32_t _ptr_file_name;
14877 TALLOC_CTX *_mem_save_file_name_0;
14878 if (ndr_flags & NDR_SCALARS) {
14879 NDR_CHECK(ndr_pull_align(ndr, 5));
14881 uint32_t _flags_save_string = ndr->flags;
14882 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14883 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_file_name));
14884 if (_ptr_file_name) {
14885 NDR_PULL_ALLOC(ndr, r->file_name);
14886 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->file_name, _ptr_file_name));
14887 } else {
14888 r->file_name = NULL;
14890 ndr->flags = _flags_save_string;
14892 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr, NDR_SCALARS, &r->file_type));
14893 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->file_version));
14894 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
14896 if (ndr_flags & NDR_BUFFERS) {
14898 uint32_t _flags_save_string = ndr->flags;
14899 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14900 if (r->file_name) {
14901 uint32_t _relative_save_offset;
14902 _relative_save_offset = ndr->offset;
14903 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->file_name));
14904 _mem_save_file_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14905 NDR_PULL_SET_MEM_CTX(ndr, r->file_name, 0);
14906 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->file_name));
14907 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_file_name_0, 0);
14908 if (ndr->offset > ndr->relative_highest_offset) {
14909 ndr->relative_highest_offset = ndr->offset;
14911 ndr->offset = _relative_save_offset;
14913 ndr->flags = _flags_save_string;
14916 return NDR_ERR_SUCCESS;
14919 _PUBLIC_ void ndr_print_spoolss_DriverFileInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DriverFileInfo *r)
14921 ndr_print_struct(ndr, name, "spoolss_DriverFileInfo");
14922 ndr->depth++;
14923 ndr_print_ptr(ndr, "file_name", r->file_name);
14924 ndr->depth++;
14925 if (r->file_name) {
14926 ndr_print_string(ndr, "file_name", r->file_name);
14928 ndr->depth--;
14929 ndr_print_spoolss_DriverFileType(ndr, "file_type", r->file_type);
14930 ndr_print_uint32(ndr, "file_version", r->file_version);
14931 ndr->depth--;
14934 _PUBLIC_ void ndr_print_spoolss_DriverInfo101(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo101 *r)
14936 uint32_t cntr_file_info_1;
14937 ndr_print_struct(ndr, name, "spoolss_DriverInfo101");
14938 ndr->depth++;
14939 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
14940 ndr_print_ptr(ndr, "driver_name", r->driver_name);
14941 ndr->depth++;
14942 if (r->driver_name) {
14943 ndr_print_string(ndr, "driver_name", r->driver_name);
14945 ndr->depth--;
14946 ndr_print_ptr(ndr, "architecture", r->architecture);
14947 ndr->depth++;
14948 if (r->architecture) {
14949 ndr_print_string(ndr, "architecture", r->architecture);
14951 ndr->depth--;
14952 ndr_print_ptr(ndr, "file_info", r->file_info);
14953 ndr->depth++;
14954 if (r->file_info) {
14955 ndr->print(ndr, "%s: ARRAY(%d)", "file_info", (int)r->file_count);
14956 ndr->depth++;
14957 for (cntr_file_info_1=0;cntr_file_info_1<r->file_count;cntr_file_info_1++) {
14958 char *idx_1=NULL;
14959 if (asprintf(&idx_1, "[%d]", cntr_file_info_1) != -1) {
14960 ndr_print_spoolss_DriverFileInfo(ndr, "file_info", &r->file_info[cntr_file_info_1]);
14961 free(idx_1);
14964 ndr->depth--;
14966 ndr->depth--;
14967 ndr_print_uint32(ndr, "file_count", r->file_count);
14968 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
14969 ndr->depth++;
14970 if (r->monitor_name) {
14971 ndr_print_string(ndr, "monitor_name", r->monitor_name);
14973 ndr->depth--;
14974 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
14975 ndr->depth++;
14976 if (r->default_datatype) {
14977 ndr_print_string(ndr, "default_datatype", r->default_datatype);
14979 ndr->depth--;
14980 ndr_print_ptr(ndr, "previous_names", r->previous_names);
14981 ndr->depth++;
14982 if (r->previous_names) {
14983 ndr_print_string_array(ndr, "previous_names", r->previous_names);
14985 ndr->depth--;
14986 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
14987 ndr_print_hyper(ndr, "driver_version", r->driver_version);
14988 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
14989 ndr->depth++;
14990 if (r->manufacturer_name) {
14991 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
14993 ndr->depth--;
14994 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
14995 ndr->depth++;
14996 if (r->manufacturer_url) {
14997 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
14999 ndr->depth--;
15000 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
15001 ndr->depth++;
15002 if (r->hardware_id) {
15003 ndr_print_string(ndr, "hardware_id", r->hardware_id);
15005 ndr->depth--;
15006 ndr_print_ptr(ndr, "provider", r->provider);
15007 ndr->depth++;
15008 if (r->provider) {
15009 ndr_print_string(ndr, "provider", r->provider);
15011 ndr->depth--;
15012 ndr->depth--;
15015 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101 *r, struct smb_iconv_convenience *ic, int flags)
15017 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo101, ic);
15020 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverInfo *r)
15022 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
15024 uint32_t _flags_save_UNION = ndr->flags;
15025 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15026 if (ndr_flags & NDR_SCALARS) {
15027 int level = ndr_push_get_switch_value(ndr, r);
15028 NDR_CHECK(ndr_push_union_align(ndr, 8));
15029 switch (level) {
15030 case 1: {
15031 NDR_CHECK(ndr_push_align(ndr, 5));
15032 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15033 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
15034 break; }
15036 case 2: {
15037 NDR_CHECK(ndr_push_align(ndr, 5));
15038 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15039 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
15040 break; }
15042 case 3: {
15043 NDR_CHECK(ndr_push_align(ndr, 5));
15044 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15045 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
15046 break; }
15048 case 4: {
15049 NDR_CHECK(ndr_push_align(ndr, 5));
15050 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15051 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
15052 break; }
15054 case 5: {
15055 NDR_CHECK(ndr_push_align(ndr, 5));
15056 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15057 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
15058 break; }
15060 case 6: {
15061 NDR_CHECK(ndr_push_align(ndr, 8));
15062 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15063 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
15064 break; }
15066 case 7: {
15067 NDR_CHECK(ndr_push_align(ndr, 5));
15068 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15069 NDR_CHECK(ndr_push_spoolss_DriverInfo7(ndr, NDR_SCALARS, &r->info7));
15070 break; }
15072 case 8: {
15073 NDR_CHECK(ndr_push_align(ndr, 8));
15074 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15075 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
15076 break; }
15078 case 101: {
15079 NDR_CHECK(ndr_push_align(ndr, 8));
15080 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15081 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
15082 break; }
15084 default: {
15085 break; }
15089 if (ndr_flags & NDR_BUFFERS) {
15090 int level = ndr_push_get_switch_value(ndr, r);
15091 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
15092 switch (level) {
15093 case 1:
15094 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
15095 break;
15097 case 2:
15098 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
15099 break;
15101 case 3:
15102 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
15103 break;
15105 case 4:
15106 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
15107 break;
15109 case 5:
15110 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
15111 break;
15113 case 6:
15114 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
15115 break;
15117 case 7:
15118 NDR_CHECK(ndr_push_spoolss_DriverInfo7(ndr, NDR_BUFFERS, &r->info7));
15119 break;
15121 case 8:
15122 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
15123 break;
15125 case 101:
15126 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
15127 break;
15129 default:
15130 break;
15134 ndr->flags = _flags_save_UNION;
15136 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
15137 return NDR_ERR_SUCCESS;
15140 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverInfo *r)
15142 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
15143 int level;
15145 uint32_t _flags_save_UNION = ndr->flags;
15146 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15147 level = ndr_pull_get_switch_value(ndr, r);
15148 if (ndr_flags & NDR_SCALARS) {
15149 NDR_CHECK(ndr_pull_union_align(ndr, 8));
15150 switch (level) {
15151 case 1: {
15152 NDR_CHECK(ndr_pull_align(ndr, 5));
15153 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15154 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
15155 break; }
15157 case 2: {
15158 NDR_CHECK(ndr_pull_align(ndr, 5));
15159 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15160 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
15161 break; }
15163 case 3: {
15164 NDR_CHECK(ndr_pull_align(ndr, 5));
15165 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15166 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
15167 break; }
15169 case 4: {
15170 NDR_CHECK(ndr_pull_align(ndr, 5));
15171 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15172 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
15173 break; }
15175 case 5: {
15176 NDR_CHECK(ndr_pull_align(ndr, 5));
15177 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15178 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
15179 break; }
15181 case 6: {
15182 NDR_CHECK(ndr_pull_align(ndr, 8));
15183 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15184 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
15185 break; }
15187 case 7: {
15188 NDR_CHECK(ndr_pull_align(ndr, 5));
15189 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15190 NDR_CHECK(ndr_pull_spoolss_DriverInfo7(ndr, NDR_SCALARS, &r->info7));
15191 break; }
15193 case 8: {
15194 NDR_CHECK(ndr_pull_align(ndr, 8));
15195 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15196 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
15197 break; }
15199 case 101: {
15200 NDR_CHECK(ndr_pull_align(ndr, 8));
15201 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15202 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
15203 break; }
15205 default: {
15206 break; }
15210 if (ndr_flags & NDR_BUFFERS) {
15211 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15212 switch (level) {
15213 case 1:
15214 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
15215 break;
15217 case 2:
15218 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
15219 break;
15221 case 3:
15222 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
15223 break;
15225 case 4:
15226 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
15227 break;
15229 case 5:
15230 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
15231 break;
15233 case 6:
15234 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
15235 break;
15237 case 7:
15238 NDR_CHECK(ndr_pull_spoolss_DriverInfo7(ndr, NDR_BUFFERS, &r->info7));
15239 break;
15241 case 8:
15242 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
15243 break;
15245 case 101:
15246 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
15247 break;
15249 default:
15250 break;
15254 ndr->flags = _flags_save_UNION;
15256 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15257 return NDR_ERR_SUCCESS;
15260 _PUBLIC_ void ndr_print_spoolss_DriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverInfo *r)
15262 int level;
15264 uint32_t _flags_save_UNION = ndr->flags;
15265 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15266 level = ndr_print_get_switch_value(ndr, r);
15267 ndr_print_union(ndr, name, level, "spoolss_DriverInfo");
15268 switch (level) {
15269 case 1:
15270 ndr_print_spoolss_DriverInfo1(ndr, "info1", &r->info1);
15271 break;
15273 case 2:
15274 ndr_print_spoolss_DriverInfo2(ndr, "info2", &r->info2);
15275 break;
15277 case 3:
15278 ndr_print_spoolss_DriverInfo3(ndr, "info3", &r->info3);
15279 break;
15281 case 4:
15282 ndr_print_spoolss_DriverInfo4(ndr, "info4", &r->info4);
15283 break;
15285 case 5:
15286 ndr_print_spoolss_DriverInfo5(ndr, "info5", &r->info5);
15287 break;
15289 case 6:
15290 ndr_print_spoolss_DriverInfo6(ndr, "info6", &r->info6);
15291 break;
15293 case 7:
15294 ndr_print_spoolss_DriverInfo7(ndr, "info7", &r->info7);
15295 break;
15297 case 8:
15298 ndr_print_spoolss_DriverInfo8(ndr, "info8", &r->info8);
15299 break;
15301 case 101:
15302 ndr_print_spoolss_DriverInfo101(ndr, "info101", &r->info101);
15303 break;
15305 default:
15306 break;
15309 ndr->flags = _flags_save_UNION;
15313 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo(const union spoolss_DriverInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15315 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
15316 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo, ic);
15319 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverDirectoryInfo1 *r)
15321 if (ndr_flags & NDR_SCALARS) {
15322 NDR_CHECK(ndr_push_align(ndr, 4));
15324 uint32_t _flags_save_string = ndr->flags;
15325 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15326 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
15327 ndr->flags = _flags_save_string;
15329 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15331 if (ndr_flags & NDR_BUFFERS) {
15333 return NDR_ERR_SUCCESS;
15336 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverDirectoryInfo1 *r)
15338 if (ndr_flags & NDR_SCALARS) {
15339 NDR_CHECK(ndr_pull_align(ndr, 4));
15341 uint32_t _flags_save_string = ndr->flags;
15342 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15343 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
15344 ndr->flags = _flags_save_string;
15346 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15348 if (ndr_flags & NDR_BUFFERS) {
15350 return NDR_ERR_SUCCESS;
15353 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverDirectoryInfo1 *r)
15355 ndr_print_struct(ndr, name, "spoolss_DriverDirectoryInfo1");
15356 ndr->depth++;
15357 ndr_print_string(ndr, "directory_name", r->directory_name);
15358 ndr->depth--;
15361 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
15363 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo1, ic);
15366 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverDirectoryInfo *r)
15368 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
15370 uint32_t _flags_save_UNION = ndr->flags;
15371 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15372 if (ndr_flags & NDR_SCALARS) {
15373 int level = ndr_push_get_switch_value(ndr, r);
15374 NDR_CHECK(ndr_push_union_align(ndr, 4));
15375 switch (level) {
15376 case 1: {
15377 NDR_CHECK(ndr_push_align(ndr, 4));
15378 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15379 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15380 break; }
15382 default: {
15383 NDR_CHECK(ndr_push_align(ndr, 4));
15384 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15385 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15386 break; }
15390 if (ndr_flags & NDR_BUFFERS) {
15391 int level = ndr_push_get_switch_value(ndr, r);
15392 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
15393 switch (level) {
15394 case 1:
15395 break;
15397 default:
15398 break;
15402 ndr->flags = _flags_save_UNION;
15404 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
15405 return NDR_ERR_SUCCESS;
15408 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverDirectoryInfo *r)
15410 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
15411 int level;
15413 uint32_t _flags_save_UNION = ndr->flags;
15414 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15415 level = ndr_pull_get_switch_value(ndr, r);
15416 if (ndr_flags & NDR_SCALARS) {
15417 NDR_CHECK(ndr_pull_union_align(ndr, 4));
15418 switch (level) {
15419 case 1: {
15420 NDR_CHECK(ndr_pull_align(ndr, 4));
15421 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15422 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15423 break; }
15425 default: {
15426 NDR_CHECK(ndr_pull_align(ndr, 4));
15427 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15428 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15429 break; }
15433 if (ndr_flags & NDR_BUFFERS) {
15434 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15435 switch (level) {
15436 case 1:
15437 break;
15439 default:
15440 break;
15444 ndr->flags = _flags_save_UNION;
15446 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15447 return NDR_ERR_SUCCESS;
15450 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverDirectoryInfo *r)
15452 int level;
15454 uint32_t _flags_save_UNION = ndr->flags;
15455 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15456 level = ndr_print_get_switch_value(ndr, r);
15457 ndr_print_union(ndr, name, level, "spoolss_DriverDirectoryInfo");
15458 switch (level) {
15459 case 1:
15460 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
15461 break;
15463 default:
15464 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
15465 break;
15468 ndr->flags = _flags_save_UNION;
15472 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15474 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
15475 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo, ic);
15478 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorInfo1 *r)
15480 if (ndr_flags & NDR_SCALARS) {
15481 NDR_CHECK(ndr_push_align(ndr, 5));
15483 uint32_t _flags_save_string = ndr->flags;
15484 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15485 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor_name));
15486 ndr->flags = _flags_save_string;
15488 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
15490 if (ndr_flags & NDR_BUFFERS) {
15492 uint32_t _flags_save_string = ndr->flags;
15493 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15494 if (r->print_processor_name) {
15495 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor_name));
15496 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor_name));
15497 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor_name));
15499 ndr->flags = _flags_save_string;
15502 return NDR_ERR_SUCCESS;
15505 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorInfo1 *r)
15507 uint32_t _ptr_print_processor_name;
15508 TALLOC_CTX *_mem_save_print_processor_name_0;
15509 if (ndr_flags & NDR_SCALARS) {
15510 NDR_CHECK(ndr_pull_align(ndr, 5));
15512 uint32_t _flags_save_string = ndr->flags;
15513 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15514 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
15515 if (_ptr_print_processor_name) {
15516 NDR_PULL_ALLOC(ndr, r->print_processor_name);
15517 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor_name, _ptr_print_processor_name));
15518 } else {
15519 r->print_processor_name = NULL;
15521 ndr->flags = _flags_save_string;
15523 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
15525 if (ndr_flags & NDR_BUFFERS) {
15527 uint32_t _flags_save_string = ndr->flags;
15528 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15529 if (r->print_processor_name) {
15530 uint32_t _relative_save_offset;
15531 _relative_save_offset = ndr->offset;
15532 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor_name));
15533 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15534 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor_name, 0);
15535 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor_name));
15536 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
15537 if (ndr->offset > ndr->relative_highest_offset) {
15538 ndr->relative_highest_offset = ndr->offset;
15540 ndr->offset = _relative_save_offset;
15542 ndr->flags = _flags_save_string;
15545 return NDR_ERR_SUCCESS;
15548 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorInfo1 *r)
15550 ndr_print_struct(ndr, name, "spoolss_PrintProcessorInfo1");
15551 ndr->depth++;
15552 ndr_print_ptr(ndr, "print_processor_name", r->print_processor_name);
15553 ndr->depth++;
15554 if (r->print_processor_name) {
15555 ndr_print_string(ndr, "print_processor_name", r->print_processor_name);
15557 ndr->depth--;
15558 ndr->depth--;
15561 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorInfo1(const struct spoolss_PrintProcessorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
15563 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorInfo1, ic);
15566 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorInfo *r)
15568 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
15570 uint32_t _flags_save_UNION = ndr->flags;
15571 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15572 if (ndr_flags & NDR_SCALARS) {
15573 int level = ndr_push_get_switch_value(ndr, r);
15574 NDR_CHECK(ndr_push_union_align(ndr, 5));
15575 switch (level) {
15576 case 1: {
15577 NDR_CHECK(ndr_push_align(ndr, 5));
15578 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15579 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
15580 break; }
15582 default: {
15583 break; }
15587 if (ndr_flags & NDR_BUFFERS) {
15588 int level = ndr_push_get_switch_value(ndr, r);
15589 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
15590 switch (level) {
15591 case 1:
15592 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
15593 break;
15595 default:
15596 break;
15600 ndr->flags = _flags_save_UNION;
15602 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
15603 return NDR_ERR_SUCCESS;
15606 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorInfo *r)
15608 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
15609 int level;
15611 uint32_t _flags_save_UNION = ndr->flags;
15612 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15613 level = ndr_pull_get_switch_value(ndr, r);
15614 if (ndr_flags & NDR_SCALARS) {
15615 NDR_CHECK(ndr_pull_union_align(ndr, 5));
15616 switch (level) {
15617 case 1: {
15618 NDR_CHECK(ndr_pull_align(ndr, 5));
15619 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15620 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
15621 break; }
15623 default: {
15624 break; }
15628 if (ndr_flags & NDR_BUFFERS) {
15629 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15630 switch (level) {
15631 case 1:
15632 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
15633 break;
15635 default:
15636 break;
15640 ndr->flags = _flags_save_UNION;
15642 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15643 return NDR_ERR_SUCCESS;
15646 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorInfo *r)
15648 int level;
15650 uint32_t _flags_save_UNION = ndr->flags;
15651 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15652 level = ndr_print_get_switch_value(ndr, r);
15653 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorInfo");
15654 switch (level) {
15655 case 1:
15656 ndr_print_spoolss_PrintProcessorInfo1(ndr, "info1", &r->info1);
15657 break;
15659 default:
15660 break;
15663 ndr->flags = _flags_save_UNION;
15667 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
15669 if (ndr_flags & NDR_SCALARS) {
15670 NDR_CHECK(ndr_push_align(ndr, 4));
15672 uint32_t _flags_save_string = ndr->flags;
15673 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15674 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
15675 ndr->flags = _flags_save_string;
15677 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15679 if (ndr_flags & NDR_BUFFERS) {
15681 return NDR_ERR_SUCCESS;
15684 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorDirectoryInfo1 *r)
15686 if (ndr_flags & NDR_SCALARS) {
15687 NDR_CHECK(ndr_pull_align(ndr, 4));
15689 uint32_t _flags_save_string = ndr->flags;
15690 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15691 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
15692 ndr->flags = _flags_save_string;
15694 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15696 if (ndr_flags & NDR_BUFFERS) {
15698 return NDR_ERR_SUCCESS;
15701 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
15703 ndr_print_struct(ndr, name, "spoolss_PrintProcessorDirectoryInfo1");
15704 ndr->depth++;
15705 ndr_print_string(ndr, "directory_name", r->directory_name);
15706 ndr->depth--;
15709 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
15711 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo1, ic);
15714 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorDirectoryInfo *r)
15716 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
15718 uint32_t _flags_save_UNION = ndr->flags;
15719 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15720 if (ndr_flags & NDR_SCALARS) {
15721 int level = ndr_push_get_switch_value(ndr, r);
15722 NDR_CHECK(ndr_push_union_align(ndr, 4));
15723 switch (level) {
15724 case 1: {
15725 NDR_CHECK(ndr_push_align(ndr, 4));
15726 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15727 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15728 break; }
15730 default: {
15731 NDR_CHECK(ndr_push_align(ndr, 4));
15732 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15733 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15734 break; }
15738 if (ndr_flags & NDR_BUFFERS) {
15739 int level = ndr_push_get_switch_value(ndr, r);
15740 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
15741 switch (level) {
15742 case 1:
15743 break;
15745 default:
15746 break;
15750 ndr->flags = _flags_save_UNION;
15752 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
15753 return NDR_ERR_SUCCESS;
15756 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorDirectoryInfo *r)
15758 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
15759 int level;
15761 uint32_t _flags_save_UNION = ndr->flags;
15762 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15763 level = ndr_pull_get_switch_value(ndr, r);
15764 if (ndr_flags & NDR_SCALARS) {
15765 NDR_CHECK(ndr_pull_union_align(ndr, 4));
15766 switch (level) {
15767 case 1: {
15768 NDR_CHECK(ndr_pull_align(ndr, 4));
15769 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15770 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15771 break; }
15773 default: {
15774 NDR_CHECK(ndr_pull_align(ndr, 4));
15775 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15776 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15777 break; }
15781 if (ndr_flags & NDR_BUFFERS) {
15782 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15783 switch (level) {
15784 case 1:
15785 break;
15787 default:
15788 break;
15792 ndr->flags = _flags_save_UNION;
15794 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15795 return NDR_ERR_SUCCESS;
15798 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorDirectoryInfo *r)
15800 int level;
15802 uint32_t _flags_save_UNION = ndr->flags;
15803 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15804 level = ndr_print_get_switch_value(ndr, r);
15805 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorDirectoryInfo");
15806 switch (level) {
15807 case 1:
15808 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
15809 break;
15811 default:
15812 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
15813 break;
15816 ndr->flags = _flags_save_UNION;
15820 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15822 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
15823 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo, ic);
15826 static enum ndr_err_code ndr_push_spoolss_DocumentInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DocumentInfo1 *r)
15828 if (ndr_flags & NDR_SCALARS) {
15829 NDR_CHECK(ndr_push_align(ndr, 5));
15830 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
15831 NDR_CHECK(ndr_push_unique_ptr(ndr, r->output_file));
15832 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
15833 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
15835 if (ndr_flags & NDR_BUFFERS) {
15836 if (r->document_name) {
15837 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
15838 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15839 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
15840 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15842 if (r->output_file) {
15843 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
15844 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15845 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
15846 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->output_file, ndr_charset_length(r->output_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15848 if (r->datatype) {
15849 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
15850 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15851 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
15852 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15855 return NDR_ERR_SUCCESS;
15858 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DocumentInfo1 *r)
15860 uint32_t _ptr_document_name;
15861 TALLOC_CTX *_mem_save_document_name_0;
15862 uint32_t _ptr_output_file;
15863 TALLOC_CTX *_mem_save_output_file_0;
15864 uint32_t _ptr_datatype;
15865 TALLOC_CTX *_mem_save_datatype_0;
15866 if (ndr_flags & NDR_SCALARS) {
15867 NDR_CHECK(ndr_pull_align(ndr, 5));
15868 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
15869 if (_ptr_document_name) {
15870 NDR_PULL_ALLOC(ndr, r->document_name);
15871 } else {
15872 r->document_name = NULL;
15874 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_output_file));
15875 if (_ptr_output_file) {
15876 NDR_PULL_ALLOC(ndr, r->output_file);
15877 } else {
15878 r->output_file = NULL;
15880 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
15881 if (_ptr_datatype) {
15882 NDR_PULL_ALLOC(ndr, r->datatype);
15883 } else {
15884 r->datatype = NULL;
15886 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
15888 if (ndr_flags & NDR_BUFFERS) {
15889 if (r->document_name) {
15890 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15891 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
15892 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
15893 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
15894 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
15895 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));
15897 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
15898 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
15899 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
15901 if (r->output_file) {
15902 _mem_save_output_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
15903 NDR_PULL_SET_MEM_CTX(ndr, r->output_file, 0);
15904 NDR_CHECK(ndr_pull_array_size(ndr, &r->output_file));
15905 NDR_CHECK(ndr_pull_array_length(ndr, &r->output_file));
15906 if (ndr_get_array_length(ndr, &r->output_file) > ndr_get_array_size(ndr, &r->output_file)) {
15907 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));
15909 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t)));
15910 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->output_file, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t), CH_UTF16));
15911 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_output_file_0, 0);
15913 if (r->datatype) {
15914 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
15915 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
15916 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
15917 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
15918 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
15919 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));
15921 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
15922 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
15923 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
15926 return NDR_ERR_SUCCESS;
15929 _PUBLIC_ void ndr_print_spoolss_DocumentInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DocumentInfo1 *r)
15931 ndr_print_struct(ndr, name, "spoolss_DocumentInfo1");
15932 ndr->depth++;
15933 ndr_print_ptr(ndr, "document_name", r->document_name);
15934 ndr->depth++;
15935 if (r->document_name) {
15936 ndr_print_string(ndr, "document_name", r->document_name);
15938 ndr->depth--;
15939 ndr_print_ptr(ndr, "output_file", r->output_file);
15940 ndr->depth++;
15941 if (r->output_file) {
15942 ndr_print_string(ndr, "output_file", r->output_file);
15944 ndr->depth--;
15945 ndr_print_ptr(ndr, "datatype", r->datatype);
15946 ndr->depth++;
15947 if (r->datatype) {
15948 ndr_print_string(ndr, "datatype", r->datatype);
15950 ndr->depth--;
15951 ndr->depth--;
15954 static enum ndr_err_code ndr_push_spoolss_DocumentInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DocumentInfo *r)
15956 if (ndr_flags & NDR_SCALARS) {
15957 int level = ndr_push_get_switch_value(ndr, r);
15958 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
15959 NDR_CHECK(ndr_push_union_align(ndr, 5));
15960 switch (level) {
15961 case 1: {
15962 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
15963 break; }
15965 case 2: {
15966 break; }
15968 case 3: {
15969 break; }
15971 default: {
15972 break; }
15976 if (ndr_flags & NDR_BUFFERS) {
15977 int level = ndr_push_get_switch_value(ndr, r);
15978 switch (level) {
15979 case 1:
15980 if (r->info1) {
15981 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
15983 break;
15985 case 2:
15986 break;
15988 case 3:
15989 break;
15991 default:
15992 break;
15996 return NDR_ERR_SUCCESS;
15999 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DocumentInfo *r)
16001 int level;
16002 uint32_t _level;
16003 TALLOC_CTX *_mem_save_info1_0;
16004 level = ndr_pull_get_switch_value(ndr, r);
16005 if (ndr_flags & NDR_SCALARS) {
16006 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
16007 if (_level != level) {
16008 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
16010 NDR_CHECK(ndr_pull_union_align(ndr, 5));
16011 switch (level) {
16012 case 1: {
16013 uint32_t _ptr_info1;
16014 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
16015 if (_ptr_info1) {
16016 NDR_PULL_ALLOC(ndr, r->info1);
16017 } else {
16018 r->info1 = NULL;
16020 break; }
16022 case 2: {
16023 break; }
16025 case 3: {
16026 break; }
16028 default: {
16029 break; }
16033 if (ndr_flags & NDR_BUFFERS) {
16034 switch (level) {
16035 case 1:
16036 if (r->info1) {
16037 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
16038 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
16039 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
16040 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
16042 break;
16044 case 2:
16045 break;
16047 case 3:
16048 break;
16050 default:
16051 break;
16055 return NDR_ERR_SUCCESS;
16058 _PUBLIC_ void ndr_print_spoolss_DocumentInfo(struct ndr_print *ndr, const char *name, const union spoolss_DocumentInfo *r)
16060 int level;
16061 level = ndr_print_get_switch_value(ndr, r);
16062 ndr_print_union(ndr, name, level, "spoolss_DocumentInfo");
16063 switch (level) {
16064 case 1:
16065 ndr_print_ptr(ndr, "info1", r->info1);
16066 ndr->depth++;
16067 if (r->info1) {
16068 ndr_print_spoolss_DocumentInfo1(ndr, "info1", r->info1);
16070 ndr->depth--;
16071 break;
16073 case 2:
16074 break;
16076 case 3:
16077 break;
16079 default:
16080 break;
16085 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersion(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersion *r)
16087 if (ndr_flags & NDR_SCALARS) {
16088 NDR_CHECK(ndr_push_align(ndr, 4));
16089 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersion(r, ndr->iconv_convenience, ndr->flags)));
16090 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
16091 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
16092 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
16093 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
16095 uint32_t _flags_save_string = ndr->flags;
16096 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16098 struct ndr_push *_ndr_extra_string;
16099 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
16100 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
16101 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
16103 ndr->flags = _flags_save_string;
16105 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
16107 if (ndr_flags & NDR_BUFFERS) {
16109 return NDR_ERR_SUCCESS;
16112 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersion(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersion *r)
16114 if (ndr_flags & NDR_SCALARS) {
16115 NDR_CHECK(ndr_pull_align(ndr, 4));
16116 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
16117 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
16118 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
16119 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
16120 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->platform_id));
16122 uint32_t _flags_save_string = ndr->flags;
16123 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16125 struct ndr_pull *_ndr_extra_string;
16126 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
16127 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
16128 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
16130 ndr->flags = _flags_save_string;
16132 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
16134 if (ndr_flags & NDR_BUFFERS) {
16136 return NDR_ERR_SUCCESS;
16139 _PUBLIC_ void ndr_print_spoolss_OSVersion(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersion *r)
16141 ndr_print_struct(ndr, name, "spoolss_OSVersion");
16142 ndr->depth++;
16143 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);
16144 ndr_print_uint32(ndr, "major", r->major);
16145 ndr_print_uint32(ndr, "minor", r->minor);
16146 ndr_print_uint32(ndr, "build", r->build);
16147 ndr_print_uint32(ndr, "platform_id", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->platform_id);
16148 ndr_print_string(ndr, "extra_string", r->extra_string);
16149 ndr->depth--;
16152 _PUBLIC_ size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion *r, struct smb_iconv_convenience *ic, int flags)
16154 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion, ic);
16157 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersionEx(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersionEx *r)
16159 if (ndr_flags & NDR_SCALARS) {
16160 NDR_CHECK(ndr_push_align(ndr, 4));
16161 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersionEx(r, ndr->iconv_convenience, ndr->flags)));
16162 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
16163 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
16164 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
16165 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
16167 uint32_t _flags_save_string = ndr->flags;
16168 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16170 struct ndr_push *_ndr_extra_string;
16171 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
16172 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
16173 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
16175 ndr->flags = _flags_save_string;
16177 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->service_pack_major));
16178 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->service_pack_minor));
16179 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->suite_mask));
16180 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->product_type));
16181 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->reserved));
16182 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
16184 if (ndr_flags & NDR_BUFFERS) {
16186 return NDR_ERR_SUCCESS;
16189 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersionEx(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersionEx *r)
16191 if (ndr_flags & NDR_SCALARS) {
16192 NDR_CHECK(ndr_pull_align(ndr, 4));
16193 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
16194 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
16195 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
16196 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
16197 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->platform_id));
16199 uint32_t _flags_save_string = ndr->flags;
16200 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16202 struct ndr_pull *_ndr_extra_string;
16203 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
16204 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
16205 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
16207 ndr->flags = _flags_save_string;
16209 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->service_pack_major));
16210 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->service_pack_minor));
16211 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->suite_mask));
16212 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->product_type));
16213 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->reserved));
16214 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
16216 if (ndr_flags & NDR_BUFFERS) {
16218 return NDR_ERR_SUCCESS;
16221 _PUBLIC_ void ndr_print_spoolss_OSVersionEx(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersionEx *r)
16223 ndr_print_struct(ndr, name, "spoolss_OSVersionEx");
16224 ndr->depth++;
16225 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);
16226 ndr_print_uint32(ndr, "major", r->major);
16227 ndr_print_uint32(ndr, "minor", r->minor);
16228 ndr_print_uint32(ndr, "build", r->build);
16229 ndr_print_uint32(ndr, "platform_id", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->platform_id);
16230 ndr_print_string(ndr, "extra_string", r->extra_string);
16231 ndr_print_uint16(ndr, "service_pack_major", r->service_pack_major);
16232 ndr_print_uint16(ndr, "service_pack_minor", r->service_pack_minor);
16233 ndr_print_uint16(ndr, "suite_mask", r->suite_mask);
16234 ndr_print_uint8(ndr, "product_type", r->product_type);
16235 ndr_print_uint8(ndr, "reserved", r->reserved);
16236 ndr->depth--;
16239 _PUBLIC_ size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx *r, struct smb_iconv_convenience *ic, int flags)
16241 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx, ic);
16244 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterData *r)
16246 if (ndr_flags & NDR_SCALARS) {
16247 int level = ndr_push_get_switch_value(ndr, r);
16248 NDR_CHECK(ndr_push_union_align(ndr, 4));
16249 switch (level) {
16250 case REG_NONE: {
16251 break; }
16253 case REG_SZ: {
16255 uint32_t _flags_save_string = ndr->flags;
16256 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16257 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
16258 ndr->flags = _flags_save_string;
16260 break; }
16262 case REG_BINARY: {
16264 uint32_t _flags_save_DATA_BLOB = ndr->flags;
16265 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
16266 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
16267 ndr->flags = _flags_save_DATA_BLOB;
16269 break; }
16271 case REG_DWORD: {
16272 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
16273 break; }
16275 case REG_MULTI_SZ: {
16277 uint32_t _flags_save_string_array = ndr->flags;
16278 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16279 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
16280 ndr->flags = _flags_save_string_array;
16282 break; }
16284 default: {
16286 uint32_t _flags_save_DATA_BLOB = ndr->flags;
16287 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
16288 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
16289 ndr->flags = _flags_save_DATA_BLOB;
16291 break; }
16295 if (ndr_flags & NDR_BUFFERS) {
16296 int level = ndr_push_get_switch_value(ndr, r);
16297 switch (level) {
16298 case REG_NONE:
16299 break;
16301 case REG_SZ:
16302 break;
16304 case REG_BINARY:
16305 break;
16307 case REG_DWORD:
16308 break;
16310 case REG_MULTI_SZ:
16311 break;
16313 default:
16314 break;
16318 return NDR_ERR_SUCCESS;
16321 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterData *r)
16323 int level;
16324 level = ndr_pull_get_switch_value(ndr, r);
16325 if (ndr_flags & NDR_SCALARS) {
16326 NDR_CHECK(ndr_pull_union_align(ndr, 4));
16327 switch (level) {
16328 case REG_NONE: {
16329 break; }
16331 case REG_SZ: {
16333 uint32_t _flags_save_string = ndr->flags;
16334 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16335 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
16336 ndr->flags = _flags_save_string;
16338 break; }
16340 case REG_BINARY: {
16342 uint32_t _flags_save_DATA_BLOB = ndr->flags;
16343 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
16344 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
16345 ndr->flags = _flags_save_DATA_BLOB;
16347 break; }
16349 case REG_DWORD: {
16350 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
16351 break; }
16353 case REG_MULTI_SZ: {
16355 uint32_t _flags_save_string_array = ndr->flags;
16356 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16357 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
16358 ndr->flags = _flags_save_string_array;
16360 break; }
16362 default: {
16364 uint32_t _flags_save_DATA_BLOB = ndr->flags;
16365 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
16366 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
16367 ndr->flags = _flags_save_DATA_BLOB;
16369 break; }
16373 if (ndr_flags & NDR_BUFFERS) {
16374 switch (level) {
16375 case REG_NONE:
16376 break;
16378 case REG_SZ:
16379 break;
16381 case REG_BINARY:
16382 break;
16384 case REG_DWORD:
16385 break;
16387 case REG_MULTI_SZ:
16388 break;
16390 default:
16391 break;
16395 return NDR_ERR_SUCCESS;
16398 _PUBLIC_ void ndr_print_spoolss_PrinterData(struct ndr_print *ndr, const char *name, const union spoolss_PrinterData *r)
16400 int level;
16401 level = ndr_print_get_switch_value(ndr, r);
16402 ndr_print_union(ndr, name, level, "spoolss_PrinterData");
16403 switch (level) {
16404 case REG_NONE:
16405 break;
16407 case REG_SZ:
16408 ndr_print_string(ndr, "string", r->string);
16409 break;
16411 case REG_BINARY:
16412 ndr_print_DATA_BLOB(ndr, "binary", r->binary);
16413 break;
16415 case REG_DWORD:
16416 ndr_print_uint32(ndr, "value", r->value);
16417 break;
16419 case REG_MULTI_SZ:
16420 ndr_print_string_array(ndr, "string_array", r->string_array);
16421 break;
16423 default:
16424 ndr_print_DATA_BLOB(ndr, "data", r->data);
16425 break;
16430 static enum ndr_err_code ndr_push_spoolss_FormFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_FormFlags r)
16432 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
16433 return NDR_ERR_SUCCESS;
16436 static enum ndr_err_code ndr_pull_spoolss_FormFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_FormFlags *r)
16438 uint32_t v;
16439 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
16440 *r = v;
16441 return NDR_ERR_SUCCESS;
16444 _PUBLIC_ void ndr_print_spoolss_FormFlags(struct ndr_print *ndr, const char *name, enum spoolss_FormFlags r)
16446 const char *val = NULL;
16448 switch (r) {
16449 case SPOOLSS_FORM_USER: val = "SPOOLSS_FORM_USER"; break;
16450 case SPOOLSS_FORM_BUILTIN: val = "SPOOLSS_FORM_BUILTIN"; break;
16451 case SPOOLSS_FORM_PRINTER: val = "SPOOLSS_FORM_PRINTER"; break;
16453 ndr_print_enum(ndr, name, "ENUM", val, r);
16456 static enum ndr_err_code ndr_push_spoolss_FormSize(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormSize *r)
16458 if (ndr_flags & NDR_SCALARS) {
16459 NDR_CHECK(ndr_push_align(ndr, 4));
16460 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->width));
16461 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->height));
16462 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
16464 if (ndr_flags & NDR_BUFFERS) {
16466 return NDR_ERR_SUCCESS;
16469 static enum ndr_err_code ndr_pull_spoolss_FormSize(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormSize *r)
16471 if (ndr_flags & NDR_SCALARS) {
16472 NDR_CHECK(ndr_pull_align(ndr, 4));
16473 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->width));
16474 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->height));
16475 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
16477 if (ndr_flags & NDR_BUFFERS) {
16479 return NDR_ERR_SUCCESS;
16482 _PUBLIC_ void ndr_print_spoolss_FormSize(struct ndr_print *ndr, const char *name, const struct spoolss_FormSize *r)
16484 ndr_print_struct(ndr, name, "spoolss_FormSize");
16485 ndr->depth++;
16486 ndr_print_uint32(ndr, "width", r->width);
16487 ndr_print_uint32(ndr, "height", r->height);
16488 ndr->depth--;
16491 static enum ndr_err_code ndr_push_spoolss_FormArea(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormArea *r)
16493 if (ndr_flags & NDR_SCALARS) {
16494 NDR_CHECK(ndr_push_align(ndr, 4));
16495 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->left));
16496 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->top));
16497 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->right));
16498 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bottom));
16499 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
16501 if (ndr_flags & NDR_BUFFERS) {
16503 return NDR_ERR_SUCCESS;
16506 static enum ndr_err_code ndr_pull_spoolss_FormArea(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormArea *r)
16508 if (ndr_flags & NDR_SCALARS) {
16509 NDR_CHECK(ndr_pull_align(ndr, 4));
16510 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->left));
16511 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->top));
16512 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->right));
16513 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bottom));
16514 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
16516 if (ndr_flags & NDR_BUFFERS) {
16518 return NDR_ERR_SUCCESS;
16521 _PUBLIC_ void ndr_print_spoolss_FormArea(struct ndr_print *ndr, const char *name, const struct spoolss_FormArea *r)
16523 ndr_print_struct(ndr, name, "spoolss_FormArea");
16524 ndr->depth++;
16525 ndr_print_uint32(ndr, "left", r->left);
16526 ndr_print_uint32(ndr, "top", r->top);
16527 ndr_print_uint32(ndr, "right", r->right);
16528 ndr_print_uint32(ndr, "bottom", r->bottom);
16529 ndr->depth--;
16532 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo1 *r)
16534 if (ndr_flags & NDR_SCALARS) {
16535 NDR_CHECK(ndr_push_align(ndr, 5));
16536 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
16538 uint32_t _flags_save_string = ndr->flags;
16539 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16540 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
16541 ndr->flags = _flags_save_string;
16543 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16544 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16545 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16547 if (ndr_flags & NDR_BUFFERS) {
16549 uint32_t _flags_save_string = ndr->flags;
16550 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16551 if (r->form_name) {
16552 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->form_name));
16553 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
16554 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->form_name));
16556 ndr->flags = _flags_save_string;
16559 return NDR_ERR_SUCCESS;
16562 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo1 *r)
16564 uint32_t _ptr_form_name;
16565 TALLOC_CTX *_mem_save_form_name_0;
16566 if (ndr_flags & NDR_SCALARS) {
16567 NDR_CHECK(ndr_pull_align(ndr, 5));
16568 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16570 uint32_t _flags_save_string = ndr->flags;
16571 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16572 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16573 if (_ptr_form_name) {
16574 NDR_PULL_ALLOC(ndr, r->form_name);
16575 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
16576 } else {
16577 r->form_name = NULL;
16579 ndr->flags = _flags_save_string;
16581 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16582 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16583 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16585 if (ndr_flags & NDR_BUFFERS) {
16587 uint32_t _flags_save_string = ndr->flags;
16588 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16589 if (r->form_name) {
16590 uint32_t _relative_save_offset;
16591 _relative_save_offset = ndr->offset;
16592 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
16593 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16594 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16595 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
16596 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16597 if (ndr->offset > ndr->relative_highest_offset) {
16598 ndr->relative_highest_offset = ndr->offset;
16600 ndr->offset = _relative_save_offset;
16602 ndr->flags = _flags_save_string;
16605 return NDR_ERR_SUCCESS;
16608 _PUBLIC_ void ndr_print_spoolss_FormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo1 *r)
16610 ndr_print_struct(ndr, name, "spoolss_FormInfo1");
16611 ndr->depth++;
16612 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16613 ndr_print_ptr(ndr, "form_name", r->form_name);
16614 ndr->depth++;
16615 if (r->form_name) {
16616 ndr_print_string(ndr, "form_name", r->form_name);
16618 ndr->depth--;
16619 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16620 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16621 ndr->depth--;
16624 _PUBLIC_ size_t ndr_size_spoolss_FormInfo1(const struct spoolss_FormInfo1 *r, struct smb_iconv_convenience *ic, int flags)
16626 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo1, ic);
16629 static enum ndr_err_code ndr_push_spoolss_FormStringType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
16631 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16632 return NDR_ERR_SUCCESS;
16635 static enum ndr_err_code ndr_pull_spoolss_FormStringType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
16637 uint32_t v;
16638 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16639 *r = v;
16640 return NDR_ERR_SUCCESS;
16643 _PUBLIC_ void ndr_print_spoolss_FormStringType(struct ndr_print *ndr, const char *name, uint32_t r)
16645 ndr_print_uint32(ndr, name, r);
16646 ndr->depth++;
16647 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE, r);
16648 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL, r);
16649 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR, r);
16650 ndr->depth--;
16653 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo2 *r)
16655 if (ndr_flags & NDR_SCALARS) {
16656 NDR_CHECK(ndr_push_align(ndr, 5));
16657 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
16659 uint32_t _flags_save_string = ndr->flags;
16660 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16661 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
16662 ndr->flags = _flags_save_string;
16664 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16665 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16667 uint32_t _flags_save_string = ndr->flags;
16668 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16669 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->keyword));
16670 ndr->flags = _flags_save_string;
16672 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
16674 uint32_t _flags_save_string = ndr->flags;
16675 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16676 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->mui_dll));
16677 ndr->flags = _flags_save_string;
16679 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
16681 uint32_t _flags_save_string = ndr->flags;
16682 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16683 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->display_name));
16684 ndr->flags = _flags_save_string;
16686 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lang_id));
16687 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unused));
16688 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16690 if (ndr_flags & NDR_BUFFERS) {
16692 uint32_t _flags_save_string = ndr->flags;
16693 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16694 if (r->form_name) {
16695 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->form_name));
16696 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
16697 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->form_name));
16699 ndr->flags = _flags_save_string;
16702 uint32_t _flags_save_string = ndr->flags;
16703 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16704 if (r->keyword) {
16705 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->keyword));
16706 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->keyword));
16707 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->keyword));
16709 ndr->flags = _flags_save_string;
16712 uint32_t _flags_save_string = ndr->flags;
16713 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16714 if (r->mui_dll) {
16715 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->mui_dll));
16716 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mui_dll));
16717 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->mui_dll));
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->display_name) {
16725 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->display_name));
16726 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->display_name));
16727 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->display_name));
16729 ndr->flags = _flags_save_string;
16732 return NDR_ERR_SUCCESS;
16735 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo2 *r)
16737 uint32_t _ptr_form_name;
16738 TALLOC_CTX *_mem_save_form_name_0;
16739 uint32_t _ptr_keyword;
16740 TALLOC_CTX *_mem_save_keyword_0;
16741 uint32_t _ptr_mui_dll;
16742 TALLOC_CTX *_mem_save_mui_dll_0;
16743 uint32_t _ptr_display_name;
16744 TALLOC_CTX *_mem_save_display_name_0;
16745 if (ndr_flags & NDR_SCALARS) {
16746 NDR_CHECK(ndr_pull_align(ndr, 5));
16747 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16749 uint32_t _flags_save_string = ndr->flags;
16750 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16751 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16752 if (_ptr_form_name) {
16753 NDR_PULL_ALLOC(ndr, r->form_name);
16754 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
16755 } else {
16756 r->form_name = NULL;
16758 ndr->flags = _flags_save_string;
16760 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16761 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16763 uint32_t _flags_save_string = ndr->flags;
16764 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16765 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
16766 if (_ptr_keyword) {
16767 NDR_PULL_ALLOC(ndr, r->keyword);
16768 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->keyword, _ptr_keyword));
16769 } else {
16770 r->keyword = NULL;
16772 ndr->flags = _flags_save_string;
16774 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
16776 uint32_t _flags_save_string = ndr->flags;
16777 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16778 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
16779 if (_ptr_mui_dll) {
16780 NDR_PULL_ALLOC(ndr, r->mui_dll);
16781 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->mui_dll, _ptr_mui_dll));
16782 } else {
16783 r->mui_dll = NULL;
16785 ndr->flags = _flags_save_string;
16787 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
16789 uint32_t _flags_save_string = ndr->flags;
16790 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16791 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
16792 if (_ptr_display_name) {
16793 NDR_PULL_ALLOC(ndr, r->display_name);
16794 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->display_name, _ptr_display_name));
16795 } else {
16796 r->display_name = NULL;
16798 ndr->flags = _flags_save_string;
16800 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lang_id));
16801 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unused));
16802 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16804 if (ndr_flags & NDR_BUFFERS) {
16806 uint32_t _flags_save_string = ndr->flags;
16807 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16808 if (r->form_name) {
16809 uint32_t _relative_save_offset;
16810 _relative_save_offset = ndr->offset;
16811 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
16812 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16813 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16814 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
16815 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16816 if (ndr->offset > ndr->relative_highest_offset) {
16817 ndr->relative_highest_offset = ndr->offset;
16819 ndr->offset = _relative_save_offset;
16821 ndr->flags = _flags_save_string;
16824 uint32_t _flags_save_string = ndr->flags;
16825 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16826 if (r->keyword) {
16827 uint32_t _relative_save_offset;
16828 _relative_save_offset = ndr->offset;
16829 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->keyword));
16830 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
16831 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
16832 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->keyword));
16833 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
16834 if (ndr->offset > ndr->relative_highest_offset) {
16835 ndr->relative_highest_offset = ndr->offset;
16837 ndr->offset = _relative_save_offset;
16839 ndr->flags = _flags_save_string;
16842 uint32_t _flags_save_string = ndr->flags;
16843 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16844 if (r->mui_dll) {
16845 uint32_t _relative_save_offset;
16846 _relative_save_offset = ndr->offset;
16847 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->mui_dll));
16848 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
16849 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
16850 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mui_dll));
16851 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
16852 if (ndr->offset > ndr->relative_highest_offset) {
16853 ndr->relative_highest_offset = ndr->offset;
16855 ndr->offset = _relative_save_offset;
16857 ndr->flags = _flags_save_string;
16860 uint32_t _flags_save_string = ndr->flags;
16861 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16862 if (r->display_name) {
16863 uint32_t _relative_save_offset;
16864 _relative_save_offset = ndr->offset;
16865 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->display_name));
16866 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16867 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
16868 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->display_name));
16869 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
16870 if (ndr->offset > ndr->relative_highest_offset) {
16871 ndr->relative_highest_offset = ndr->offset;
16873 ndr->offset = _relative_save_offset;
16875 ndr->flags = _flags_save_string;
16878 return NDR_ERR_SUCCESS;
16881 _PUBLIC_ void ndr_print_spoolss_FormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo2 *r)
16883 ndr_print_struct(ndr, name, "spoolss_FormInfo2");
16884 ndr->depth++;
16885 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16886 ndr_print_ptr(ndr, "form_name", r->form_name);
16887 ndr->depth++;
16888 if (r->form_name) {
16889 ndr_print_string(ndr, "form_name", r->form_name);
16891 ndr->depth--;
16892 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16893 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16894 ndr_print_ptr(ndr, "keyword", r->keyword);
16895 ndr->depth++;
16896 if (r->keyword) {
16897 ndr_print_string(ndr, "keyword", r->keyword);
16899 ndr->depth--;
16900 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
16901 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
16902 ndr->depth++;
16903 if (r->mui_dll) {
16904 ndr_print_string(ndr, "mui_dll", r->mui_dll);
16906 ndr->depth--;
16907 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
16908 ndr_print_ptr(ndr, "display_name", r->display_name);
16909 ndr->depth++;
16910 if (r->display_name) {
16911 ndr_print_string(ndr, "display_name", r->display_name);
16913 ndr->depth--;
16914 ndr_print_uint16(ndr, "lang_id", r->lang_id);
16915 ndr_print_uint16(ndr, "unused", r->unused);
16916 ndr->depth--;
16919 _PUBLIC_ size_t ndr_size_spoolss_FormInfo2(const struct spoolss_FormInfo2 *r, struct smb_iconv_convenience *ic, int flags)
16921 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo2, ic);
16924 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_FormInfo *r)
16926 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16928 uint32_t _flags_save_UNION = ndr->flags;
16929 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
16930 if (ndr_flags & NDR_SCALARS) {
16931 int level = ndr_push_get_switch_value(ndr, r);
16932 NDR_CHECK(ndr_push_union_align(ndr, 5));
16933 switch (level) {
16934 case 1: {
16935 NDR_CHECK(ndr_push_align(ndr, 5));
16936 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16937 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
16938 break; }
16940 case 2: {
16941 NDR_CHECK(ndr_push_align(ndr, 5));
16942 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16943 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
16944 break; }
16946 default: {
16947 break; }
16951 if (ndr_flags & NDR_BUFFERS) {
16952 int level = ndr_push_get_switch_value(ndr, r);
16953 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16954 switch (level) {
16955 case 1:
16956 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
16957 break;
16959 case 2:
16960 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
16961 break;
16963 default:
16964 break;
16968 ndr->flags = _flags_save_UNION;
16970 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16971 return NDR_ERR_SUCCESS;
16974 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_FormInfo *r)
16976 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16977 int level;
16979 uint32_t _flags_save_UNION = ndr->flags;
16980 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
16981 level = ndr_pull_get_switch_value(ndr, r);
16982 if (ndr_flags & NDR_SCALARS) {
16983 NDR_CHECK(ndr_pull_union_align(ndr, 5));
16984 switch (level) {
16985 case 1: {
16986 NDR_CHECK(ndr_pull_align(ndr, 5));
16987 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16988 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
16989 break; }
16991 case 2: {
16992 NDR_CHECK(ndr_pull_align(ndr, 5));
16993 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16994 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
16995 break; }
16997 default: {
16998 break; }
17002 if (ndr_flags & NDR_BUFFERS) {
17003 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
17004 switch (level) {
17005 case 1:
17006 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
17007 break;
17009 case 2:
17010 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
17011 break;
17013 default:
17014 break;
17018 ndr->flags = _flags_save_UNION;
17020 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17021 return NDR_ERR_SUCCESS;
17024 _PUBLIC_ void ndr_print_spoolss_FormInfo(struct ndr_print *ndr, const char *name, const union spoolss_FormInfo *r)
17026 int level;
17028 uint32_t _flags_save_UNION = ndr->flags;
17029 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
17030 level = ndr_print_get_switch_value(ndr, r);
17031 ndr_print_union(ndr, name, level, "spoolss_FormInfo");
17032 switch (level) {
17033 case 1:
17034 ndr_print_spoolss_FormInfo1(ndr, "info1", &r->info1);
17035 break;
17037 case 2:
17038 ndr_print_spoolss_FormInfo2(ndr, "info2", &r->info2);
17039 break;
17041 default:
17042 break;
17045 ndr->flags = _flags_save_UNION;
17049 _PUBLIC_ size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
17051 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
17052 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo, ic);
17055 static enum ndr_err_code ndr_push_spoolss_AddFormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo1 *r)
17057 if (ndr_flags & NDR_SCALARS) {
17058 NDR_CHECK(ndr_push_align(ndr, 5));
17059 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
17060 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
17061 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
17062 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
17063 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17065 if (ndr_flags & NDR_BUFFERS) {
17066 if (r->form_name) {
17067 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
17068 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
17069 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
17070 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17073 return NDR_ERR_SUCCESS;
17076 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo1 *r)
17078 uint32_t _ptr_form_name;
17079 TALLOC_CTX *_mem_save_form_name_0;
17080 if (ndr_flags & NDR_SCALARS) {
17081 NDR_CHECK(ndr_pull_align(ndr, 5));
17082 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
17083 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
17084 if (_ptr_form_name) {
17085 NDR_PULL_ALLOC(ndr, r->form_name);
17086 } else {
17087 r->form_name = NULL;
17089 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
17090 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
17091 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17093 if (ndr_flags & NDR_BUFFERS) {
17094 if (r->form_name) {
17095 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17096 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
17097 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
17098 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
17099 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
17100 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));
17102 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
17103 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
17104 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
17107 return NDR_ERR_SUCCESS;
17110 _PUBLIC_ void ndr_print_spoolss_AddFormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo1 *r)
17112 ndr_print_struct(ndr, name, "spoolss_AddFormInfo1");
17113 ndr->depth++;
17114 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
17115 ndr_print_ptr(ndr, "form_name", r->form_name);
17116 ndr->depth++;
17117 if (r->form_name) {
17118 ndr_print_string(ndr, "form_name", r->form_name);
17120 ndr->depth--;
17121 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
17122 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
17123 ndr->depth--;
17126 static enum ndr_err_code ndr_push_spoolss_AddFormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo2 *r)
17128 if (ndr_flags & NDR_SCALARS) {
17129 NDR_CHECK(ndr_push_align(ndr, 5));
17130 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
17131 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
17132 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
17133 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
17134 NDR_CHECK(ndr_push_unique_ptr(ndr, r->keyword));
17135 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
17136 NDR_CHECK(ndr_push_unique_ptr(ndr, r->mui_dll));
17137 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
17138 NDR_CHECK(ndr_push_unique_ptr(ndr, r->display_name));
17139 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
17140 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17142 if (ndr_flags & NDR_BUFFERS) {
17143 if (r->form_name) {
17144 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
17145 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
17146 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
17147 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17149 if (r->keyword) {
17150 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
17151 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
17152 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
17153 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->keyword, ndr_charset_length(r->keyword, CH_DOS), sizeof(uint8_t), CH_DOS));
17155 if (r->mui_dll) {
17156 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
17157 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
17158 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
17159 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->mui_dll, ndr_charset_length(r->mui_dll, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17161 if (r->display_name) {
17162 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
17163 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
17164 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
17165 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->display_name, ndr_charset_length(r->display_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17168 return NDR_ERR_SUCCESS;
17171 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo2 *r)
17173 uint32_t _ptr_form_name;
17174 TALLOC_CTX *_mem_save_form_name_0;
17175 uint32_t _ptr_keyword;
17176 TALLOC_CTX *_mem_save_keyword_0;
17177 uint32_t _ptr_mui_dll;
17178 TALLOC_CTX *_mem_save_mui_dll_0;
17179 uint32_t _ptr_display_name;
17180 TALLOC_CTX *_mem_save_display_name_0;
17181 if (ndr_flags & NDR_SCALARS) {
17182 NDR_CHECK(ndr_pull_align(ndr, 5));
17183 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
17184 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
17185 if (_ptr_form_name) {
17186 NDR_PULL_ALLOC(ndr, r->form_name);
17187 } else {
17188 r->form_name = NULL;
17190 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
17191 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
17192 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
17193 if (_ptr_keyword) {
17194 NDR_PULL_ALLOC(ndr, r->keyword);
17195 } else {
17196 r->keyword = NULL;
17198 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
17199 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
17200 if (_ptr_mui_dll) {
17201 NDR_PULL_ALLOC(ndr, r->mui_dll);
17202 } else {
17203 r->mui_dll = NULL;
17205 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
17206 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
17207 if (_ptr_display_name) {
17208 NDR_PULL_ALLOC(ndr, r->display_name);
17209 } else {
17210 r->display_name = NULL;
17212 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
17213 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17215 if (ndr_flags & NDR_BUFFERS) {
17216 if (r->form_name) {
17217 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17218 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
17219 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
17220 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
17221 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
17222 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));
17224 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
17225 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
17226 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
17228 if (r->keyword) {
17229 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
17230 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
17231 NDR_CHECK(ndr_pull_array_size(ndr, &r->keyword));
17232 NDR_CHECK(ndr_pull_array_length(ndr, &r->keyword));
17233 if (ndr_get_array_length(ndr, &r->keyword) > ndr_get_array_size(ndr, &r->keyword)) {
17234 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));
17236 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t)));
17237 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->keyword, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t), CH_DOS));
17238 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
17240 if (r->mui_dll) {
17241 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
17242 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
17243 NDR_CHECK(ndr_pull_array_size(ndr, &r->mui_dll));
17244 NDR_CHECK(ndr_pull_array_length(ndr, &r->mui_dll));
17245 if (ndr_get_array_length(ndr, &r->mui_dll) > ndr_get_array_size(ndr, &r->mui_dll)) {
17246 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));
17248 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t)));
17249 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->mui_dll, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t), CH_UTF16));
17250 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
17252 if (r->display_name) {
17253 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17254 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
17255 NDR_CHECK(ndr_pull_array_size(ndr, &r->display_name));
17256 NDR_CHECK(ndr_pull_array_length(ndr, &r->display_name));
17257 if (ndr_get_array_length(ndr, &r->display_name) > ndr_get_array_size(ndr, &r->display_name)) {
17258 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));
17260 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t)));
17261 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->display_name, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t), CH_UTF16));
17262 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
17265 return NDR_ERR_SUCCESS;
17268 _PUBLIC_ void ndr_print_spoolss_AddFormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo2 *r)
17270 ndr_print_struct(ndr, name, "spoolss_AddFormInfo2");
17271 ndr->depth++;
17272 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
17273 ndr_print_ptr(ndr, "form_name", r->form_name);
17274 ndr->depth++;
17275 if (r->form_name) {
17276 ndr_print_string(ndr, "form_name", r->form_name);
17278 ndr->depth--;
17279 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
17280 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
17281 ndr_print_ptr(ndr, "keyword", r->keyword);
17282 ndr->depth++;
17283 if (r->keyword) {
17284 ndr_print_string(ndr, "keyword", r->keyword);
17286 ndr->depth--;
17287 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
17288 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
17289 ndr->depth++;
17290 if (r->mui_dll) {
17291 ndr_print_string(ndr, "mui_dll", r->mui_dll);
17293 ndr->depth--;
17294 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
17295 ndr_print_ptr(ndr, "display_name", r->display_name);
17296 ndr->depth++;
17297 if (r->display_name) {
17298 ndr_print_string(ndr, "display_name", r->display_name);
17300 ndr->depth--;
17301 ndr_print_uint32(ndr, "lang_id", r->lang_id);
17302 ndr->depth--;
17305 static enum ndr_err_code ndr_push_spoolss_AddFormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddFormInfo *r)
17307 if (ndr_flags & NDR_SCALARS) {
17308 int level = ndr_push_get_switch_value(ndr, r);
17309 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
17310 NDR_CHECK(ndr_push_union_align(ndr, 5));
17311 switch (level) {
17312 case 1: {
17313 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
17314 break; }
17316 case 2: {
17317 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
17318 break; }
17320 default:
17321 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
17324 if (ndr_flags & NDR_BUFFERS) {
17325 int level = ndr_push_get_switch_value(ndr, r);
17326 switch (level) {
17327 case 1:
17328 if (r->info1) {
17329 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
17331 break;
17333 case 2:
17334 if (r->info2) {
17335 NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
17337 break;
17339 default:
17340 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
17343 return NDR_ERR_SUCCESS;
17346 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddFormInfo *r)
17348 int level;
17349 uint32_t _level;
17350 TALLOC_CTX *_mem_save_info1_0;
17351 TALLOC_CTX *_mem_save_info2_0;
17352 level = ndr_pull_get_switch_value(ndr, r);
17353 if (ndr_flags & NDR_SCALARS) {
17354 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
17355 if (_level != level) {
17356 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
17358 NDR_CHECK(ndr_pull_union_align(ndr, 5));
17359 switch (level) {
17360 case 1: {
17361 uint32_t _ptr_info1;
17362 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
17363 if (_ptr_info1) {
17364 NDR_PULL_ALLOC(ndr, r->info1);
17365 } else {
17366 r->info1 = NULL;
17368 break; }
17370 case 2: {
17371 uint32_t _ptr_info2;
17372 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
17373 if (_ptr_info2) {
17374 NDR_PULL_ALLOC(ndr, r->info2);
17375 } else {
17376 r->info2 = NULL;
17378 break; }
17380 default:
17381 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
17384 if (ndr_flags & NDR_BUFFERS) {
17385 switch (level) {
17386 case 1:
17387 if (r->info1) {
17388 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
17389 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
17390 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
17391 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
17393 break;
17395 case 2:
17396 if (r->info2) {
17397 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
17398 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
17399 NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
17400 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
17402 break;
17404 default:
17405 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
17408 return NDR_ERR_SUCCESS;
17411 _PUBLIC_ void ndr_print_spoolss_AddFormInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddFormInfo *r)
17413 int level;
17414 level = ndr_print_get_switch_value(ndr, r);
17415 ndr_print_union(ndr, name, level, "spoolss_AddFormInfo");
17416 switch (level) {
17417 case 1:
17418 ndr_print_ptr(ndr, "info1", r->info1);
17419 ndr->depth++;
17420 if (r->info1) {
17421 ndr_print_spoolss_AddFormInfo1(ndr, "info1", r->info1);
17423 ndr->depth--;
17424 break;
17426 case 2:
17427 ndr_print_ptr(ndr, "info2", r->info2);
17428 ndr->depth++;
17429 if (r->info2) {
17430 ndr_print_spoolss_AddFormInfo2(ndr, "info2", r->info2);
17432 ndr->depth--;
17433 break;
17435 default:
17436 ndr_print_bad_level(ndr, name, level);
17440 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo1 *r)
17442 if (ndr_flags & NDR_SCALARS) {
17443 NDR_CHECK(ndr_push_align(ndr, 5));
17445 uint32_t _flags_save_string = ndr->flags;
17446 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17447 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
17448 ndr->flags = _flags_save_string;
17450 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17452 if (ndr_flags & NDR_BUFFERS) {
17454 uint32_t _flags_save_string = ndr->flags;
17455 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17456 if (r->port_name) {
17457 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->port_name));
17458 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
17459 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->port_name));
17461 ndr->flags = _flags_save_string;
17464 return NDR_ERR_SUCCESS;
17467 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo1 *r)
17469 uint32_t _ptr_port_name;
17470 TALLOC_CTX *_mem_save_port_name_0;
17471 if (ndr_flags & NDR_SCALARS) {
17472 NDR_CHECK(ndr_pull_align(ndr, 5));
17474 uint32_t _flags_save_string = ndr->flags;
17475 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17476 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
17477 if (_ptr_port_name) {
17478 NDR_PULL_ALLOC(ndr, r->port_name);
17479 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
17480 } else {
17481 r->port_name = NULL;
17483 ndr->flags = _flags_save_string;
17485 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17487 if (ndr_flags & NDR_BUFFERS) {
17489 uint32_t _flags_save_string = ndr->flags;
17490 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17491 if (r->port_name) {
17492 uint32_t _relative_save_offset;
17493 _relative_save_offset = ndr->offset;
17494 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
17495 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17496 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
17497 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
17498 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
17499 if (ndr->offset > ndr->relative_highest_offset) {
17500 ndr->relative_highest_offset = ndr->offset;
17502 ndr->offset = _relative_save_offset;
17504 ndr->flags = _flags_save_string;
17507 return NDR_ERR_SUCCESS;
17510 _PUBLIC_ void ndr_print_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo1 *r)
17512 ndr_print_struct(ndr, name, "spoolss_PortInfo1");
17513 ndr->depth++;
17514 ndr_print_ptr(ndr, "port_name", r->port_name);
17515 ndr->depth++;
17516 if (r->port_name) {
17517 ndr_print_string(ndr, "port_name", r->port_name);
17519 ndr->depth--;
17520 ndr->depth--;
17523 _PUBLIC_ size_t ndr_size_spoolss_PortInfo1(const struct spoolss_PortInfo1 *r, struct smb_iconv_convenience *ic, int flags)
17525 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo1, ic);
17528 static enum ndr_err_code ndr_push_spoolss_PortType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
17530 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17531 return NDR_ERR_SUCCESS;
17534 static enum ndr_err_code ndr_pull_spoolss_PortType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17536 uint32_t v;
17537 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17538 *r = v;
17539 return NDR_ERR_SUCCESS;
17542 _PUBLIC_ void ndr_print_spoolss_PortType(struct ndr_print *ndr, const char *name, uint32_t r)
17544 ndr_print_uint32(ndr, name, r);
17545 ndr->depth++;
17546 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE, r);
17547 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ, r);
17548 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED, r);
17549 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED, r);
17550 ndr->depth--;
17553 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo2 *r)
17555 if (ndr_flags & NDR_SCALARS) {
17556 NDR_CHECK(ndr_push_align(ndr, 5));
17558 uint32_t _flags_save_string = ndr->flags;
17559 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17560 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
17561 ndr->flags = _flags_save_string;
17564 uint32_t _flags_save_string = ndr->flags;
17565 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17566 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
17567 ndr->flags = _flags_save_string;
17570 uint32_t _flags_save_string = ndr->flags;
17571 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17572 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
17573 ndr->flags = _flags_save_string;
17575 NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
17576 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
17577 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17579 if (ndr_flags & NDR_BUFFERS) {
17581 uint32_t _flags_save_string = ndr->flags;
17582 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17583 if (r->port_name) {
17584 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->port_name));
17585 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
17586 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->port_name));
17588 ndr->flags = _flags_save_string;
17591 uint32_t _flags_save_string = ndr->flags;
17592 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17593 if (r->monitor_name) {
17594 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
17595 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
17596 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_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->description) {
17604 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->description));
17605 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
17606 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->description));
17608 ndr->flags = _flags_save_string;
17611 return NDR_ERR_SUCCESS;
17614 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo2 *r)
17616 uint32_t _ptr_port_name;
17617 TALLOC_CTX *_mem_save_port_name_0;
17618 uint32_t _ptr_monitor_name;
17619 TALLOC_CTX *_mem_save_monitor_name_0;
17620 uint32_t _ptr_description;
17621 TALLOC_CTX *_mem_save_description_0;
17622 if (ndr_flags & NDR_SCALARS) {
17623 NDR_CHECK(ndr_pull_align(ndr, 5));
17625 uint32_t _flags_save_string = ndr->flags;
17626 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17627 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
17628 if (_ptr_port_name) {
17629 NDR_PULL_ALLOC(ndr, r->port_name);
17630 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
17631 } else {
17632 r->port_name = NULL;
17634 ndr->flags = _flags_save_string;
17637 uint32_t _flags_save_string = ndr->flags;
17638 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17639 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
17640 if (_ptr_monitor_name) {
17641 NDR_PULL_ALLOC(ndr, r->monitor_name);
17642 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
17643 } else {
17644 r->monitor_name = NULL;
17646 ndr->flags = _flags_save_string;
17649 uint32_t _flags_save_string = ndr->flags;
17650 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17651 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
17652 if (_ptr_description) {
17653 NDR_PULL_ALLOC(ndr, r->description);
17654 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
17655 } else {
17656 r->description = NULL;
17658 ndr->flags = _flags_save_string;
17660 NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
17661 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
17662 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17664 if (ndr_flags & NDR_BUFFERS) {
17666 uint32_t _flags_save_string = ndr->flags;
17667 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17668 if (r->port_name) {
17669 uint32_t _relative_save_offset;
17670 _relative_save_offset = ndr->offset;
17671 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
17672 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17673 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
17674 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
17675 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
17676 if (ndr->offset > ndr->relative_highest_offset) {
17677 ndr->relative_highest_offset = ndr->offset;
17679 ndr->offset = _relative_save_offset;
17681 ndr->flags = _flags_save_string;
17684 uint32_t _flags_save_string = ndr->flags;
17685 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17686 if (r->monitor_name) {
17687 uint32_t _relative_save_offset;
17688 _relative_save_offset = ndr->offset;
17689 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
17690 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17691 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
17692 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
17693 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
17694 if (ndr->offset > ndr->relative_highest_offset) {
17695 ndr->relative_highest_offset = ndr->offset;
17697 ndr->offset = _relative_save_offset;
17699 ndr->flags = _flags_save_string;
17702 uint32_t _flags_save_string = ndr->flags;
17703 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17704 if (r->description) {
17705 uint32_t _relative_save_offset;
17706 _relative_save_offset = ndr->offset;
17707 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
17708 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
17709 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
17710 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
17711 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
17712 if (ndr->offset > ndr->relative_highest_offset) {
17713 ndr->relative_highest_offset = ndr->offset;
17715 ndr->offset = _relative_save_offset;
17717 ndr->flags = _flags_save_string;
17720 return NDR_ERR_SUCCESS;
17723 _PUBLIC_ void ndr_print_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo2 *r)
17725 ndr_print_struct(ndr, name, "spoolss_PortInfo2");
17726 ndr->depth++;
17727 ndr_print_ptr(ndr, "port_name", r->port_name);
17728 ndr->depth++;
17729 if (r->port_name) {
17730 ndr_print_string(ndr, "port_name", r->port_name);
17732 ndr->depth--;
17733 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
17734 ndr->depth++;
17735 if (r->monitor_name) {
17736 ndr_print_string(ndr, "monitor_name", r->monitor_name);
17738 ndr->depth--;
17739 ndr_print_ptr(ndr, "description", r->description);
17740 ndr->depth++;
17741 if (r->description) {
17742 ndr_print_string(ndr, "description", r->description);
17744 ndr->depth--;
17745 ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
17746 ndr_print_uint32(ndr, "reserved", r->reserved);
17747 ndr->depth--;
17750 _PUBLIC_ size_t ndr_size_spoolss_PortInfo2(const struct spoolss_PortInfo2 *r, struct smb_iconv_convenience *ic, int flags)
17752 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo2, ic);
17755 static enum ndr_err_code ndr_push_spoolss_PortStatus(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortStatus r)
17757 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
17758 return NDR_ERR_SUCCESS;
17761 static enum ndr_err_code ndr_pull_spoolss_PortStatus(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortStatus *r)
17763 uint32_t v;
17764 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
17765 *r = v;
17766 return NDR_ERR_SUCCESS;
17769 _PUBLIC_ void ndr_print_spoolss_PortStatus(struct ndr_print *ndr, const char *name, enum spoolss_PortStatus r)
17771 const char *val = NULL;
17773 switch (r) {
17774 case PORT_STATUS_CLEAR: val = "PORT_STATUS_CLEAR"; break;
17775 case PORT_STATUS_OFFLINE: val = "PORT_STATUS_OFFLINE"; break;
17776 case PORT_STATUS_PAPER_JAM: val = "PORT_STATUS_PAPER_JAM"; break;
17777 case PORT_STATUS_PAPER_OUT: val = "PORT_STATUS_PAPER_OUT"; break;
17778 case PORT_STATUS_OUTPUT_BIN_FULL: val = "PORT_STATUS_OUTPUT_BIN_FULL"; break;
17779 case PORT_STATUS_PAPER_PROBLEM: val = "PORT_STATUS_PAPER_PROBLEM"; break;
17780 case PORT_STATUS_NO_TONER: val = "PORT_STATUS_NO_TONER"; break;
17781 case PORT_STATUS_DOOR_OPEN: val = "PORT_STATUS_DOOR_OPEN"; break;
17782 case PORT_STATUS_USER_INTERVENTION: val = "PORT_STATUS_USER_INTERVENTION"; break;
17783 case PORT_STATUS_OUT_OF_MEMORY: val = "PORT_STATUS_OUT_OF_MEMORY"; break;
17784 case PORT_STATUS_TONER_LOW: val = "PORT_STATUS_TONER_LOW"; break;
17785 case PORT_STATUS_WARMING_UP: val = "PORT_STATUS_WARMING_UP"; break;
17786 case PORT_STATUS_POWER_SAVE: val = "PORT_STATUS_POWER_SAVE"; break;
17788 ndr_print_enum(ndr, name, "ENUM", val, r);
17791 static enum ndr_err_code ndr_push_spoolss_PortSeverity(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortSeverity r)
17793 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
17794 return NDR_ERR_SUCCESS;
17797 static enum ndr_err_code ndr_pull_spoolss_PortSeverity(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortSeverity *r)
17799 uint32_t v;
17800 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
17801 *r = v;
17802 return NDR_ERR_SUCCESS;
17805 _PUBLIC_ void ndr_print_spoolss_PortSeverity(struct ndr_print *ndr, const char *name, enum spoolss_PortSeverity r)
17807 const char *val = NULL;
17809 switch (r) {
17810 case PORT_STATUS_TYPE_ERROR: val = "PORT_STATUS_TYPE_ERROR"; break;
17811 case PORT_STATUS_TYPE_WARNING: val = "PORT_STATUS_TYPE_WARNING"; break;
17812 case PORT_STATUS_TYPE_INFO: val = "PORT_STATUS_TYPE_INFO"; break;
17814 ndr_print_enum(ndr, name, "ENUM", val, r);
17817 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo3 *r)
17819 if (ndr_flags & NDR_SCALARS) {
17820 NDR_CHECK(ndr_push_align(ndr, 5));
17821 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr, NDR_SCALARS, r->status));
17823 uint32_t _flags_save_string = ndr->flags;
17824 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17825 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->status_string));
17826 ndr->flags = _flags_save_string;
17828 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr, NDR_SCALARS, r->severity));
17829 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17831 if (ndr_flags & NDR_BUFFERS) {
17833 uint32_t _flags_save_string = ndr->flags;
17834 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17835 if (r->status_string) {
17836 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->status_string));
17837 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->status_string));
17838 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->status_string));
17840 ndr->flags = _flags_save_string;
17843 return NDR_ERR_SUCCESS;
17846 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo3 *r)
17848 uint32_t _ptr_status_string;
17849 TALLOC_CTX *_mem_save_status_string_0;
17850 if (ndr_flags & NDR_SCALARS) {
17851 NDR_CHECK(ndr_pull_align(ndr, 5));
17852 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr, NDR_SCALARS, &r->status));
17854 uint32_t _flags_save_string = ndr->flags;
17855 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17856 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_status_string));
17857 if (_ptr_status_string) {
17858 NDR_PULL_ALLOC(ndr, r->status_string);
17859 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->status_string, _ptr_status_string));
17860 } else {
17861 r->status_string = NULL;
17863 ndr->flags = _flags_save_string;
17865 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr, NDR_SCALARS, &r->severity));
17866 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17868 if (ndr_flags & NDR_BUFFERS) {
17870 uint32_t _flags_save_string = ndr->flags;
17871 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17872 if (r->status_string) {
17873 uint32_t _relative_save_offset;
17874 _relative_save_offset = ndr->offset;
17875 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->status_string));
17876 _mem_save_status_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
17877 NDR_PULL_SET_MEM_CTX(ndr, r->status_string, 0);
17878 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->status_string));
17879 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_string_0, 0);
17880 if (ndr->offset > ndr->relative_highest_offset) {
17881 ndr->relative_highest_offset = ndr->offset;
17883 ndr->offset = _relative_save_offset;
17885 ndr->flags = _flags_save_string;
17888 return NDR_ERR_SUCCESS;
17891 _PUBLIC_ void ndr_print_spoolss_PortInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo3 *r)
17893 ndr_print_struct(ndr, name, "spoolss_PortInfo3");
17894 ndr->depth++;
17895 ndr_print_spoolss_PortStatus(ndr, "status", r->status);
17896 ndr_print_ptr(ndr, "status_string", r->status_string);
17897 ndr->depth++;
17898 if (r->status_string) {
17899 ndr_print_string(ndr, "status_string", r->status_string);
17901 ndr->depth--;
17902 ndr_print_spoolss_PortSeverity(ndr, "severity", r->severity);
17903 ndr->depth--;
17906 _PUBLIC_ size_t ndr_size_spoolss_PortInfo3(const struct spoolss_PortInfo3 *r, struct smb_iconv_convenience *ic, int flags)
17908 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo3, ic);
17911 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfoFF(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfoFF *r)
17913 if (ndr_flags & NDR_SCALARS) {
17914 NDR_CHECK(ndr_push_align(ndr, 5));
17916 uint32_t _flags_save_string = ndr->flags;
17917 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17918 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
17919 ndr->flags = _flags_save_string;
17921 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->monitor_data));
17922 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17924 if (ndr_flags & NDR_BUFFERS) {
17926 uint32_t _flags_save_string = ndr->flags;
17927 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17928 if (r->port_name) {
17929 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->port_name));
17930 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
17931 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->port_name));
17933 ndr->flags = _flags_save_string;
17936 return NDR_ERR_SUCCESS;
17939 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfoFF(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfoFF *r)
17941 uint32_t _ptr_port_name;
17942 TALLOC_CTX *_mem_save_port_name_0;
17943 if (ndr_flags & NDR_SCALARS) {
17944 NDR_CHECK(ndr_pull_align(ndr, 5));
17946 uint32_t _flags_save_string = ndr->flags;
17947 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17948 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
17949 if (_ptr_port_name) {
17950 NDR_PULL_ALLOC(ndr, r->port_name);
17951 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
17952 } else {
17953 r->port_name = NULL;
17955 ndr->flags = _flags_save_string;
17957 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->monitor_data));
17958 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17960 if (ndr_flags & NDR_BUFFERS) {
17962 uint32_t _flags_save_string = ndr->flags;
17963 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17964 if (r->port_name) {
17965 uint32_t _relative_save_offset;
17966 _relative_save_offset = ndr->offset;
17967 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
17968 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17969 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
17970 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
17971 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
17972 if (ndr->offset > ndr->relative_highest_offset) {
17973 ndr->relative_highest_offset = ndr->offset;
17975 ndr->offset = _relative_save_offset;
17977 ndr->flags = _flags_save_string;
17980 return NDR_ERR_SUCCESS;
17983 _PUBLIC_ void ndr_print_spoolss_PortInfoFF(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfoFF *r)
17985 ndr_print_struct(ndr, name, "spoolss_PortInfoFF");
17986 ndr->depth++;
17987 ndr_print_ptr(ndr, "port_name", r->port_name);
17988 ndr->depth++;
17989 if (r->port_name) {
17990 ndr_print_string(ndr, "port_name", r->port_name);
17992 ndr->depth--;
17993 ndr_print_DATA_BLOB(ndr, "monitor_data", r->monitor_data);
17994 ndr->depth--;
17997 _PUBLIC_ size_t ndr_size_spoolss_PortInfoFF(const struct spoolss_PortInfoFF *r, struct smb_iconv_convenience *ic, int flags)
17999 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfoFF, ic);
18002 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PortInfo *r)
18004 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
18006 uint32_t _flags_save_UNION = ndr->flags;
18007 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
18008 if (ndr_flags & NDR_SCALARS) {
18009 int level = ndr_push_get_switch_value(ndr, r);
18010 NDR_CHECK(ndr_push_union_align(ndr, 5));
18011 switch (level) {
18012 case 1: {
18013 NDR_CHECK(ndr_push_align(ndr, 5));
18014 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
18015 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
18016 break; }
18018 case 2: {
18019 NDR_CHECK(ndr_push_align(ndr, 5));
18020 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
18021 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
18022 break; }
18024 case 3: {
18025 NDR_CHECK(ndr_push_align(ndr, 5));
18026 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
18027 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
18028 break; }
18030 case 0xff: {
18031 NDR_CHECK(ndr_push_align(ndr, 5));
18032 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
18033 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
18034 break; }
18036 default: {
18037 break; }
18041 if (ndr_flags & NDR_BUFFERS) {
18042 int level = ndr_push_get_switch_value(ndr, r);
18043 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
18044 switch (level) {
18045 case 1:
18046 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
18047 break;
18049 case 2:
18050 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
18051 break;
18053 case 3:
18054 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
18055 break;
18057 case 0xff:
18058 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
18059 break;
18061 default:
18062 break;
18066 ndr->flags = _flags_save_UNION;
18068 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
18069 return NDR_ERR_SUCCESS;
18072 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PortInfo *r)
18074 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
18075 int level;
18077 uint32_t _flags_save_UNION = ndr->flags;
18078 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
18079 level = ndr_pull_get_switch_value(ndr, r);
18080 if (ndr_flags & NDR_SCALARS) {
18081 NDR_CHECK(ndr_pull_union_align(ndr, 5));
18082 switch (level) {
18083 case 1: {
18084 NDR_CHECK(ndr_pull_align(ndr, 5));
18085 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18086 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
18087 break; }
18089 case 2: {
18090 NDR_CHECK(ndr_pull_align(ndr, 5));
18091 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18092 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
18093 break; }
18095 case 3: {
18096 NDR_CHECK(ndr_pull_align(ndr, 5));
18097 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18098 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
18099 break; }
18101 case 0xff: {
18102 NDR_CHECK(ndr_pull_align(ndr, 5));
18103 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18104 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
18105 break; }
18107 default: {
18108 break; }
18112 if (ndr_flags & NDR_BUFFERS) {
18113 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
18114 switch (level) {
18115 case 1:
18116 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
18117 break;
18119 case 2:
18120 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
18121 break;
18123 case 3:
18124 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
18125 break;
18127 case 0xff:
18128 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
18129 break;
18131 default:
18132 break;
18136 ndr->flags = _flags_save_UNION;
18138 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
18139 return NDR_ERR_SUCCESS;
18142 _PUBLIC_ void ndr_print_spoolss_PortInfo(struct ndr_print *ndr, const char *name, const union spoolss_PortInfo *r)
18144 int level;
18146 uint32_t _flags_save_UNION = ndr->flags;
18147 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
18148 level = ndr_print_get_switch_value(ndr, r);
18149 ndr_print_union(ndr, name, level, "spoolss_PortInfo");
18150 switch (level) {
18151 case 1:
18152 ndr_print_spoolss_PortInfo1(ndr, "info1", &r->info1);
18153 break;
18155 case 2:
18156 ndr_print_spoolss_PortInfo2(ndr, "info2", &r->info2);
18157 break;
18159 case 3:
18160 ndr_print_spoolss_PortInfo3(ndr, "info3", &r->info3);
18161 break;
18163 case 0xff:
18164 ndr_print_spoolss_PortInfoFF(ndr, "infoFF", &r->infoFF);
18165 break;
18167 default:
18168 break;
18171 ndr->flags = _flags_save_UNION;
18175 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo1 *r)
18177 if (ndr_flags & NDR_SCALARS) {
18178 NDR_CHECK(ndr_push_align(ndr, 5));
18180 uint32_t _flags_save_string = ndr->flags;
18181 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18182 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
18183 ndr->flags = _flags_save_string;
18185 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18187 if (ndr_flags & NDR_BUFFERS) {
18189 uint32_t _flags_save_string = ndr->flags;
18190 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18191 if (r->monitor_name) {
18192 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
18193 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
18194 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
18196 ndr->flags = _flags_save_string;
18199 return NDR_ERR_SUCCESS;
18202 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo1 *r)
18204 uint32_t _ptr_monitor_name;
18205 TALLOC_CTX *_mem_save_monitor_name_0;
18206 if (ndr_flags & NDR_SCALARS) {
18207 NDR_CHECK(ndr_pull_align(ndr, 5));
18209 uint32_t _flags_save_string = ndr->flags;
18210 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18211 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
18212 if (_ptr_monitor_name) {
18213 NDR_PULL_ALLOC(ndr, r->monitor_name);
18214 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
18215 } else {
18216 r->monitor_name = NULL;
18218 ndr->flags = _flags_save_string;
18220 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18222 if (ndr_flags & NDR_BUFFERS) {
18224 uint32_t _flags_save_string = ndr->flags;
18225 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18226 if (r->monitor_name) {
18227 uint32_t _relative_save_offset;
18228 _relative_save_offset = ndr->offset;
18229 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
18230 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
18231 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
18232 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
18233 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
18234 if (ndr->offset > ndr->relative_highest_offset) {
18235 ndr->relative_highest_offset = ndr->offset;
18237 ndr->offset = _relative_save_offset;
18239 ndr->flags = _flags_save_string;
18242 return NDR_ERR_SUCCESS;
18245 _PUBLIC_ void ndr_print_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo1 *r)
18247 ndr_print_struct(ndr, name, "spoolss_MonitorInfo1");
18248 ndr->depth++;
18249 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
18250 ndr->depth++;
18251 if (r->monitor_name) {
18252 ndr_print_string(ndr, "monitor_name", r->monitor_name);
18254 ndr->depth--;
18255 ndr->depth--;
18258 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo1(const struct spoolss_MonitorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
18260 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo1, ic);
18263 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo2 *r)
18265 if (ndr_flags & NDR_SCALARS) {
18266 NDR_CHECK(ndr_push_align(ndr, 5));
18268 uint32_t _flags_save_string = ndr->flags;
18269 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18270 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
18271 ndr->flags = _flags_save_string;
18274 uint32_t _flags_save_string = ndr->flags;
18275 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18276 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->environment));
18277 ndr->flags = _flags_save_string;
18280 uint32_t _flags_save_string = ndr->flags;
18281 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18282 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name));
18283 ndr->flags = _flags_save_string;
18285 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18287 if (ndr_flags & NDR_BUFFERS) {
18289 uint32_t _flags_save_string = ndr->flags;
18290 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18291 if (r->monitor_name) {
18292 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
18293 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
18294 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
18296 ndr->flags = _flags_save_string;
18299 uint32_t _flags_save_string = ndr->flags;
18300 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18301 if (r->environment) {
18302 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->environment));
18303 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
18304 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->environment));
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->dll_name) {
18312 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dll_name));
18313 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
18314 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dll_name));
18316 ndr->flags = _flags_save_string;
18319 return NDR_ERR_SUCCESS;
18322 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo2 *r)
18324 uint32_t _ptr_monitor_name;
18325 TALLOC_CTX *_mem_save_monitor_name_0;
18326 uint32_t _ptr_environment;
18327 TALLOC_CTX *_mem_save_environment_0;
18328 uint32_t _ptr_dll_name;
18329 TALLOC_CTX *_mem_save_dll_name_0;
18330 if (ndr_flags & NDR_SCALARS) {
18331 NDR_CHECK(ndr_pull_align(ndr, 5));
18333 uint32_t _flags_save_string = ndr->flags;
18334 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18335 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
18336 if (_ptr_monitor_name) {
18337 NDR_PULL_ALLOC(ndr, r->monitor_name);
18338 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
18339 } else {
18340 r->monitor_name = NULL;
18342 ndr->flags = _flags_save_string;
18345 uint32_t _flags_save_string = ndr->flags;
18346 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18347 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
18348 if (_ptr_environment) {
18349 NDR_PULL_ALLOC(ndr, r->environment);
18350 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->environment, _ptr_environment));
18351 } else {
18352 r->environment = NULL;
18354 ndr->flags = _flags_save_string;
18357 uint32_t _flags_save_string = ndr->flags;
18358 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18359 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name));
18360 if (_ptr_dll_name) {
18361 NDR_PULL_ALLOC(ndr, r->dll_name);
18362 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dll_name, _ptr_dll_name));
18363 } else {
18364 r->dll_name = NULL;
18366 ndr->flags = _flags_save_string;
18368 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18370 if (ndr_flags & NDR_BUFFERS) {
18372 uint32_t _flags_save_string = ndr->flags;
18373 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18374 if (r->monitor_name) {
18375 uint32_t _relative_save_offset;
18376 _relative_save_offset = ndr->offset;
18377 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
18378 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
18379 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
18380 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
18381 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
18382 if (ndr->offset > ndr->relative_highest_offset) {
18383 ndr->relative_highest_offset = ndr->offset;
18385 ndr->offset = _relative_save_offset;
18387 ndr->flags = _flags_save_string;
18390 uint32_t _flags_save_string = ndr->flags;
18391 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18392 if (r->environment) {
18393 uint32_t _relative_save_offset;
18394 _relative_save_offset = ndr->offset;
18395 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->environment));
18396 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
18397 NDR_PULL_SET_MEM_CTX(ndr, r->environment, 0);
18398 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
18399 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
18400 if (ndr->offset > ndr->relative_highest_offset) {
18401 ndr->relative_highest_offset = ndr->offset;
18403 ndr->offset = _relative_save_offset;
18405 ndr->flags = _flags_save_string;
18408 uint32_t _flags_save_string = ndr->flags;
18409 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18410 if (r->dll_name) {
18411 uint32_t _relative_save_offset;
18412 _relative_save_offset = ndr->offset;
18413 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dll_name));
18414 _mem_save_dll_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
18415 NDR_PULL_SET_MEM_CTX(ndr, r->dll_name, 0);
18416 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
18417 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dll_name_0, 0);
18418 if (ndr->offset > ndr->relative_highest_offset) {
18419 ndr->relative_highest_offset = ndr->offset;
18421 ndr->offset = _relative_save_offset;
18423 ndr->flags = _flags_save_string;
18426 return NDR_ERR_SUCCESS;
18429 _PUBLIC_ void ndr_print_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo2 *r)
18431 ndr_print_struct(ndr, name, "spoolss_MonitorInfo2");
18432 ndr->depth++;
18433 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
18434 ndr->depth++;
18435 if (r->monitor_name) {
18436 ndr_print_string(ndr, "monitor_name", r->monitor_name);
18438 ndr->depth--;
18439 ndr_print_ptr(ndr, "environment", r->environment);
18440 ndr->depth++;
18441 if (r->environment) {
18442 ndr_print_string(ndr, "environment", r->environment);
18444 ndr->depth--;
18445 ndr_print_ptr(ndr, "dll_name", r->dll_name);
18446 ndr->depth++;
18447 if (r->dll_name) {
18448 ndr_print_string(ndr, "dll_name", r->dll_name);
18450 ndr->depth--;
18451 ndr->depth--;
18454 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo2(const struct spoolss_MonitorInfo2 *r, struct smb_iconv_convenience *ic, int flags)
18456 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo2, ic);
18459 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_MonitorInfo *r)
18461 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
18463 uint32_t _flags_save_UNION = ndr->flags;
18464 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
18465 if (ndr_flags & NDR_SCALARS) {
18466 int level = ndr_push_get_switch_value(ndr, r);
18467 NDR_CHECK(ndr_push_union_align(ndr, 5));
18468 switch (level) {
18469 case 1: {
18470 NDR_CHECK(ndr_push_align(ndr, 5));
18471 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
18472 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
18473 break; }
18475 case 2: {
18476 NDR_CHECK(ndr_push_align(ndr, 5));
18477 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
18478 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
18479 break; }
18481 default: {
18482 break; }
18486 if (ndr_flags & NDR_BUFFERS) {
18487 int level = ndr_push_get_switch_value(ndr, r);
18488 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
18489 switch (level) {
18490 case 1:
18491 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
18492 break;
18494 case 2:
18495 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
18496 break;
18498 default:
18499 break;
18503 ndr->flags = _flags_save_UNION;
18505 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
18506 return NDR_ERR_SUCCESS;
18509 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_MonitorInfo *r)
18511 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
18512 int level;
18514 uint32_t _flags_save_UNION = ndr->flags;
18515 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
18516 level = ndr_pull_get_switch_value(ndr, r);
18517 if (ndr_flags & NDR_SCALARS) {
18518 NDR_CHECK(ndr_pull_union_align(ndr, 5));
18519 switch (level) {
18520 case 1: {
18521 NDR_CHECK(ndr_pull_align(ndr, 5));
18522 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18523 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
18524 break; }
18526 case 2: {
18527 NDR_CHECK(ndr_pull_align(ndr, 5));
18528 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18529 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
18530 break; }
18532 default: {
18533 break; }
18537 if (ndr_flags & NDR_BUFFERS) {
18538 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
18539 switch (level) {
18540 case 1:
18541 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
18542 break;
18544 case 2:
18545 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
18546 break;
18548 default:
18549 break;
18553 ndr->flags = _flags_save_UNION;
18555 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
18556 return NDR_ERR_SUCCESS;
18559 _PUBLIC_ void ndr_print_spoolss_MonitorInfo(struct ndr_print *ndr, const char *name, const union spoolss_MonitorInfo *r)
18561 int level;
18563 uint32_t _flags_save_UNION = ndr->flags;
18564 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
18565 level = ndr_print_get_switch_value(ndr, r);
18566 ndr_print_union(ndr, name, level, "spoolss_MonitorInfo");
18567 switch (level) {
18568 case 1:
18569 ndr_print_spoolss_MonitorInfo1(ndr, "info1", &r->info1);
18570 break;
18572 case 2:
18573 ndr_print_spoolss_MonitorInfo2(ndr, "info2", &r->info2);
18574 break;
18576 default:
18577 break;
18580 ndr->flags = _flags_save_UNION;
18584 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcDataTypesInfo1 *r)
18586 if (ndr_flags & NDR_SCALARS) {
18587 NDR_CHECK(ndr_push_align(ndr, 5));
18589 uint32_t _flags_save_string = ndr->flags;
18590 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18591 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name_array));
18592 ndr->flags = _flags_save_string;
18594 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18596 if (ndr_flags & NDR_BUFFERS) {
18598 uint32_t _flags_save_string = ndr->flags;
18599 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18600 if (r->name_array) {
18601 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->name_array));
18602 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name_array));
18603 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->name_array));
18605 ndr->flags = _flags_save_string;
18608 return NDR_ERR_SUCCESS;
18611 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcDataTypesInfo1 *r)
18613 uint32_t _ptr_name_array;
18614 TALLOC_CTX *_mem_save_name_array_0;
18615 if (ndr_flags & NDR_SCALARS) {
18616 NDR_CHECK(ndr_pull_align(ndr, 5));
18618 uint32_t _flags_save_string = ndr->flags;
18619 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18620 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name_array));
18621 if (_ptr_name_array) {
18622 NDR_PULL_ALLOC(ndr, r->name_array);
18623 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name_array, _ptr_name_array));
18624 } else {
18625 r->name_array = NULL;
18627 ndr->flags = _flags_save_string;
18629 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18631 if (ndr_flags & NDR_BUFFERS) {
18633 uint32_t _flags_save_string = ndr->flags;
18634 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18635 if (r->name_array) {
18636 uint32_t _relative_save_offset;
18637 _relative_save_offset = ndr->offset;
18638 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name_array));
18639 _mem_save_name_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
18640 NDR_PULL_SET_MEM_CTX(ndr, r->name_array, 0);
18641 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name_array));
18642 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_array_0, 0);
18643 if (ndr->offset > ndr->relative_highest_offset) {
18644 ndr->relative_highest_offset = ndr->offset;
18646 ndr->offset = _relative_save_offset;
18648 ndr->flags = _flags_save_string;
18651 return NDR_ERR_SUCCESS;
18654 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcDataTypesInfo1 *r)
18656 ndr_print_struct(ndr, name, "spoolss_PrintProcDataTypesInfo1");
18657 ndr->depth++;
18658 ndr_print_ptr(ndr, "name_array", r->name_array);
18659 ndr->depth++;
18660 if (r->name_array) {
18661 ndr_print_string(ndr, "name_array", r->name_array);
18663 ndr->depth--;
18664 ndr->depth--;
18667 _PUBLIC_ size_t ndr_size_spoolss_PrintProcDataTypesInfo1(const struct spoolss_PrintProcDataTypesInfo1 *r, struct smb_iconv_convenience *ic, int flags)
18669 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcDataTypesInfo1, ic);
18672 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcDataTypesInfo *r)
18674 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
18676 uint32_t _flags_save_UNION = ndr->flags;
18677 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
18678 if (ndr_flags & NDR_SCALARS) {
18679 int level = ndr_push_get_switch_value(ndr, r);
18680 NDR_CHECK(ndr_push_union_align(ndr, 5));
18681 switch (level) {
18682 case 1: {
18683 NDR_CHECK(ndr_push_align(ndr, 5));
18684 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
18685 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
18686 break; }
18688 default: {
18689 break; }
18693 if (ndr_flags & NDR_BUFFERS) {
18694 int level = ndr_push_get_switch_value(ndr, r);
18695 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
18696 switch (level) {
18697 case 1:
18698 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
18699 break;
18701 default:
18702 break;
18706 ndr->flags = _flags_save_UNION;
18708 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
18709 return NDR_ERR_SUCCESS;
18712 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcDataTypesInfo *r)
18714 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
18715 int level;
18717 uint32_t _flags_save_UNION = ndr->flags;
18718 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
18719 level = ndr_pull_get_switch_value(ndr, r);
18720 if (ndr_flags & NDR_SCALARS) {
18721 NDR_CHECK(ndr_pull_union_align(ndr, 5));
18722 switch (level) {
18723 case 1: {
18724 NDR_CHECK(ndr_pull_align(ndr, 5));
18725 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18726 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
18727 break; }
18729 default: {
18730 break; }
18734 if (ndr_flags & NDR_BUFFERS) {
18735 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
18736 switch (level) {
18737 case 1:
18738 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
18739 break;
18741 default:
18742 break;
18746 ndr->flags = _flags_save_UNION;
18748 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
18749 return NDR_ERR_SUCCESS;
18752 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcDataTypesInfo *r)
18754 int level;
18756 uint32_t _flags_save_UNION = ndr->flags;
18757 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
18758 level = ndr_print_get_switch_value(ndr, r);
18759 ndr_print_union(ndr, name, level, "spoolss_PrintProcDataTypesInfo");
18760 switch (level) {
18761 case 1:
18762 ndr_print_spoolss_PrintProcDataTypesInfo1(ndr, "info1", &r->info1);
18763 break;
18765 default:
18766 break;
18769 ndr->flags = _flags_save_UNION;
18773 static enum ndr_err_code ndr_push_spoolss_PrinterChangeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18775 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18776 return NDR_ERR_SUCCESS;
18779 static enum ndr_err_code ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18781 uint32_t v;
18782 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18783 *r = v;
18784 return NDR_ERR_SUCCESS;
18787 _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18789 ndr_print_uint32(ndr, name, r);
18790 ndr->depth++;
18791 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER, r);
18792 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER, r);
18793 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER, r);
18794 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, r);
18795 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB, r);
18796 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB, r);
18797 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB, r);
18798 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB, r);
18799 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM, r);
18800 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM, r);
18801 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM, r);
18802 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT, r);
18803 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT, r);
18804 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
18805 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
18806 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
18807 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER, r);
18808 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
18809 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
18810 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
18811 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT, r);
18812 ndr->depth--;
18815 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobNotifyField r)
18817 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
18818 return NDR_ERR_SUCCESS;
18821 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobNotifyField *r)
18823 uint16_t v;
18824 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
18825 *r = v;
18826 return NDR_ERR_SUCCESS;
18829 _PUBLIC_ void ndr_print_spoolss_JobNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_JobNotifyField r)
18831 const char *val = NULL;
18833 switch (r) {
18834 case JOB_NOTIFY_FIELD_PRINTER_NAME: val = "JOB_NOTIFY_FIELD_PRINTER_NAME"; break;
18835 case JOB_NOTIFY_FIELD_MACHINE_NAME: val = "JOB_NOTIFY_FIELD_MACHINE_NAME"; break;
18836 case JOB_NOTIFY_FIELD_PORT_NAME: val = "JOB_NOTIFY_FIELD_PORT_NAME"; break;
18837 case JOB_NOTIFY_FIELD_USER_NAME: val = "JOB_NOTIFY_FIELD_USER_NAME"; break;
18838 case JOB_NOTIFY_FIELD_NOTIFY_NAME: val = "JOB_NOTIFY_FIELD_NOTIFY_NAME"; break;
18839 case JOB_NOTIFY_FIELD_DATATYPE: val = "JOB_NOTIFY_FIELD_DATATYPE"; break;
18840 case JOB_NOTIFY_FIELD_PRINT_PROCESSOR: val = "JOB_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
18841 case JOB_NOTIFY_FIELD_PARAMETERS: val = "JOB_NOTIFY_FIELD_PARAMETERS"; break;
18842 case JOB_NOTIFY_FIELD_DRIVER_NAME: val = "JOB_NOTIFY_FIELD_DRIVER_NAME"; break;
18843 case JOB_NOTIFY_FIELD_DEVMODE: val = "JOB_NOTIFY_FIELD_DEVMODE"; break;
18844 case JOB_NOTIFY_FIELD_STATUS: val = "JOB_NOTIFY_FIELD_STATUS"; break;
18845 case JOB_NOTIFY_FIELD_STATUS_STRING: val = "JOB_NOTIFY_FIELD_STATUS_STRING"; break;
18846 case JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
18847 case JOB_NOTIFY_FIELD_DOCUMENT: val = "JOB_NOTIFY_FIELD_DOCUMENT"; break;
18848 case JOB_NOTIFY_FIELD_PRIORITY: val = "JOB_NOTIFY_FIELD_PRIORITY"; break;
18849 case JOB_NOTIFY_FIELD_POSITION: val = "JOB_NOTIFY_FIELD_POSITION"; break;
18850 case JOB_NOTIFY_FIELD_SUBMITTED: val = "JOB_NOTIFY_FIELD_SUBMITTED"; break;
18851 case JOB_NOTIFY_FIELD_START_TIME: val = "JOB_NOTIFY_FIELD_START_TIME"; break;
18852 case JOB_NOTIFY_FIELD_UNTIL_TIME: val = "JOB_NOTIFY_FIELD_UNTIL_TIME"; break;
18853 case JOB_NOTIFY_FIELD_TIME: val = "JOB_NOTIFY_FIELD_TIME"; break;
18854 case JOB_NOTIFY_FIELD_TOTAL_PAGES: val = "JOB_NOTIFY_FIELD_TOTAL_PAGES"; break;
18855 case JOB_NOTIFY_FIELD_PAGES_PRINTED: val = "JOB_NOTIFY_FIELD_PAGES_PRINTED"; break;
18856 case JOB_NOTIFY_FIELD_TOTAL_BYTES: val = "JOB_NOTIFY_FIELD_TOTAL_BYTES"; break;
18857 case JOB_NOTIFY_FIELD_BYTES_PRINTED: val = "JOB_NOTIFY_FIELD_BYTES_PRINTED"; break;
18859 ndr_print_enum(ndr, name, "ENUM", val, r);
18862 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrintNotifyField r)
18864 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
18865 return NDR_ERR_SUCCESS;
18868 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrintNotifyField *r)
18870 uint16_t v;
18871 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
18872 *r = v;
18873 return NDR_ERR_SUCCESS;
18876 _PUBLIC_ void ndr_print_spoolss_PrintNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_PrintNotifyField r)
18878 const char *val = NULL;
18880 switch (r) {
18881 case PRINTER_NOTIFY_FIELD_SERVER_NAME: val = "PRINTER_NOTIFY_FIELD_SERVER_NAME"; break;
18882 case PRINTER_NOTIFY_FIELD_PRINTER_NAME: val = "PRINTER_NOTIFY_FIELD_PRINTER_NAME"; break;
18883 case PRINTER_NOTIFY_FIELD_SHARE_NAME: val = "PRINTER_NOTIFY_FIELD_SHARE_NAME"; break;
18884 case PRINTER_NOTIFY_FIELD_PORT_NAME: val = "PRINTER_NOTIFY_FIELD_PORT_NAME"; break;
18885 case PRINTER_NOTIFY_FIELD_DRIVER_NAME: val = "PRINTER_NOTIFY_FIELD_DRIVER_NAME"; break;
18886 case PRINTER_NOTIFY_FIELD_COMMENT: val = "PRINTER_NOTIFY_FIELD_COMMENT"; break;
18887 case PRINTER_NOTIFY_FIELD_LOCATION: val = "PRINTER_NOTIFY_FIELD_LOCATION"; break;
18888 case PRINTER_NOTIFY_FIELD_DEVMODE: val = "PRINTER_NOTIFY_FIELD_DEVMODE"; break;
18889 case PRINTER_NOTIFY_FIELD_SEPFILE: val = "PRINTER_NOTIFY_FIELD_SEPFILE"; break;
18890 case PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR: val = "PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
18891 case PRINTER_NOTIFY_FIELD_PARAMETERS: val = "PRINTER_NOTIFY_FIELD_PARAMETERS"; break;
18892 case PRINTER_NOTIFY_FIELD_DATATYPE: val = "PRINTER_NOTIFY_FIELD_DATATYPE"; break;
18893 case PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
18894 case PRINTER_NOTIFY_FIELD_ATTRIBUTES: val = "PRINTER_NOTIFY_FIELD_ATTRIBUTES"; break;
18895 case PRINTER_NOTIFY_FIELD_PRIORITY: val = "PRINTER_NOTIFY_FIELD_PRIORITY"; break;
18896 case PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY: val = "PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY"; break;
18897 case PRINTER_NOTIFY_FIELD_START_TIME: val = "PRINTER_NOTIFY_FIELD_START_TIME"; break;
18898 case PRINTER_NOTIFY_FIELD_UNTIL_TIME: val = "PRINTER_NOTIFY_FIELD_UNTIL_TIME"; break;
18899 case PRINTER_NOTIFY_FIELD_STATUS: val = "PRINTER_NOTIFY_FIELD_STATUS"; break;
18900 case PRINTER_NOTIFY_FIELD_STATUS_STRING: val = "PRINTER_NOTIFY_FIELD_STATUS_STRING"; break;
18901 case PRINTER_NOTIFY_FIELD_CJOBS: val = "PRINTER_NOTIFY_FIELD_CJOBS"; break;
18902 case PRINTER_NOTIFY_FIELD_AVERAGE_PPM: val = "PRINTER_NOTIFY_FIELD_AVERAGE_PPM"; break;
18903 case PRINTER_NOTIFY_FIELD_TOTAL_PAGES: val = "PRINTER_NOTIFY_FIELD_TOTAL_PAGES"; break;
18904 case PRINTER_NOTIFY_FIELD_PAGES_PRINTED: val = "PRINTER_NOTIFY_FIELD_PAGES_PRINTED"; break;
18905 case PRINTER_NOTIFY_FIELD_TOTAL_BYTES: val = "PRINTER_NOTIFY_FIELD_TOTAL_BYTES"; break;
18906 case PRINTER_NOTIFY_FIELD_BYTES_PRINTED: val = "PRINTER_NOTIFY_FIELD_BYTES_PRINTED"; break;
18907 case PRINTER_NOTIFY_FIELD_OBJECT_GUID: val = "PRINTER_NOTIFY_FIELD_OBJECT_GUID"; break;
18908 case PRINTER_NOTIFY_FIELD_FRIENDLY_NAME: val = "PRINTER_NOTIFY_FIELD_FRIENDLY_NAME"; break;
18910 ndr_print_enum(ndr, name, "ENUM", val, r);
18913 static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyType r)
18915 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
18916 return NDR_ERR_SUCCESS;
18919 static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyType *r)
18921 uint16_t v;
18922 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
18923 *r = v;
18924 return NDR_ERR_SUCCESS;
18927 _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
18929 const char *val = NULL;
18931 switch (r) {
18932 case PRINTER_NOTIFY_TYPE: val = "PRINTER_NOTIFY_TYPE"; break;
18933 case JOB_NOTIFY_TYPE: val = "JOB_NOTIFY_TYPE"; break;
18935 ndr_print_enum(ndr, name, "ENUM", val, r);
18938 static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, int ndr_flags, const union spoolss_Field *r)
18940 if (ndr_flags & NDR_SCALARS) {
18941 int level = ndr_push_get_switch_value(ndr, r);
18942 NDR_CHECK(ndr_push_union_align(ndr, 2));
18943 switch (level) {
18944 case PRINTER_NOTIFY_TYPE: {
18945 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
18946 break; }
18948 case JOB_NOTIFY_TYPE: {
18949 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
18950 break; }
18952 default: {
18953 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
18954 break; }
18958 if (ndr_flags & NDR_BUFFERS) {
18959 int level = ndr_push_get_switch_value(ndr, r);
18960 switch (level) {
18961 case PRINTER_NOTIFY_TYPE:
18962 break;
18964 case JOB_NOTIFY_TYPE:
18965 break;
18967 default:
18968 break;
18972 return NDR_ERR_SUCCESS;
18975 static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, int ndr_flags, union spoolss_Field *r)
18977 int level;
18978 level = ndr_pull_get_switch_value(ndr, r);
18979 if (ndr_flags & NDR_SCALARS) {
18980 NDR_CHECK(ndr_pull_union_align(ndr, 2));
18981 switch (level) {
18982 case PRINTER_NOTIFY_TYPE: {
18983 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
18984 break; }
18986 case JOB_NOTIFY_TYPE: {
18987 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
18988 break; }
18990 default: {
18991 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
18992 break; }
18996 if (ndr_flags & NDR_BUFFERS) {
18997 switch (level) {
18998 case PRINTER_NOTIFY_TYPE:
18999 break;
19001 case JOB_NOTIFY_TYPE:
19002 break;
19004 default:
19005 break;
19009 return NDR_ERR_SUCCESS;
19012 static enum ndr_err_code ndr_push_spoolss_NotifyOptionType(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOptionType *r)
19014 uint32_t cntr_fields_1;
19015 if (ndr_flags & NDR_SCALARS) {
19016 NDR_CHECK(ndr_push_align(ndr, 5));
19017 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
19018 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
19019 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
19020 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
19021 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
19022 NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
19023 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19025 if (ndr_flags & NDR_BUFFERS) {
19026 if (r->fields) {
19027 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
19028 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
19029 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
19030 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
19034 return NDR_ERR_SUCCESS;
19037 static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionType *r)
19039 uint32_t _ptr_fields;
19040 uint32_t cntr_fields_1;
19041 TALLOC_CTX *_mem_save_fields_0;
19042 TALLOC_CTX *_mem_save_fields_1;
19043 if (ndr_flags & NDR_SCALARS) {
19044 NDR_CHECK(ndr_pull_align(ndr, 5));
19045 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
19046 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
19047 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
19048 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
19049 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
19050 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
19051 if (_ptr_fields) {
19052 NDR_PULL_ALLOC(ndr, r->fields);
19053 } else {
19054 r->fields = NULL;
19056 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19058 if (ndr_flags & NDR_BUFFERS) {
19059 if (r->fields) {
19060 _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
19061 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
19062 NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
19063 NDR_PULL_ALLOC_N(ndr, r->fields, ndr_get_array_size(ndr, &r->fields));
19064 _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
19065 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
19066 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
19067 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
19068 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
19070 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
19071 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
19073 if (r->fields) {
19074 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->fields, r->count));
19077 return NDR_ERR_SUCCESS;
19080 _PUBLIC_ void ndr_print_spoolss_NotifyOptionType(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionType *r)
19082 uint32_t cntr_fields_1;
19083 ndr_print_struct(ndr, name, "spoolss_NotifyOptionType");
19084 ndr->depth++;
19085 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
19086 ndr_print_uint16(ndr, "u1", r->u1);
19087 ndr_print_uint32(ndr, "u2", r->u2);
19088 ndr_print_uint32(ndr, "u3", r->u3);
19089 ndr_print_uint32(ndr, "count", r->count);
19090 ndr_print_ptr(ndr, "fields", r->fields);
19091 ndr->depth++;
19092 if (r->fields) {
19093 ndr->print(ndr, "%s: ARRAY(%d)", "fields", (int)r->count);
19094 ndr->depth++;
19095 for (cntr_fields_1=0;cntr_fields_1<r->count;cntr_fields_1++) {
19096 char *idx_1=NULL;
19097 if (asprintf(&idx_1, "[%d]", cntr_fields_1) != -1) {
19098 ndr_print_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type);
19099 ndr_print_spoolss_Field(ndr, "fields", &r->fields[cntr_fields_1]);
19100 free(idx_1);
19103 ndr->depth--;
19105 ndr->depth--;
19106 ndr->depth--;
19109 static enum ndr_err_code ndr_push_spoolssNotifyOptionFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19111 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19112 return NDR_ERR_SUCCESS;
19115 static enum ndr_err_code ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19117 uint32_t v;
19118 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19119 *r = v;
19120 return NDR_ERR_SUCCESS;
19123 _PUBLIC_ void ndr_print_spoolssNotifyOptionFlags(struct ndr_print *ndr, const char *name, uint32_t r)
19125 ndr_print_uint32(ndr, name, r);
19126 ndr->depth++;
19127 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH, r);
19128 ndr->depth--;
19131 static enum ndr_err_code ndr_push_spoolss_NotifyOption(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOption *r)
19133 uint32_t cntr_types_1;
19134 if (ndr_flags & NDR_SCALARS) {
19135 NDR_CHECK(ndr_push_align(ndr, 5));
19136 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
19137 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, r->flags));
19138 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
19139 NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
19140 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19142 if (ndr_flags & NDR_BUFFERS) {
19143 if (r->types) {
19144 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
19145 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
19146 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
19148 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
19149 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
19153 return NDR_ERR_SUCCESS;
19156 static enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOption *r)
19158 uint32_t _ptr_types;
19159 uint32_t cntr_types_1;
19160 TALLOC_CTX *_mem_save_types_0;
19161 TALLOC_CTX *_mem_save_types_1;
19162 if (ndr_flags & NDR_SCALARS) {
19163 NDR_CHECK(ndr_pull_align(ndr, 5));
19164 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
19165 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, &r->flags));
19166 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
19167 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
19168 if (_ptr_types) {
19169 NDR_PULL_ALLOC(ndr, r->types);
19170 } else {
19171 r->types = NULL;
19173 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19175 if (ndr_flags & NDR_BUFFERS) {
19176 if (r->types) {
19177 _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
19178 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
19179 NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
19180 NDR_PULL_ALLOC_N(ndr, r->types, ndr_get_array_size(ndr, &r->types));
19181 _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
19182 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
19183 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
19184 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
19186 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
19187 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
19189 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
19190 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
19192 if (r->types) {
19193 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
19196 return NDR_ERR_SUCCESS;
19199 _PUBLIC_ void ndr_print_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOption *r)
19201 uint32_t cntr_types_1;
19202 ndr_print_struct(ndr, name, "spoolss_NotifyOption");
19203 ndr->depth++;
19204 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
19205 ndr_print_spoolssNotifyOptionFlags(ndr, "flags", r->flags);
19206 ndr_print_uint32(ndr, "count", r->count);
19207 ndr_print_ptr(ndr, "types", r->types);
19208 ndr->depth++;
19209 if (r->types) {
19210 ndr->print(ndr, "%s: ARRAY(%d)", "types", (int)r->count);
19211 ndr->depth++;
19212 for (cntr_types_1=0;cntr_types_1<r->count;cntr_types_1++) {
19213 char *idx_1=NULL;
19214 if (asprintf(&idx_1, "[%d]", cntr_types_1) != -1) {
19215 ndr_print_spoolss_NotifyOptionType(ndr, "types", &r->types[cntr_types_1]);
19216 free(idx_1);
19219 ndr->depth--;
19221 ndr->depth--;
19222 ndr->depth--;
19225 static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyString *r)
19227 if (ndr_flags & NDR_SCALARS) {
19228 NDR_CHECK(ndr_push_align(ndr, 5));
19229 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
19230 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
19231 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19233 if (ndr_flags & NDR_BUFFERS) {
19234 if (r->string) {
19235 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->size / 2));
19236 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
19239 return NDR_ERR_SUCCESS;
19242 static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyString *r)
19244 uint32_t _ptr_string;
19245 TALLOC_CTX *_mem_save_string_0;
19246 if (ndr_flags & NDR_SCALARS) {
19247 NDR_CHECK(ndr_pull_align(ndr, 5));
19248 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19249 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
19250 if (_ptr_string) {
19251 NDR_PULL_ALLOC(ndr, r->string);
19252 } else {
19253 r->string = NULL;
19255 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19257 if (ndr_flags & NDR_BUFFERS) {
19258 if (r->string) {
19259 _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
19260 NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
19261 NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
19262 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_size(ndr, &r->string), sizeof(uint16_t), CH_UTF16));
19263 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
19265 if (r->string) {
19266 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size / 2));
19269 return NDR_ERR_SUCCESS;
19272 _PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
19274 ndr_print_struct(ndr, name, "spoolss_NotifyString");
19275 ndr->depth++;
19276 ndr_print_uint32(ndr, "size", r->size);
19277 ndr_print_ptr(ndr, "string", r->string);
19278 ndr->depth++;
19279 if (r->string) {
19280 ndr_print_string(ndr, "string", r->string);
19282 ndr->depth--;
19283 ndr->depth--;
19286 static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyTable r)
19288 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
19289 return NDR_ERR_SUCCESS;
19292 static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyTable *r)
19294 uint32_t v;
19295 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
19296 *r = v;
19297 return NDR_ERR_SUCCESS;
19300 _PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
19302 const char *val = NULL;
19304 switch (r) {
19305 case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
19306 case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
19307 case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
19308 case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
19309 case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
19311 ndr_print_enum(ndr, name, "ENUM", val, r);
19314 static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int ndr_flags, const union spoolss_NotifyData *r)
19316 if (ndr_flags & NDR_SCALARS) {
19317 int level = ndr_push_get_switch_value(ndr, r);
19318 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
19319 NDR_CHECK(ndr_push_union_align(ndr, 5));
19320 switch (level) {
19321 case 1: {
19322 uint32_t cntr_integer_0;
19323 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
19324 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
19326 break; }
19328 case 2: {
19329 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
19330 break; }
19332 case 3: {
19333 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
19334 break; }
19336 case 4: {
19337 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
19338 break; }
19340 case 5: {
19341 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
19342 break; }
19344 default:
19345 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19348 if (ndr_flags & NDR_BUFFERS) {
19349 int level = ndr_push_get_switch_value(ndr, r);
19350 switch (level) {
19351 case 1:
19352 break;
19354 case 2:
19355 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
19356 break;
19358 case 3:
19359 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
19360 break;
19362 case 4:
19363 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
19364 break;
19366 case 5:
19367 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
19368 break;
19370 default:
19371 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19374 return NDR_ERR_SUCCESS;
19377 static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int ndr_flags, union spoolss_NotifyData *r)
19379 int level;
19380 uint32_t _level;
19381 level = ndr_pull_get_switch_value(ndr, r);
19382 if (ndr_flags & NDR_SCALARS) {
19383 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
19384 if (_level != level) {
19385 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
19387 NDR_CHECK(ndr_pull_union_align(ndr, 5));
19388 switch (level) {
19389 case 1: {
19390 uint32_t cntr_integer_0;
19391 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
19392 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
19394 break; }
19396 case 2: {
19397 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
19398 break; }
19400 case 3: {
19401 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
19402 break; }
19404 case 4: {
19405 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
19406 break; }
19408 case 5: {
19409 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
19410 break; }
19412 default:
19413 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19416 if (ndr_flags & NDR_BUFFERS) {
19417 switch (level) {
19418 case 1:
19419 break;
19421 case 2:
19422 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
19423 break;
19425 case 3:
19426 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
19427 break;
19429 case 4:
19430 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
19431 break;
19433 case 5:
19434 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
19435 break;
19437 default:
19438 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19441 return NDR_ERR_SUCCESS;
19444 _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
19446 int level;
19447 uint32_t cntr_integer_0;
19448 level = ndr_print_get_switch_value(ndr, r);
19449 ndr_print_union(ndr, name, level, "spoolss_NotifyData");
19450 switch (level) {
19451 case 1:
19452 ndr->print(ndr, "%s: ARRAY(%d)", "integer", (int)2);
19453 ndr->depth++;
19454 for (cntr_integer_0=0;cntr_integer_0<2;cntr_integer_0++) {
19455 char *idx_0=NULL;
19456 if (asprintf(&idx_0, "[%d]", cntr_integer_0) != -1) {
19457 ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
19458 free(idx_0);
19461 ndr->depth--;
19462 break;
19464 case 2:
19465 ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
19466 break;
19468 case 3:
19469 ndr_print_spoolss_DevmodeContainer(ndr, "devmode", &r->devmode);
19470 break;
19472 case 4:
19473 ndr_print_spoolss_TimeCtr(ndr, "time", &r->time);
19474 break;
19476 case 5:
19477 ndr_print_sec_desc_buf(ndr, "sd", &r->sd);
19478 break;
19480 default:
19481 ndr_print_bad_level(ndr, name, level);
19485 static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Notify *r)
19487 if (ndr_flags & NDR_SCALARS) {
19488 NDR_CHECK(ndr_push_align(ndr, 5));
19489 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
19490 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->field, r->type));
19491 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->field));
19492 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr, NDR_SCALARS, r->variable_type));
19493 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
19494 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
19495 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
19496 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19498 if (ndr_flags & NDR_BUFFERS) {
19499 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
19501 return NDR_ERR_SUCCESS;
19504 static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Notify *r)
19506 if (ndr_flags & NDR_SCALARS) {
19507 NDR_CHECK(ndr_pull_align(ndr, 5));
19508 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
19509 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->field, r->type));
19510 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
19511 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr, NDR_SCALARS, &r->variable_type));
19512 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
19513 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
19514 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
19515 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19517 if (ndr_flags & NDR_BUFFERS) {
19518 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
19520 return NDR_ERR_SUCCESS;
19523 _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
19525 ndr_print_struct(ndr, name, "spoolss_Notify");
19526 ndr->depth++;
19527 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
19528 ndr_print_set_switch_value(ndr, &r->field, r->type);
19529 ndr_print_spoolss_Field(ndr, "field", &r->field);
19530 ndr_print_spoolss_NotifyTable(ndr, "variable_type", r->variable_type);
19531 ndr_print_uint32(ndr, "job_id", r->job_id);
19532 ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
19533 ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
19534 ndr->depth--;
19537 static enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyInfo *r)
19539 uint32_t cntr_notifies_0;
19540 if (ndr_flags & NDR_SCALARS) {
19541 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
19542 NDR_CHECK(ndr_push_align(ndr, 5));
19543 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
19544 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
19545 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
19546 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
19547 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
19549 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19551 if (ndr_flags & NDR_BUFFERS) {
19552 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
19553 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
19556 return NDR_ERR_SUCCESS;
19559 static enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyInfo *r)
19561 uint32_t cntr_notifies_0;
19562 TALLOC_CTX *_mem_save_notifies_0;
19563 if (ndr_flags & NDR_SCALARS) {
19564 NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
19565 NDR_CHECK(ndr_pull_align(ndr, 5));
19566 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
19567 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
19568 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
19569 NDR_PULL_ALLOC_N(ndr, r->notifies, ndr_get_array_size(ndr, &r->notifies));
19570 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
19571 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
19572 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
19573 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
19575 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
19576 if (r->notifies) {
19577 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
19579 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19581 if (ndr_flags & NDR_BUFFERS) {
19582 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
19583 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
19584 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
19585 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
19587 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
19589 return NDR_ERR_SUCCESS;
19592 _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
19594 uint32_t cntr_notifies_0;
19595 ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
19596 ndr->depth++;
19597 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
19598 ndr_print_uint32(ndr, "flags", r->flags);
19599 ndr_print_uint32(ndr, "count", r->count);
19600 ndr->print(ndr, "%s: ARRAY(%d)", "notifies", (int)r->count);
19601 ndr->depth++;
19602 for (cntr_notifies_0=0;cntr_notifies_0<r->count;cntr_notifies_0++) {
19603 char *idx_0=NULL;
19604 if (asprintf(&idx_0, "[%d]", cntr_notifies_0) != -1) {
19605 ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
19606 free(idx_0);
19609 ndr->depth--;
19610 ndr->depth--;
19613 static enum ndr_err_code ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_ReplyPrinterInfo *r)
19615 if (ndr_flags & NDR_SCALARS) {
19616 int level = ndr_push_get_switch_value(ndr, r);
19617 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
19618 NDR_CHECK(ndr_push_union_align(ndr, 5));
19619 switch (level) {
19620 case 0: {
19621 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
19622 break; }
19624 default:
19625 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19628 if (ndr_flags & NDR_BUFFERS) {
19629 int level = ndr_push_get_switch_value(ndr, r);
19630 switch (level) {
19631 case 0:
19632 if (r->info0) {
19633 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
19635 break;
19637 default:
19638 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19641 return NDR_ERR_SUCCESS;
19644 static enum ndr_err_code ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_ReplyPrinterInfo *r)
19646 int level;
19647 uint32_t _level;
19648 TALLOC_CTX *_mem_save_info0_0;
19649 level = ndr_pull_get_switch_value(ndr, r);
19650 if (ndr_flags & NDR_SCALARS) {
19651 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
19652 if (_level != level) {
19653 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
19655 NDR_CHECK(ndr_pull_union_align(ndr, 5));
19656 switch (level) {
19657 case 0: {
19658 uint32_t _ptr_info0;
19659 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
19660 if (_ptr_info0) {
19661 NDR_PULL_ALLOC(ndr, r->info0);
19662 } else {
19663 r->info0 = NULL;
19665 break; }
19667 default:
19668 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19671 if (ndr_flags & NDR_BUFFERS) {
19672 switch (level) {
19673 case 0:
19674 if (r->info0) {
19675 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
19676 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
19677 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
19678 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
19680 break;
19682 default:
19683 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19686 return NDR_ERR_SUCCESS;
19689 _PUBLIC_ void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_ReplyPrinterInfo *r)
19691 int level;
19692 level = ndr_print_get_switch_value(ndr, r);
19693 ndr_print_union(ndr, name, level, "spoolss_ReplyPrinterInfo");
19694 switch (level) {
19695 case 0:
19696 ndr_print_ptr(ndr, "info0", r->info0);
19697 ndr->depth++;
19698 if (r->info0) {
19699 ndr_print_spoolss_NotifyInfo(ndr, "info0", r->info0);
19701 ndr->depth--;
19702 break;
19704 default:
19705 ndr_print_bad_level(ndr, name, level);
19709 static enum ndr_err_code ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19711 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19712 return NDR_ERR_SUCCESS;
19715 static enum ndr_err_code ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19717 uint32_t v;
19718 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19719 *r = v;
19720 return NDR_ERR_SUCCESS;
19723 _PUBLIC_ void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print *ndr, const char *name, uint32_t r)
19725 ndr_print_uint32(ndr, name, r);
19726 ndr->depth++;
19727 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED, r);
19728 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED, r);
19729 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH, r);
19730 ndr->depth--;
19733 static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel1 *r)
19735 if (ndr_flags & NDR_SCALARS) {
19736 NDR_CHECK(ndr_push_align(ndr, 5));
19737 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
19738 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
19739 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
19740 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
19741 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
19742 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
19743 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
19744 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19746 if (ndr_flags & NDR_BUFFERS) {
19747 if (r->client) {
19748 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
19749 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19750 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
19751 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19753 if (r->user) {
19754 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
19755 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19756 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
19757 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19760 return NDR_ERR_SUCCESS;
19763 static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel1 *r)
19765 uint32_t _ptr_client;
19766 TALLOC_CTX *_mem_save_client_0;
19767 uint32_t _ptr_user;
19768 TALLOC_CTX *_mem_save_user_0;
19769 if (ndr_flags & NDR_SCALARS) {
19770 NDR_CHECK(ndr_pull_align(ndr, 5));
19771 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19772 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
19773 if (_ptr_client) {
19774 NDR_PULL_ALLOC(ndr, r->client);
19775 } else {
19776 r->client = NULL;
19778 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
19779 if (_ptr_user) {
19780 NDR_PULL_ALLOC(ndr, r->user);
19781 } else {
19782 r->user = NULL;
19784 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
19785 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
19786 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
19787 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
19788 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19790 if (ndr_flags & NDR_BUFFERS) {
19791 if (r->client) {
19792 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
19793 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
19794 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
19795 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
19796 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
19797 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));
19799 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
19800 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
19801 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
19803 if (r->user) {
19804 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
19805 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
19806 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
19807 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
19808 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
19809 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));
19811 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
19812 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
19813 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
19816 return NDR_ERR_SUCCESS;
19819 _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
19821 ndr_print_struct(ndr, name, "spoolss_UserLevel1");
19822 ndr->depth++;
19823 ndr_print_uint32(ndr, "size", r->size);
19824 ndr_print_ptr(ndr, "client", r->client);
19825 ndr->depth++;
19826 if (r->client) {
19827 ndr_print_string(ndr, "client", r->client);
19829 ndr->depth--;
19830 ndr_print_ptr(ndr, "user", r->user);
19831 ndr->depth++;
19832 if (r->user) {
19833 ndr_print_string(ndr, "user", r->user);
19835 ndr->depth--;
19836 ndr_print_uint32(ndr, "build", r->build);
19837 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
19838 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
19839 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
19840 ndr->depth--;
19843 static enum ndr_err_code ndr_push_spoolss_UserLevel2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel2 *r)
19845 if (ndr_flags & NDR_SCALARS) {
19846 NDR_CHECK(ndr_push_align(ndr, 4));
19847 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->not_used));
19848 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19850 if (ndr_flags & NDR_BUFFERS) {
19852 return NDR_ERR_SUCCESS;
19855 static enum ndr_err_code ndr_pull_spoolss_UserLevel2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel2 *r)
19857 if (ndr_flags & NDR_SCALARS) {
19858 NDR_CHECK(ndr_pull_align(ndr, 4));
19859 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->not_used));
19860 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
19862 if (ndr_flags & NDR_BUFFERS) {
19864 return NDR_ERR_SUCCESS;
19867 _PUBLIC_ void ndr_print_spoolss_UserLevel2(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel2 *r)
19869 ndr_print_struct(ndr, name, "spoolss_UserLevel2");
19870 ndr->depth++;
19871 ndr_print_uint32(ndr, "not_used", r->not_used);
19872 ndr->depth--;
19875 static enum ndr_err_code ndr_push_spoolss_UserLevel3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel3 *r)
19877 if (ndr_flags & NDR_SCALARS) {
19878 NDR_CHECK(ndr_push_align(ndr, 5));
19879 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
19880 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
19881 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size2));
19882 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
19883 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
19884 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
19885 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
19886 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
19887 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
19888 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reserved));
19889 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19891 if (ndr_flags & NDR_BUFFERS) {
19892 if (r->client) {
19893 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
19894 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19895 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
19896 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19898 if (r->user) {
19899 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
19900 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19901 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
19902 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19905 return NDR_ERR_SUCCESS;
19908 static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel3 *r)
19910 uint32_t _ptr_client;
19911 TALLOC_CTX *_mem_save_client_0;
19912 uint32_t _ptr_user;
19913 TALLOC_CTX *_mem_save_user_0;
19914 if (ndr_flags & NDR_SCALARS) {
19915 NDR_CHECK(ndr_pull_align(ndr, 5));
19916 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19917 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
19918 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size2));
19919 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
19920 if (_ptr_client) {
19921 NDR_PULL_ALLOC(ndr, r->client);
19922 } else {
19923 r->client = NULL;
19925 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
19926 if (_ptr_user) {
19927 NDR_PULL_ALLOC(ndr, r->user);
19928 } else {
19929 r->user = NULL;
19931 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
19932 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
19933 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
19934 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
19935 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reserved));
19936 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19938 if (ndr_flags & NDR_BUFFERS) {
19939 if (r->client) {
19940 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
19941 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
19942 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
19943 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
19944 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
19945 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));
19947 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
19948 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
19949 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
19951 if (r->user) {
19952 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
19953 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
19954 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
19955 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
19956 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
19957 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));
19959 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
19960 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
19961 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
19964 return NDR_ERR_SUCCESS;
19967 _PUBLIC_ void ndr_print_spoolss_UserLevel3(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel3 *r)
19969 ndr_print_struct(ndr, name, "spoolss_UserLevel3");
19970 ndr->depth++;
19971 ndr_print_uint32(ndr, "size", r->size);
19972 ndr_print_uint32(ndr, "flags", r->flags);
19973 ndr_print_uint32(ndr, "size2", r->size2);
19974 ndr_print_ptr(ndr, "client", r->client);
19975 ndr->depth++;
19976 if (r->client) {
19977 ndr_print_string(ndr, "client", r->client);
19979 ndr->depth--;
19980 ndr_print_ptr(ndr, "user", r->user);
19981 ndr->depth++;
19982 if (r->user) {
19983 ndr_print_string(ndr, "user", r->user);
19985 ndr->depth--;
19986 ndr_print_uint32(ndr, "build", r->build);
19987 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
19988 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
19989 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
19990 ndr_print_udlong(ndr, "reserved", r->reserved);
19991 ndr->depth--;
19994 static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, int ndr_flags, const union spoolss_UserLevel *r)
19996 if (ndr_flags & NDR_SCALARS) {
19997 int level = ndr_push_get_switch_value(ndr, r);
19998 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
19999 NDR_CHECK(ndr_push_union_align(ndr, 5));
20000 switch (level) {
20001 case 1: {
20002 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
20003 break; }
20005 case 2: {
20006 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level2));
20007 break; }
20009 case 3: {
20010 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level3));
20011 break; }
20013 default:
20014 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
20017 if (ndr_flags & NDR_BUFFERS) {
20018 int level = ndr_push_get_switch_value(ndr, r);
20019 switch (level) {
20020 case 1:
20021 if (r->level1) {
20022 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
20024 break;
20026 case 2:
20027 if (r->level2) {
20028 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
20030 break;
20032 case 3:
20033 if (r->level3) {
20034 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
20036 break;
20038 default:
20039 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
20042 return NDR_ERR_SUCCESS;
20045 static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, int ndr_flags, union spoolss_UserLevel *r)
20047 int level;
20048 uint32_t _level;
20049 TALLOC_CTX *_mem_save_level1_0;
20050 TALLOC_CTX *_mem_save_level2_0;
20051 TALLOC_CTX *_mem_save_level3_0;
20052 level = ndr_pull_get_switch_value(ndr, r);
20053 if (ndr_flags & NDR_SCALARS) {
20054 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
20055 if (_level != level) {
20056 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
20058 NDR_CHECK(ndr_pull_union_align(ndr, 5));
20059 switch (level) {
20060 case 1: {
20061 uint32_t _ptr_level1;
20062 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
20063 if (_ptr_level1) {
20064 NDR_PULL_ALLOC(ndr, r->level1);
20065 } else {
20066 r->level1 = NULL;
20068 break; }
20070 case 2: {
20071 uint32_t _ptr_level2;
20072 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
20073 if (_ptr_level2) {
20074 NDR_PULL_ALLOC(ndr, r->level2);
20075 } else {
20076 r->level2 = NULL;
20078 break; }
20080 case 3: {
20081 uint32_t _ptr_level3;
20082 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
20083 if (_ptr_level3) {
20084 NDR_PULL_ALLOC(ndr, r->level3);
20085 } else {
20086 r->level3 = NULL;
20088 break; }
20090 default:
20091 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
20094 if (ndr_flags & NDR_BUFFERS) {
20095 switch (level) {
20096 case 1:
20097 if (r->level1) {
20098 _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
20099 NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
20100 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
20101 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
20103 break;
20105 case 2:
20106 if (r->level2) {
20107 _mem_save_level2_0 = NDR_PULL_GET_MEM_CTX(ndr);
20108 NDR_PULL_SET_MEM_CTX(ndr, r->level2, 0);
20109 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
20110 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level2_0, 0);
20112 break;
20114 case 3:
20115 if (r->level3) {
20116 _mem_save_level3_0 = NDR_PULL_GET_MEM_CTX(ndr);
20117 NDR_PULL_SET_MEM_CTX(ndr, r->level3, 0);
20118 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
20119 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level3_0, 0);
20121 break;
20123 default:
20124 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
20127 return NDR_ERR_SUCCESS;
20130 _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
20132 int level;
20133 level = ndr_print_get_switch_value(ndr, r);
20134 ndr_print_union(ndr, name, level, "spoolss_UserLevel");
20135 switch (level) {
20136 case 1:
20137 ndr_print_ptr(ndr, "level1", r->level1);
20138 ndr->depth++;
20139 if (r->level1) {
20140 ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
20142 ndr->depth--;
20143 break;
20145 case 2:
20146 ndr_print_ptr(ndr, "level2", r->level2);
20147 ndr->depth++;
20148 if (r->level2) {
20149 ndr_print_spoolss_UserLevel2(ndr, "level2", r->level2);
20151 ndr->depth--;
20152 break;
20154 case 3:
20155 ndr_print_ptr(ndr, "level3", r->level3);
20156 ndr->depth++;
20157 if (r->level3) {
20158 ndr_print_spoolss_UserLevel3(ndr, "level3", r->level3);
20160 ndr->depth--;
20161 break;
20163 default:
20164 ndr_print_bad_level(ndr, name, level);
20168 static enum ndr_err_code ndr_push_spoolss_UserLevelCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevelCtr *r)
20170 if (ndr_flags & NDR_SCALARS) {
20171 NDR_CHECK(ndr_push_align(ndr, 5));
20172 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
20173 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
20174 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
20175 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
20177 if (ndr_flags & NDR_BUFFERS) {
20178 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
20180 return NDR_ERR_SUCCESS;
20183 static enum ndr_err_code ndr_pull_spoolss_UserLevelCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevelCtr *r)
20185 if (ndr_flags & NDR_SCALARS) {
20186 NDR_CHECK(ndr_pull_align(ndr, 5));
20187 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
20188 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
20189 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
20190 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
20192 if (ndr_flags & NDR_BUFFERS) {
20193 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
20195 return NDR_ERR_SUCCESS;
20198 _PUBLIC_ void ndr_print_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevelCtr *r)
20200 ndr_print_struct(ndr, name, "spoolss_UserLevelCtr");
20201 ndr->depth++;
20202 ndr_print_uint32(ndr, "level", r->level);
20203 ndr_print_set_switch_value(ndr, &r->user_info, r->level);
20204 ndr_print_spoolss_UserLevel(ndr, "user_info", &r->user_info);
20205 ndr->depth--;
20208 static enum ndr_err_code ndr_push_spoolss_AccessRights(struct ndr_push *ndr, int ndr_flags, uint32_t r)
20210 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
20211 return NDR_ERR_SUCCESS;
20214 static enum ndr_err_code ndr_pull_spoolss_AccessRights(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
20216 uint32_t v;
20217 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
20218 *r = v;
20219 return NDR_ERR_SUCCESS;
20222 _PUBLIC_ void ndr_print_spoolss_AccessRights(struct ndr_print *ndr, const char *name, uint32_t r)
20224 ndr_print_uint32(ndr, name, r);
20225 ndr->depth++;
20226 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER, r);
20227 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE, r);
20228 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER, r);
20229 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE, r);
20230 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER, r);
20231 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ, r);
20232 ndr->depth--;
20235 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterEnumValues(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterEnumValues *r)
20237 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
20238 if (ndr_flags & NDR_SCALARS) {
20239 NDR_CHECK(ndr_push_align(ndr, 5));
20240 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
20242 uint32_t _flags_save_string = ndr->flags;
20243 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
20244 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->value_name));
20245 ndr->flags = _flags_save_string;
20247 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2 * strlen_m_term(r->value_name)));
20248 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->type));
20249 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data));
20250 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_PrinterData(r->data, r->type, ndr->iconv_convenience, ndr->flags)));
20251 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
20253 if (ndr_flags & NDR_BUFFERS) {
20254 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
20256 uint32_t _flags_save_string = ndr->flags;
20257 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
20258 if (r->value_name) {
20259 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->value_name));
20260 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->value_name));
20261 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->value_name));
20263 ndr->flags = _flags_save_string;
20265 if (r->data) {
20266 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data));
20268 struct ndr_push *_ndr_data;
20269 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
20270 NDR_CHECK(ndr_push_set_switch_value(_ndr_data, r->data, r->type));
20271 NDR_CHECK(ndr_push_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
20272 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_data, 0, r->data_length));
20274 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data));
20277 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
20278 return NDR_ERR_SUCCESS;
20281 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterEnumValues(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterEnumValues *r)
20283 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
20284 uint32_t _ptr_value_name;
20285 TALLOC_CTX *_mem_save_value_name_0;
20286 uint32_t _ptr_data;
20287 TALLOC_CTX *_mem_save_data_0;
20288 if (ndr_flags & NDR_SCALARS) {
20289 NDR_CHECK(ndr_pull_align(ndr, 5));
20290 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
20292 uint32_t _flags_save_string = ndr->flags;
20293 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
20294 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_name));
20295 if (_ptr_value_name) {
20296 NDR_PULL_ALLOC(ndr, r->value_name);
20297 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->value_name, _ptr_value_name));
20298 } else {
20299 r->value_name = NULL;
20301 ndr->flags = _flags_save_string;
20303 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value_name_len));
20304 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->type));
20305 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
20306 if (_ptr_data) {
20307 NDR_PULL_ALLOC(ndr, r->data);
20308 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data, _ptr_data));
20309 } else {
20310 r->data = NULL;
20312 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data_length));
20313 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
20315 if (ndr_flags & NDR_BUFFERS) {
20316 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
20318 uint32_t _flags_save_string = ndr->flags;
20319 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
20320 if (r->value_name) {
20321 uint32_t _relative_save_offset;
20322 _relative_save_offset = ndr->offset;
20323 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->value_name));
20324 _mem_save_value_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
20325 NDR_PULL_SET_MEM_CTX(ndr, r->value_name, 0);
20326 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->value_name));
20327 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_name_0, 0);
20328 if (ndr->offset > ndr->relative_highest_offset) {
20329 ndr->relative_highest_offset = ndr->offset;
20331 ndr->offset = _relative_save_offset;
20333 ndr->flags = _flags_save_string;
20335 if (r->data) {
20336 uint32_t _relative_save_offset;
20337 _relative_save_offset = ndr->offset;
20338 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data));
20339 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
20340 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
20342 struct ndr_pull *_ndr_data;
20343 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
20344 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, r->data, r->type));
20345 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
20346 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 0, r->data_length));
20348 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
20349 if (ndr->offset > ndr->relative_highest_offset) {
20350 ndr->relative_highest_offset = ndr->offset;
20352 ndr->offset = _relative_save_offset;
20355 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
20356 return NDR_ERR_SUCCESS;
20359 _PUBLIC_ void ndr_print_spoolss_PrinterEnumValues(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterEnumValues *r)
20361 ndr_print_struct(ndr, name, "spoolss_PrinterEnumValues");
20362 ndr->depth++;
20363 ndr_print_ptr(ndr, "value_name", r->value_name);
20364 ndr->depth++;
20365 if (r->value_name) {
20366 ndr_print_string(ndr, "value_name", r->value_name);
20368 ndr->depth--;
20369 ndr_print_uint32(ndr, "value_name_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * strlen_m_term(r->value_name):r->value_name_len);
20370 ndr_print_winreg_Type(ndr, "type", r->type);
20371 ndr_print_ptr(ndr, "data", r->data);
20372 ndr->depth++;
20373 if (r->data) {
20374 ndr_print_set_switch_value(ndr, r->data, r->type);
20375 ndr_print_spoolss_PrinterData(ndr, "data", r->data);
20377 ndr->depth--;
20378 ndr_print_uint32(ndr, "data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_PrinterData(r->data, r->type, ndr->iconv_convenience, ndr->flags):r->data_length);
20379 ndr->depth--;
20382 _PUBLIC_ size_t ndr_size_spoolss_PrinterEnumValues(const struct spoolss_PrinterEnumValues *r, struct smb_iconv_convenience *ic, int flags)
20384 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterEnumValues, ic);
20387 static enum ndr_err_code ndr_push_spoolss_KeyNames(struct ndr_push *ndr, int ndr_flags, const union spoolss_KeyNames *r)
20389 if (ndr_flags & NDR_SCALARS) {
20390 int level = ndr_push_get_switch_value(ndr, r);
20391 NDR_CHECK(ndr_push_union_align(ndr, 4));
20392 switch (level) {
20393 case 0: {
20394 break; }
20396 case 1: {
20397 break; }
20399 default: {
20401 uint32_t _flags_save_string_array = ndr->flags;
20402 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
20403 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
20404 ndr->flags = _flags_save_string_array;
20406 break; }
20410 if (ndr_flags & NDR_BUFFERS) {
20411 int level = ndr_push_get_switch_value(ndr, r);
20412 switch (level) {
20413 case 0:
20414 break;
20416 case 1:
20417 break;
20419 default:
20420 break;
20424 return NDR_ERR_SUCCESS;
20427 static enum ndr_err_code ndr_pull_spoolss_KeyNames(struct ndr_pull *ndr, int ndr_flags, union spoolss_KeyNames *r)
20429 int level;
20430 level = ndr_pull_get_switch_value(ndr, r);
20431 if (ndr_flags & NDR_SCALARS) {
20432 NDR_CHECK(ndr_pull_union_align(ndr, 4));
20433 switch (level) {
20434 case 0: {
20435 break; }
20437 case 1: {
20438 break; }
20440 default: {
20442 uint32_t _flags_save_string_array = ndr->flags;
20443 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
20444 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
20445 ndr->flags = _flags_save_string_array;
20447 break; }
20451 if (ndr_flags & NDR_BUFFERS) {
20452 switch (level) {
20453 case 0:
20454 break;
20456 case 1:
20457 break;
20459 default:
20460 break;
20464 return NDR_ERR_SUCCESS;
20467 _PUBLIC_ void ndr_print_spoolss_KeyNames(struct ndr_print *ndr, const char *name, const union spoolss_KeyNames *r)
20469 int level;
20470 level = ndr_print_get_switch_value(ndr, r);
20471 ndr_print_union(ndr, name, level, "spoolss_KeyNames");
20472 switch (level) {
20473 case 0:
20474 break;
20476 case 1:
20477 break;
20479 default:
20480 ndr_print_string_array(ndr, "string_array", r->string_array);
20481 break;
20486 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
20488 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
20489 return NDR_ERR_SUCCESS;
20492 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
20494 uint32_t v;
20495 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
20496 *r = v;
20497 return NDR_ERR_SUCCESS;
20500 _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
20502 ndr_print_uint32(ndr, name, r);
20503 ndr->depth++;
20504 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
20505 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
20506 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
20507 ndr->depth--;
20510 static enum ndr_err_code ndr_push_spoolss_PortProtocol(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortProtocol r)
20512 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
20513 return NDR_ERR_SUCCESS;
20516 static enum ndr_err_code ndr_pull_spoolss_PortProtocol(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortProtocol *r)
20518 uint32_t v;
20519 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
20520 *r = v;
20521 return NDR_ERR_SUCCESS;
20524 _PUBLIC_ void ndr_print_spoolss_PortProtocol(struct ndr_print *ndr, const char *name, enum spoolss_PortProtocol r)
20526 const char *val = NULL;
20528 switch (r) {
20529 case PROTOCOL_RAWTCP_TYPE: val = "PROTOCOL_RAWTCP_TYPE"; break;
20530 case PROTOCOL_LPR_TYPE: val = "PROTOCOL_LPR_TYPE"; break;
20532 ndr_print_enum(ndr, name, "ENUM", val, r);
20535 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData1 *r)
20537 if (ndr_flags & NDR_SCALARS) {
20538 NDR_CHECK(ndr_push_align(ndr, 4));
20539 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
20540 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
20541 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
20542 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
20543 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
20544 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
20545 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
20546 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
20547 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
20548 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
20549 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
20550 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
20551 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
20552 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
20553 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
20554 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
20556 if (ndr_flags & NDR_BUFFERS) {
20558 return NDR_ERR_SUCCESS;
20561 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData1 *r)
20563 if (ndr_flags & NDR_SCALARS) {
20564 NDR_CHECK(ndr_pull_align(ndr, 4));
20565 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
20566 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
20567 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
20568 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
20569 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
20570 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
20571 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
20572 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
20573 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
20574 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
20575 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
20576 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
20577 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
20578 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
20579 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
20580 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
20582 if (ndr_flags & NDR_BUFFERS) {
20584 return NDR_ERR_SUCCESS;
20587 _PUBLIC_ void ndr_print_spoolss_PortData1(struct ndr_print *ndr, const char *name, const struct spoolss_PortData1 *r)
20589 ndr_print_struct(ndr, name, "spoolss_PortData1");
20590 ndr->depth++;
20591 ndr_print_string(ndr, "portname", r->portname);
20592 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000001:r->version);
20593 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
20594 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
20595 ndr_print_uint32(ndr, "reserved", r->reserved);
20596 ndr_print_string(ndr, "hostaddress", r->hostaddress);
20597 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
20598 ndr_print_uint32(ndr, "dblspool", r->dblspool);
20599 ndr_print_string(ndr, "queue", r->queue);
20600 ndr_print_string(ndr, "ip_address", r->ip_address);
20601 ndr_print_string(ndr, "hardware_address", r->hardware_address);
20602 ndr_print_string(ndr, "device_type", r->device_type);
20603 ndr_print_uint32(ndr, "port_number", r->port_number);
20604 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
20605 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
20606 ndr->depth--;
20609 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData2 *r)
20611 if (ndr_flags & NDR_SCALARS) {
20612 NDR_CHECK(ndr_push_align(ndr, 4));
20613 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
20614 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000002));
20615 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
20616 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
20617 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
20618 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
20619 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
20620 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
20621 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
20622 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
20623 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
20624 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
20625 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
20626 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_monitor_mib_index));
20627 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
20629 if (ndr_flags & NDR_BUFFERS) {
20631 return NDR_ERR_SUCCESS;
20634 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData2 *r)
20636 if (ndr_flags & NDR_SCALARS) {
20637 NDR_CHECK(ndr_pull_align(ndr, 4));
20638 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
20639 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
20640 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
20641 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
20642 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
20643 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
20644 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
20645 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
20646 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
20647 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
20648 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
20649 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
20650 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
20651 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_monitor_mib_index));
20652 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
20654 if (ndr_flags & NDR_BUFFERS) {
20656 return NDR_ERR_SUCCESS;
20659 _PUBLIC_ void ndr_print_spoolss_PortData2(struct ndr_print *ndr, const char *name, const struct spoolss_PortData2 *r)
20661 ndr_print_struct(ndr, name, "spoolss_PortData2");
20662 ndr->depth++;
20663 ndr_print_string(ndr, "portname", r->portname);
20664 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000002:r->version);
20665 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
20666 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
20667 ndr_print_uint32(ndr, "reserved", r->reserved);
20668 ndr_print_string(ndr, "hostaddress", r->hostaddress);
20669 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
20670 ndr_print_uint32(ndr, "dblspool", r->dblspool);
20671 ndr_print_string(ndr, "queue", r->queue);
20672 ndr_print_string(ndr, "device_type", r->device_type);
20673 ndr_print_uint32(ndr, "port_number", r->port_number);
20674 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
20675 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
20676 ndr_print_uint32(ndr, "port_monitor_mib_index", r->port_monitor_mib_index);
20677 ndr->depth--;
20680 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorUi(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorUi *r)
20682 if (ndr_flags & NDR_SCALARS) {
20683 NDR_CHECK(ndr_push_align(ndr, 4));
20685 uint32_t _flags_save_string = ndr->flags;
20686 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
20687 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
20688 ndr->flags = _flags_save_string;
20690 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
20692 if (ndr_flags & NDR_BUFFERS) {
20694 return NDR_ERR_SUCCESS;
20697 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorUi(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorUi *r)
20699 if (ndr_flags & NDR_SCALARS) {
20700 NDR_CHECK(ndr_pull_align(ndr, 4));
20702 uint32_t _flags_save_string = ndr->flags;
20703 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
20704 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
20705 ndr->flags = _flags_save_string;
20707 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
20709 if (ndr_flags & NDR_BUFFERS) {
20711 return NDR_ERR_SUCCESS;
20714 _PUBLIC_ void ndr_print_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorUi *r)
20716 ndr_print_struct(ndr, name, "spoolss_MonitorUi");
20717 ndr->depth++;
20718 ndr_print_string(ndr, "dll_name", r->dll_name);
20719 ndr->depth--;
20722 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
20724 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
20725 return NDR_ERR_SUCCESS;
20728 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
20730 uint32_t v;
20731 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
20732 *r = v;
20733 return NDR_ERR_SUCCESS;
20736 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r)
20738 ndr_print_uint32(ndr, name, r);
20739 ndr->depth++;
20740 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
20741 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
20742 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
20743 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
20744 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
20745 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
20746 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
20747 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
20748 ndr->depth--;
20751 static enum ndr_err_code ndr_push_spoolss_CorePrinterDriver(struct ndr_push *ndr, int ndr_flags, const struct spoolss_CorePrinterDriver *r)
20753 if (ndr_flags & NDR_SCALARS) {
20754 NDR_CHECK(ndr_push_align(ndr, 8));
20755 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->core_driver_guid));
20756 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
20757 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
20758 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, 520, sizeof(uint8_t), CH_UTF8));
20759 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
20761 if (ndr_flags & NDR_BUFFERS) {
20763 return NDR_ERR_SUCCESS;
20766 static enum ndr_err_code ndr_pull_spoolss_CorePrinterDriver(struct ndr_pull *ndr, int ndr_flags, struct spoolss_CorePrinterDriver *r)
20768 if (ndr_flags & NDR_SCALARS) {
20769 NDR_CHECK(ndr_pull_align(ndr, 8));
20770 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->core_driver_guid));
20771 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
20772 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
20773 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, 520, sizeof(uint8_t), CH_UTF8));
20774 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
20776 if (ndr_flags & NDR_BUFFERS) {
20778 return NDR_ERR_SUCCESS;
20781 _PUBLIC_ void ndr_print_spoolss_CorePrinterDriver(struct ndr_print *ndr, const char *name, const struct spoolss_CorePrinterDriver *r)
20783 ndr_print_struct(ndr, name, "spoolss_CorePrinterDriver");
20784 ndr->depth++;
20785 ndr_print_GUID(ndr, "core_driver_guid", &r->core_driver_guid);
20786 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
20787 ndr_print_hyper(ndr, "driver_version", r->driver_version);
20788 ndr_print_string(ndr, "formname", r->formname);
20789 ndr->depth--;
20792 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r)
20794 if (flags & NDR_IN) {
20795 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
20796 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20797 if (r->in.server) {
20798 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20799 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20800 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20801 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20803 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20804 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20805 if (r->in.buffer) {
20806 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20808 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20810 if (flags & NDR_OUT) {
20811 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20812 if (r->out.info) {
20813 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
20815 if (r->out.needed == NULL) {
20816 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20818 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20819 if (r->out.count == NULL) {
20820 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20822 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
20823 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20825 return NDR_ERR_SUCCESS;
20828 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinters *r)
20830 uint32_t _ptr_server;
20831 uint32_t _ptr_buffer;
20832 uint32_t _ptr_info;
20833 TALLOC_CTX *_mem_save_server_0;
20834 TALLOC_CTX *_mem_save_buffer_0;
20835 TALLOC_CTX *_mem_save_info_0;
20836 TALLOC_CTX *_mem_save_needed_0;
20837 TALLOC_CTX *_mem_save_count_0;
20838 if (flags & NDR_IN) {
20839 ZERO_STRUCT(r->out);
20841 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
20842 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20843 if (_ptr_server) {
20844 NDR_PULL_ALLOC(ndr, r->in.server);
20845 } else {
20846 r->in.server = NULL;
20848 if (r->in.server) {
20849 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20850 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20851 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20852 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20853 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20854 return 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));
20856 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20857 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20858 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20860 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20861 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20862 if (_ptr_buffer) {
20863 NDR_PULL_ALLOC(ndr, r->in.buffer);
20864 } else {
20865 r->in.buffer = NULL;
20867 if (r->in.buffer) {
20868 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20869 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20870 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20871 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20873 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20874 NDR_PULL_ALLOC(ndr, r->out.needed);
20875 ZERO_STRUCTP(r->out.needed);
20876 NDR_PULL_ALLOC(ndr, r->out.count);
20877 ZERO_STRUCTP(r->out.count);
20879 if (flags & NDR_OUT) {
20880 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20881 if (_ptr_info) {
20882 NDR_PULL_ALLOC(ndr, r->out.info);
20883 } else {
20884 r->out.info = NULL;
20886 if (r->out.info) {
20887 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20888 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20889 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
20890 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20892 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20893 NDR_PULL_ALLOC(ndr, r->out.needed);
20895 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20896 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20897 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20898 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20899 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20900 NDR_PULL_ALLOC(ndr, r->out.count);
20902 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
20903 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
20904 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
20905 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
20906 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20908 return NDR_ERR_SUCCESS;
20911 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinters *r)
20913 uint32_t cntr_info_0;
20914 if (flags & NDR_IN) {
20915 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20916 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
20918 if (flags & NDR_OUT) {
20919 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20920 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20921 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20923 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20924 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20927 return NDR_ERR_SUCCESS;
20930 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinters *r)
20932 uint32_t cntr_info_0;
20933 TALLOC_CTX *_mem_save_info_0;
20934 if (flags & NDR_IN) {
20935 ZERO_STRUCT(r->out);
20937 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20938 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
20940 if (flags & NDR_OUT) {
20941 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
20942 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20943 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20944 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20945 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20946 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20948 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20949 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20951 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20953 return NDR_ERR_SUCCESS;
20956 _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinters *r)
20958 uint32_t cntr_info_2;
20959 ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
20960 ndr->depth++;
20961 if (flags & NDR_SET_VALUES) {
20962 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20964 if (flags & NDR_IN) {
20965 ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
20966 ndr->depth++;
20967 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
20968 ndr_print_ptr(ndr, "server", r->in.server);
20969 ndr->depth++;
20970 if (r->in.server) {
20971 ndr_print_string(ndr, "server", r->in.server);
20973 ndr->depth--;
20974 ndr_print_uint32(ndr, "level", r->in.level);
20975 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20976 ndr->depth++;
20977 if (r->in.buffer) {
20978 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20980 ndr->depth--;
20981 ndr_print_uint32(ndr, "offered", r->in.offered);
20982 ndr->depth--;
20984 if (flags & NDR_OUT) {
20985 ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
20986 ndr->depth++;
20987 ndr_print_ptr(ndr, "count", r->out.count);
20988 ndr->depth++;
20989 ndr_print_uint32(ndr, "count", *r->out.count);
20990 ndr->depth--;
20991 ndr_print_ptr(ndr, "info", r->out.info);
20992 ndr->depth++;
20993 ndr_print_ptr(ndr, "info", *r->out.info);
20994 ndr->depth++;
20995 if (*r->out.info) {
20996 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
20997 ndr->depth++;
20998 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
20999 char *idx_2=NULL;
21000 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
21001 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
21002 ndr_print_spoolss_PrinterInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
21003 free(idx_2);
21006 ndr->depth--;
21008 ndr->depth--;
21009 ndr->depth--;
21010 ndr_print_ptr(ndr, "needed", r->out.needed);
21011 ndr->depth++;
21012 ndr_print_uint32(ndr, "needed", *r->out.needed);
21013 ndr->depth--;
21014 ndr_print_WERROR(ndr, "result", r->out.result);
21015 ndr->depth--;
21017 ndr->depth--;
21020 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinter *r)
21022 if (flags & NDR_IN) {
21023 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
21024 if (r->in.printername) {
21025 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
21026 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21027 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
21028 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21030 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
21031 if (r->in.datatype) {
21032 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
21033 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21034 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
21035 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21037 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
21038 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
21040 if (flags & NDR_OUT) {
21041 if (r->out.handle == NULL) {
21042 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21044 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21045 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21047 return NDR_ERR_SUCCESS;
21050 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinter *r)
21052 uint32_t _ptr_printername;
21053 uint32_t _ptr_datatype;
21054 TALLOC_CTX *_mem_save_printername_0;
21055 TALLOC_CTX *_mem_save_datatype_0;
21056 TALLOC_CTX *_mem_save_handle_0;
21057 if (flags & NDR_IN) {
21058 ZERO_STRUCT(r->out);
21060 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
21061 if (_ptr_printername) {
21062 NDR_PULL_ALLOC(ndr, r->in.printername);
21063 } else {
21064 r->in.printername = NULL;
21066 if (r->in.printername) {
21067 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
21068 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
21069 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
21070 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
21071 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
21072 return 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));
21074 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
21075 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
21076 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
21078 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
21079 if (_ptr_datatype) {
21080 NDR_PULL_ALLOC(ndr, r->in.datatype);
21081 } else {
21082 r->in.datatype = NULL;
21084 if (r->in.datatype) {
21085 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
21086 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
21087 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
21088 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
21089 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
21090 return 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));
21092 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
21093 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
21094 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
21096 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
21097 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
21098 NDR_PULL_ALLOC(ndr, r->out.handle);
21099 ZERO_STRUCTP(r->out.handle);
21101 if (flags & NDR_OUT) {
21102 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21103 NDR_PULL_ALLOC(ndr, r->out.handle);
21105 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21106 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
21107 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21108 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21109 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21111 return NDR_ERR_SUCCESS;
21114 _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinter *r)
21116 ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
21117 ndr->depth++;
21118 if (flags & NDR_SET_VALUES) {
21119 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21121 if (flags & NDR_IN) {
21122 ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
21123 ndr->depth++;
21124 ndr_print_ptr(ndr, "printername", r->in.printername);
21125 ndr->depth++;
21126 if (r->in.printername) {
21127 ndr_print_string(ndr, "printername", r->in.printername);
21129 ndr->depth--;
21130 ndr_print_ptr(ndr, "datatype", r->in.datatype);
21131 ndr->depth++;
21132 if (r->in.datatype) {
21133 ndr_print_string(ndr, "datatype", r->in.datatype);
21135 ndr->depth--;
21136 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
21137 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
21138 ndr->depth--;
21140 if (flags & NDR_OUT) {
21141 ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
21142 ndr->depth++;
21143 ndr_print_ptr(ndr, "handle", r->out.handle);
21144 ndr->depth++;
21145 ndr_print_policy_handle(ndr, "handle", r->out.handle);
21146 ndr->depth--;
21147 ndr_print_WERROR(ndr, "result", r->out.result);
21148 ndr->depth--;
21150 ndr->depth--;
21153 static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, int flags, const struct spoolss_SetJob *r)
21155 if (flags & NDR_IN) {
21156 if (r->in.handle == NULL) {
21157 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21159 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21160 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
21161 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
21162 if (r->in.ctr) {
21163 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
21165 NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
21167 if (flags & NDR_OUT) {
21168 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21170 return NDR_ERR_SUCCESS;
21173 static enum ndr_err_code ndr_pull_spoolss_SetJob(struct ndr_pull *ndr, int flags, struct spoolss_SetJob *r)
21175 uint32_t _ptr_ctr;
21176 TALLOC_CTX *_mem_save_handle_0;
21177 TALLOC_CTX *_mem_save_ctr_0;
21178 if (flags & NDR_IN) {
21179 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21180 NDR_PULL_ALLOC(ndr, r->in.handle);
21182 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21183 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21184 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21185 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21186 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
21187 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
21188 if (_ptr_ctr) {
21189 NDR_PULL_ALLOC(ndr, r->in.ctr);
21190 } else {
21191 r->in.ctr = NULL;
21193 if (r->in.ctr) {
21194 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21195 NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
21196 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
21197 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
21199 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
21201 if (flags & NDR_OUT) {
21202 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21204 return NDR_ERR_SUCCESS;
21207 _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetJob *r)
21209 ndr_print_struct(ndr, name, "spoolss_SetJob");
21210 ndr->depth++;
21211 if (flags & NDR_SET_VALUES) {
21212 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21214 if (flags & NDR_IN) {
21215 ndr_print_struct(ndr, "in", "spoolss_SetJob");
21216 ndr->depth++;
21217 ndr_print_ptr(ndr, "handle", r->in.handle);
21218 ndr->depth++;
21219 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21220 ndr->depth--;
21221 ndr_print_uint32(ndr, "job_id", r->in.job_id);
21222 ndr_print_ptr(ndr, "ctr", r->in.ctr);
21223 ndr->depth++;
21224 if (r->in.ctr) {
21225 ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
21227 ndr->depth--;
21228 ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
21229 ndr->depth--;
21231 if (flags & NDR_OUT) {
21232 ndr_print_struct(ndr, "out", "spoolss_SetJob");
21233 ndr->depth++;
21234 ndr_print_WERROR(ndr, "result", r->out.result);
21235 ndr->depth--;
21237 ndr->depth--;
21240 static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, int flags, const struct spoolss_GetJob *r)
21242 if (flags & NDR_IN) {
21243 if (r->in.handle == NULL) {
21244 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21246 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21247 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
21248 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21249 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21250 if (r->in.buffer) {
21251 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21253 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21255 if (flags & NDR_OUT) {
21256 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21257 if (r->out.info) {
21259 struct ndr_push *_ndr_info;
21260 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21261 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21262 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21263 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21266 if (r->out.needed == NULL) {
21267 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21269 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21270 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21272 return NDR_ERR_SUCCESS;
21275 static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags, struct spoolss_GetJob *r)
21277 uint32_t _ptr_buffer;
21278 uint32_t _ptr_info;
21279 TALLOC_CTX *_mem_save_handle_0;
21280 TALLOC_CTX *_mem_save_buffer_0;
21281 TALLOC_CTX *_mem_save_info_0;
21282 TALLOC_CTX *_mem_save_needed_0;
21283 if (flags & NDR_IN) {
21284 ZERO_STRUCT(r->out);
21286 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21287 NDR_PULL_ALLOC(ndr, r->in.handle);
21289 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21290 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21291 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21292 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21293 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
21294 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21295 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21296 if (_ptr_buffer) {
21297 NDR_PULL_ALLOC(ndr, r->in.buffer);
21298 } else {
21299 r->in.buffer = NULL;
21301 if (r->in.buffer) {
21302 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21303 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21304 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21305 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21307 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21308 NDR_PULL_ALLOC(ndr, r->out.needed);
21309 ZERO_STRUCTP(r->out.needed);
21311 if (flags & NDR_OUT) {
21312 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21313 if (_ptr_info) {
21314 NDR_PULL_ALLOC(ndr, r->out.info);
21315 } else {
21316 r->out.info = NULL;
21318 if (r->out.info) {
21319 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21320 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21322 struct ndr_pull *_ndr_info;
21323 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21324 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21325 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21326 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21328 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21330 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21331 NDR_PULL_ALLOC(ndr, r->out.needed);
21333 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21334 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21335 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21336 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21337 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21339 return NDR_ERR_SUCCESS;
21342 _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetJob *r)
21344 ndr_print_struct(ndr, name, "spoolss_GetJob");
21345 ndr->depth++;
21346 if (flags & NDR_SET_VALUES) {
21347 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21349 if (flags & NDR_IN) {
21350 ndr_print_struct(ndr, "in", "spoolss_GetJob");
21351 ndr->depth++;
21352 ndr_print_ptr(ndr, "handle", r->in.handle);
21353 ndr->depth++;
21354 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21355 ndr->depth--;
21356 ndr_print_uint32(ndr, "job_id", r->in.job_id);
21357 ndr_print_uint32(ndr, "level", r->in.level);
21358 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21359 ndr->depth++;
21360 if (r->in.buffer) {
21361 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21363 ndr->depth--;
21364 ndr_print_uint32(ndr, "offered", r->in.offered);
21365 ndr->depth--;
21367 if (flags & NDR_OUT) {
21368 ndr_print_struct(ndr, "out", "spoolss_GetJob");
21369 ndr->depth++;
21370 ndr_print_ptr(ndr, "info", r->out.info);
21371 ndr->depth++;
21372 if (r->out.info) {
21373 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21374 ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
21376 ndr->depth--;
21377 ndr_print_ptr(ndr, "needed", r->out.needed);
21378 ndr->depth++;
21379 ndr_print_uint32(ndr, "needed", *r->out.needed);
21380 ndr->depth--;
21381 ndr_print_WERROR(ndr, "result", r->out.result);
21382 ndr->depth--;
21384 ndr->depth--;
21387 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct _spoolss_EnumJobs *r)
21389 if (flags & NDR_IN) {
21390 if (r->in.handle == NULL) {
21391 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21393 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21394 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
21395 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
21396 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21397 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21398 if (r->in.buffer) {
21399 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21401 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21403 if (flags & NDR_OUT) {
21404 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21405 if (r->out.info) {
21406 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
21408 if (r->out.needed == NULL) {
21409 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21411 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21412 if (r->out.count == NULL) {
21413 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21415 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
21416 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21418 return NDR_ERR_SUCCESS;
21421 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct _spoolss_EnumJobs *r)
21423 uint32_t _ptr_buffer;
21424 uint32_t _ptr_info;
21425 TALLOC_CTX *_mem_save_handle_0;
21426 TALLOC_CTX *_mem_save_buffer_0;
21427 TALLOC_CTX *_mem_save_info_0;
21428 TALLOC_CTX *_mem_save_needed_0;
21429 TALLOC_CTX *_mem_save_count_0;
21430 if (flags & NDR_IN) {
21431 ZERO_STRUCT(r->out);
21433 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21434 NDR_PULL_ALLOC(ndr, r->in.handle);
21436 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21437 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21438 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21439 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21440 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
21441 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
21442 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21443 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21444 if (_ptr_buffer) {
21445 NDR_PULL_ALLOC(ndr, r->in.buffer);
21446 } else {
21447 r->in.buffer = NULL;
21449 if (r->in.buffer) {
21450 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21451 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21452 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21453 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21455 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21456 NDR_PULL_ALLOC(ndr, r->out.needed);
21457 ZERO_STRUCTP(r->out.needed);
21458 NDR_PULL_ALLOC(ndr, r->out.count);
21459 ZERO_STRUCTP(r->out.count);
21461 if (flags & NDR_OUT) {
21462 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21463 if (_ptr_info) {
21464 NDR_PULL_ALLOC(ndr, r->out.info);
21465 } else {
21466 r->out.info = NULL;
21468 if (r->out.info) {
21469 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21470 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21471 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
21472 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21474 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21475 NDR_PULL_ALLOC(ndr, r->out.needed);
21477 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21478 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21479 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21480 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21481 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21482 NDR_PULL_ALLOC(ndr, r->out.count);
21484 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
21485 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
21486 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
21487 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
21488 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21490 return NDR_ERR_SUCCESS;
21493 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct __spoolss_EnumJobs *r)
21495 uint32_t cntr_info_0;
21496 if (flags & NDR_IN) {
21497 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21498 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
21500 if (flags & NDR_OUT) {
21501 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21502 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21503 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21505 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21506 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21509 return NDR_ERR_SUCCESS;
21512 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct __spoolss_EnumJobs *r)
21514 uint32_t cntr_info_0;
21515 TALLOC_CTX *_mem_save_info_0;
21516 if (flags & NDR_IN) {
21517 ZERO_STRUCT(r->out);
21519 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21520 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
21522 if (flags & NDR_OUT) {
21523 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
21524 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21525 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21526 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21527 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21528 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21530 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21531 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21533 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21535 return NDR_ERR_SUCCESS;
21538 _PUBLIC_ void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumJobs *r)
21540 uint32_t cntr_info_2;
21541 ndr_print_struct(ndr, name, "spoolss_EnumJobs");
21542 ndr->depth++;
21543 if (flags & NDR_SET_VALUES) {
21544 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21546 if (flags & NDR_IN) {
21547 ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
21548 ndr->depth++;
21549 ndr_print_ptr(ndr, "handle", r->in.handle);
21550 ndr->depth++;
21551 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21552 ndr->depth--;
21553 ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
21554 ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
21555 ndr_print_uint32(ndr, "level", r->in.level);
21556 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21557 ndr->depth++;
21558 if (r->in.buffer) {
21559 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21561 ndr->depth--;
21562 ndr_print_uint32(ndr, "offered", r->in.offered);
21563 ndr->depth--;
21565 if (flags & NDR_OUT) {
21566 ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
21567 ndr->depth++;
21568 ndr_print_ptr(ndr, "count", r->out.count);
21569 ndr->depth++;
21570 ndr_print_uint32(ndr, "count", *r->out.count);
21571 ndr->depth--;
21572 ndr_print_ptr(ndr, "info", r->out.info);
21573 ndr->depth++;
21574 ndr_print_ptr(ndr, "info", *r->out.info);
21575 ndr->depth++;
21576 if (*r->out.info) {
21577 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
21578 ndr->depth++;
21579 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
21580 char *idx_2=NULL;
21581 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
21582 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
21583 ndr_print_spoolss_JobInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
21584 free(idx_2);
21587 ndr->depth--;
21589 ndr->depth--;
21590 ndr->depth--;
21591 ndr_print_ptr(ndr, "needed", r->out.needed);
21592 ndr->depth++;
21593 ndr_print_uint32(ndr, "needed", *r->out.needed);
21594 ndr->depth--;
21595 ndr_print_WERROR(ndr, "result", r->out.result);
21596 ndr->depth--;
21598 ndr->depth--;
21601 static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinter *r)
21603 if (flags & NDR_IN) {
21604 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21605 if (r->in.server) {
21606 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21607 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21608 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21609 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21611 if (r->in.info_ctr == NULL) {
21612 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21614 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21615 if (r->in.devmode_ctr == NULL) {
21616 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21618 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21619 if (r->in.secdesc_ctr == NULL) {
21620 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21622 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21624 if (flags & NDR_OUT) {
21625 if (r->out.handle == NULL) {
21626 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21628 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21629 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21631 return NDR_ERR_SUCCESS;
21634 static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinter *r)
21636 uint32_t _ptr_server;
21637 TALLOC_CTX *_mem_save_server_0;
21638 TALLOC_CTX *_mem_save_info_ctr_0;
21639 TALLOC_CTX *_mem_save_devmode_ctr_0;
21640 TALLOC_CTX *_mem_save_secdesc_ctr_0;
21641 TALLOC_CTX *_mem_save_handle_0;
21642 if (flags & NDR_IN) {
21643 ZERO_STRUCT(r->out);
21645 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21646 if (_ptr_server) {
21647 NDR_PULL_ALLOC(ndr, r->in.server);
21648 } else {
21649 r->in.server = NULL;
21651 if (r->in.server) {
21652 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21653 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21654 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21655 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21656 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21657 return 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));
21659 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21660 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21661 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21663 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21664 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
21666 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21667 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
21668 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21669 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21670 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21671 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
21673 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21674 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
21675 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21676 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21677 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21678 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
21680 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21681 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
21682 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21683 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21684 NDR_PULL_ALLOC(ndr, r->out.handle);
21685 ZERO_STRUCTP(r->out.handle);
21687 if (flags & NDR_OUT) {
21688 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21689 NDR_PULL_ALLOC(ndr, r->out.handle);
21691 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21692 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
21693 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21694 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21695 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21697 return NDR_ERR_SUCCESS;
21700 _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinter *r)
21702 ndr_print_struct(ndr, name, "spoolss_AddPrinter");
21703 ndr->depth++;
21704 if (flags & NDR_SET_VALUES) {
21705 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21707 if (flags & NDR_IN) {
21708 ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
21709 ndr->depth++;
21710 ndr_print_ptr(ndr, "server", r->in.server);
21711 ndr->depth++;
21712 if (r->in.server) {
21713 ndr_print_string(ndr, "server", r->in.server);
21715 ndr->depth--;
21716 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
21717 ndr->depth++;
21718 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
21719 ndr->depth--;
21720 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
21721 ndr->depth++;
21722 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
21723 ndr->depth--;
21724 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21725 ndr->depth++;
21726 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21727 ndr->depth--;
21728 ndr->depth--;
21730 if (flags & NDR_OUT) {
21731 ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
21732 ndr->depth++;
21733 ndr_print_ptr(ndr, "handle", r->out.handle);
21734 ndr->depth++;
21735 ndr_print_policy_handle(ndr, "handle", r->out.handle);
21736 ndr->depth--;
21737 ndr_print_WERROR(ndr, "result", r->out.result);
21738 ndr->depth--;
21740 ndr->depth--;
21743 static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinter *r)
21745 if (flags & NDR_IN) {
21746 if (r->in.handle == NULL) {
21747 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21749 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21751 if (flags & NDR_OUT) {
21752 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21754 return NDR_ERR_SUCCESS;
21757 static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinter *r)
21759 TALLOC_CTX *_mem_save_handle_0;
21760 if (flags & NDR_IN) {
21761 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21762 NDR_PULL_ALLOC(ndr, r->in.handle);
21764 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21765 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21766 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21767 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21769 if (flags & NDR_OUT) {
21770 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21772 return NDR_ERR_SUCCESS;
21775 _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinter *r)
21777 ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
21778 ndr->depth++;
21779 if (flags & NDR_SET_VALUES) {
21780 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21782 if (flags & NDR_IN) {
21783 ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
21784 ndr->depth++;
21785 ndr_print_ptr(ndr, "handle", r->in.handle);
21786 ndr->depth++;
21787 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21788 ndr->depth--;
21789 ndr->depth--;
21791 if (flags & NDR_OUT) {
21792 ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
21793 ndr->depth++;
21794 ndr_print_WERROR(ndr, "result", r->out.result);
21795 ndr->depth--;
21797 ndr->depth--;
21800 static enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinter *r)
21802 if (flags & NDR_IN) {
21803 if (r->in.handle == NULL) {
21804 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21806 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21807 if (r->in.info_ctr == NULL) {
21808 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21810 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21811 if (r->in.devmode_ctr == NULL) {
21812 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21814 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21815 if (r->in.secdesc_ctr == NULL) {
21816 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21818 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21819 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
21821 if (flags & NDR_OUT) {
21822 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21824 return NDR_ERR_SUCCESS;
21827 static enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinter *r)
21829 TALLOC_CTX *_mem_save_handle_0;
21830 TALLOC_CTX *_mem_save_info_ctr_0;
21831 TALLOC_CTX *_mem_save_devmode_ctr_0;
21832 TALLOC_CTX *_mem_save_secdesc_ctr_0;
21833 if (flags & NDR_IN) {
21834 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21835 NDR_PULL_ALLOC(ndr, r->in.handle);
21837 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21838 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21839 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21840 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21841 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21842 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
21844 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21845 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
21846 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21847 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21848 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21849 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
21851 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21852 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
21853 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21854 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21855 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21856 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
21858 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21859 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
21860 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21861 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21862 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
21864 if (flags & NDR_OUT) {
21865 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21867 return NDR_ERR_SUCCESS;
21870 _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinter *r)
21872 ndr_print_struct(ndr, name, "spoolss_SetPrinter");
21873 ndr->depth++;
21874 if (flags & NDR_SET_VALUES) {
21875 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21877 if (flags & NDR_IN) {
21878 ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
21879 ndr->depth++;
21880 ndr_print_ptr(ndr, "handle", r->in.handle);
21881 ndr->depth++;
21882 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21883 ndr->depth--;
21884 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
21885 ndr->depth++;
21886 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
21887 ndr->depth--;
21888 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
21889 ndr->depth++;
21890 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
21891 ndr->depth--;
21892 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21893 ndr->depth++;
21894 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21895 ndr->depth--;
21896 ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
21897 ndr->depth--;
21899 if (flags & NDR_OUT) {
21900 ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
21901 ndr->depth++;
21902 ndr_print_WERROR(ndr, "result", r->out.result);
21903 ndr->depth--;
21905 ndr->depth--;
21908 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinter *r)
21910 if (flags & NDR_IN) {
21911 if (r->in.handle == NULL) {
21912 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21914 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21915 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21916 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21917 if (r->in.buffer) {
21918 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21920 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21922 if (flags & NDR_OUT) {
21923 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21924 if (r->out.info) {
21926 struct ndr_push *_ndr_info;
21927 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21928 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21929 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21930 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21933 if (r->out.needed == NULL) {
21934 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21936 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21937 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21939 return NDR_ERR_SUCCESS;
21942 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinter *r)
21944 uint32_t _ptr_buffer;
21945 uint32_t _ptr_info;
21946 TALLOC_CTX *_mem_save_handle_0;
21947 TALLOC_CTX *_mem_save_buffer_0;
21948 TALLOC_CTX *_mem_save_info_0;
21949 TALLOC_CTX *_mem_save_needed_0;
21950 if (flags & NDR_IN) {
21951 ZERO_STRUCT(r->out);
21953 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21954 NDR_PULL_ALLOC(ndr, r->in.handle);
21956 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21957 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21958 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21959 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21960 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21961 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21962 if (_ptr_buffer) {
21963 NDR_PULL_ALLOC(ndr, r->in.buffer);
21964 } else {
21965 r->in.buffer = NULL;
21967 if (r->in.buffer) {
21968 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21969 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21970 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21971 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21973 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21974 NDR_PULL_ALLOC(ndr, r->out.needed);
21975 ZERO_STRUCTP(r->out.needed);
21977 if (flags & NDR_OUT) {
21978 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21979 if (_ptr_info) {
21980 NDR_PULL_ALLOC(ndr, r->out.info);
21981 } else {
21982 r->out.info = NULL;
21984 if (r->out.info) {
21985 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21986 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21988 struct ndr_pull *_ndr_info;
21989 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21990 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21991 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21992 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21994 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21996 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21997 NDR_PULL_ALLOC(ndr, r->out.needed);
21999 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22000 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22001 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22002 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22003 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22005 return NDR_ERR_SUCCESS;
22008 _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinter *r)
22010 ndr_print_struct(ndr, name, "spoolss_GetPrinter");
22011 ndr->depth++;
22012 if (flags & NDR_SET_VALUES) {
22013 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22015 if (flags & NDR_IN) {
22016 ndr_print_struct(ndr, "in", "spoolss_GetPrinter");
22017 ndr->depth++;
22018 ndr_print_ptr(ndr, "handle", r->in.handle);
22019 ndr->depth++;
22020 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22021 ndr->depth--;
22022 ndr_print_uint32(ndr, "level", r->in.level);
22023 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22024 ndr->depth++;
22025 if (r->in.buffer) {
22026 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22028 ndr->depth--;
22029 ndr_print_uint32(ndr, "offered", r->in.offered);
22030 ndr->depth--;
22032 if (flags & NDR_OUT) {
22033 ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
22034 ndr->depth++;
22035 ndr_print_ptr(ndr, "info", r->out.info);
22036 ndr->depth++;
22037 if (r->out.info) {
22038 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
22039 ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
22041 ndr->depth--;
22042 ndr_print_ptr(ndr, "needed", r->out.needed);
22043 ndr->depth++;
22044 ndr_print_uint32(ndr, "needed", *r->out.needed);
22045 ndr->depth--;
22046 ndr_print_WERROR(ndr, "result", r->out.result);
22047 ndr->depth--;
22049 ndr->depth--;
22052 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriver *r)
22054 if (flags & NDR_IN) {
22055 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
22056 if (r->in.servername) {
22057 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22058 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22059 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22060 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22062 if (r->in.info_ctr == NULL) {
22063 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22065 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
22067 if (flags & NDR_OUT) {
22068 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22070 return NDR_ERR_SUCCESS;
22073 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriver *r)
22075 uint32_t _ptr_servername;
22076 TALLOC_CTX *_mem_save_servername_0;
22077 TALLOC_CTX *_mem_save_info_ctr_0;
22078 if (flags & NDR_IN) {
22079 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
22080 if (_ptr_servername) {
22081 NDR_PULL_ALLOC(ndr, r->in.servername);
22082 } else {
22083 r->in.servername = NULL;
22085 if (r->in.servername) {
22086 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
22087 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
22088 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
22089 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
22090 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
22091 return 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));
22093 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
22094 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
22095 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
22097 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22098 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
22100 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
22101 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
22102 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
22103 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
22105 if (flags & NDR_OUT) {
22106 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22108 return NDR_ERR_SUCCESS;
22111 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriver *r)
22113 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
22114 ndr->depth++;
22115 if (flags & NDR_SET_VALUES) {
22116 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22118 if (flags & NDR_IN) {
22119 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
22120 ndr->depth++;
22121 ndr_print_ptr(ndr, "servername", r->in.servername);
22122 ndr->depth++;
22123 if (r->in.servername) {
22124 ndr_print_string(ndr, "servername", r->in.servername);
22126 ndr->depth--;
22127 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
22128 ndr->depth++;
22129 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
22130 ndr->depth--;
22131 ndr->depth--;
22133 if (flags & NDR_OUT) {
22134 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
22135 ndr->depth++;
22136 ndr_print_WERROR(ndr, "result", r->out.result);
22137 ndr->depth--;
22139 ndr->depth--;
22142 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDrivers *r)
22144 if (flags & NDR_IN) {
22145 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22146 if (r->in.server) {
22147 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22148 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22149 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22150 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22152 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
22153 if (r->in.environment) {
22154 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22155 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22156 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22157 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22159 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22160 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22161 if (r->in.buffer) {
22162 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22164 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22166 if (flags & NDR_OUT) {
22167 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22168 if (r->out.info) {
22169 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
22171 if (r->out.needed == NULL) {
22172 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22174 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22175 if (r->out.count == NULL) {
22176 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22178 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22179 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22181 return NDR_ERR_SUCCESS;
22184 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDrivers *r)
22186 uint32_t _ptr_server;
22187 uint32_t _ptr_environment;
22188 uint32_t _ptr_buffer;
22189 uint32_t _ptr_info;
22190 TALLOC_CTX *_mem_save_server_0;
22191 TALLOC_CTX *_mem_save_environment_0;
22192 TALLOC_CTX *_mem_save_buffer_0;
22193 TALLOC_CTX *_mem_save_info_0;
22194 TALLOC_CTX *_mem_save_needed_0;
22195 TALLOC_CTX *_mem_save_count_0;
22196 if (flags & NDR_IN) {
22197 ZERO_STRUCT(r->out);
22199 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22200 if (_ptr_server) {
22201 NDR_PULL_ALLOC(ndr, r->in.server);
22202 } else {
22203 r->in.server = NULL;
22205 if (r->in.server) {
22206 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22207 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22208 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22209 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22210 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22211 return 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));
22213 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22214 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22215 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22217 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
22218 if (_ptr_environment) {
22219 NDR_PULL_ALLOC(ndr, r->in.environment);
22220 } else {
22221 r->in.environment = NULL;
22223 if (r->in.environment) {
22224 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
22225 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
22226 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
22227 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
22228 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
22229 return 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));
22231 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
22232 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
22233 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
22235 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22236 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22237 if (_ptr_buffer) {
22238 NDR_PULL_ALLOC(ndr, r->in.buffer);
22239 } else {
22240 r->in.buffer = NULL;
22242 if (r->in.buffer) {
22243 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22244 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22245 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22246 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22248 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22249 NDR_PULL_ALLOC(ndr, r->out.needed);
22250 ZERO_STRUCTP(r->out.needed);
22251 NDR_PULL_ALLOC(ndr, r->out.count);
22252 ZERO_STRUCTP(r->out.count);
22254 if (flags & NDR_OUT) {
22255 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22256 if (_ptr_info) {
22257 NDR_PULL_ALLOC(ndr, r->out.info);
22258 } else {
22259 r->out.info = NULL;
22261 if (r->out.info) {
22262 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22263 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22264 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
22265 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22267 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22268 NDR_PULL_ALLOC(ndr, r->out.needed);
22270 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22271 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22272 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22273 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22274 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22275 NDR_PULL_ALLOC(ndr, r->out.count);
22277 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22278 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22279 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22280 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22281 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22283 return NDR_ERR_SUCCESS;
22286 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDrivers *r)
22288 uint32_t cntr_info_0;
22289 if (flags & NDR_IN) {
22290 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22291 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
22293 if (flags & NDR_OUT) {
22294 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22295 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22296 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22298 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22299 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22302 return NDR_ERR_SUCCESS;
22305 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDrivers *r)
22307 uint32_t cntr_info_0;
22308 TALLOC_CTX *_mem_save_info_0;
22309 if (flags & NDR_IN) {
22310 ZERO_STRUCT(r->out);
22312 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22313 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
22315 if (flags & NDR_OUT) {
22316 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
22317 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22318 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22319 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22320 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22321 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22323 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22324 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22326 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22328 return NDR_ERR_SUCCESS;
22331 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDrivers *r)
22333 uint32_t cntr_info_2;
22334 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
22335 ndr->depth++;
22336 if (flags & NDR_SET_VALUES) {
22337 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22339 if (flags & NDR_IN) {
22340 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
22341 ndr->depth++;
22342 ndr_print_ptr(ndr, "server", r->in.server);
22343 ndr->depth++;
22344 if (r->in.server) {
22345 ndr_print_string(ndr, "server", r->in.server);
22347 ndr->depth--;
22348 ndr_print_ptr(ndr, "environment", r->in.environment);
22349 ndr->depth++;
22350 if (r->in.environment) {
22351 ndr_print_string(ndr, "environment", r->in.environment);
22353 ndr->depth--;
22354 ndr_print_uint32(ndr, "level", r->in.level);
22355 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22356 ndr->depth++;
22357 if (r->in.buffer) {
22358 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22360 ndr->depth--;
22361 ndr_print_uint32(ndr, "offered", r->in.offered);
22362 ndr->depth--;
22364 if (flags & NDR_OUT) {
22365 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
22366 ndr->depth++;
22367 ndr_print_ptr(ndr, "count", r->out.count);
22368 ndr->depth++;
22369 ndr_print_uint32(ndr, "count", *r->out.count);
22370 ndr->depth--;
22371 ndr_print_ptr(ndr, "info", r->out.info);
22372 ndr->depth++;
22373 ndr_print_ptr(ndr, "info", *r->out.info);
22374 ndr->depth++;
22375 if (*r->out.info) {
22376 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
22377 ndr->depth++;
22378 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
22379 char *idx_2=NULL;
22380 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
22381 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
22382 ndr_print_spoolss_DriverInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
22383 free(idx_2);
22386 ndr->depth--;
22388 ndr->depth--;
22389 ndr->depth--;
22390 ndr_print_ptr(ndr, "needed", r->out.needed);
22391 ndr->depth++;
22392 ndr_print_uint32(ndr, "needed", *r->out.needed);
22393 ndr->depth--;
22394 ndr_print_WERROR(ndr, "result", r->out.result);
22395 ndr->depth--;
22397 ndr->depth--;
22400 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver *r)
22402 if (flags & NDR_IN) {
22403 if (r->in.handle == NULL) {
22404 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22406 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22407 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
22408 if (r->in.architecture) {
22409 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22410 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22411 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22412 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22414 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22415 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22416 if (r->in.buffer) {
22417 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22419 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22421 if (flags & NDR_OUT) {
22422 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22423 if (r->out.info) {
22425 struct ndr_push *_ndr_info;
22426 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22427 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
22428 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
22429 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22432 if (r->out.needed == NULL) {
22433 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22435 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22436 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22438 return NDR_ERR_SUCCESS;
22441 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver *r)
22443 uint32_t _ptr_architecture;
22444 uint32_t _ptr_buffer;
22445 uint32_t _ptr_info;
22446 TALLOC_CTX *_mem_save_handle_0;
22447 TALLOC_CTX *_mem_save_architecture_0;
22448 TALLOC_CTX *_mem_save_buffer_0;
22449 TALLOC_CTX *_mem_save_info_0;
22450 TALLOC_CTX *_mem_save_needed_0;
22451 if (flags & NDR_IN) {
22452 ZERO_STRUCT(r->out);
22454 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22455 NDR_PULL_ALLOC(ndr, r->in.handle);
22457 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22458 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22459 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22460 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22461 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
22462 if (_ptr_architecture) {
22463 NDR_PULL_ALLOC(ndr, r->in.architecture);
22464 } else {
22465 r->in.architecture = NULL;
22467 if (r->in.architecture) {
22468 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
22469 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
22470 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
22471 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
22472 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
22473 return 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));
22475 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
22476 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
22477 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
22479 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22480 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22481 if (_ptr_buffer) {
22482 NDR_PULL_ALLOC(ndr, r->in.buffer);
22483 } else {
22484 r->in.buffer = NULL;
22486 if (r->in.buffer) {
22487 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22488 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22489 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22490 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22492 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22493 NDR_PULL_ALLOC(ndr, r->out.needed);
22494 ZERO_STRUCTP(r->out.needed);
22496 if (flags & NDR_OUT) {
22497 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22498 if (_ptr_info) {
22499 NDR_PULL_ALLOC(ndr, r->out.info);
22500 } else {
22501 r->out.info = NULL;
22503 if (r->out.info) {
22504 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22505 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22507 struct ndr_pull *_ndr_info;
22508 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22509 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
22510 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
22511 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22513 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22515 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22516 NDR_PULL_ALLOC(ndr, r->out.needed);
22518 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22519 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22520 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22521 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22522 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22524 return NDR_ERR_SUCCESS;
22527 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver *r)
22529 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
22530 ndr->depth++;
22531 if (flags & NDR_SET_VALUES) {
22532 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22534 if (flags & NDR_IN) {
22535 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
22536 ndr->depth++;
22537 ndr_print_ptr(ndr, "handle", r->in.handle);
22538 ndr->depth++;
22539 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22540 ndr->depth--;
22541 ndr_print_ptr(ndr, "architecture", r->in.architecture);
22542 ndr->depth++;
22543 if (r->in.architecture) {
22544 ndr_print_string(ndr, "architecture", r->in.architecture);
22546 ndr->depth--;
22547 ndr_print_uint32(ndr, "level", r->in.level);
22548 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22549 ndr->depth++;
22550 if (r->in.buffer) {
22551 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22553 ndr->depth--;
22554 ndr_print_uint32(ndr, "offered", r->in.offered);
22555 ndr->depth--;
22557 if (flags & NDR_OUT) {
22558 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
22559 ndr->depth++;
22560 ndr_print_ptr(ndr, "info", r->out.info);
22561 ndr->depth++;
22562 if (r->out.info) {
22563 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
22564 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
22566 ndr->depth--;
22567 ndr_print_ptr(ndr, "needed", r->out.needed);
22568 ndr->depth++;
22569 ndr_print_uint32(ndr, "needed", *r->out.needed);
22570 ndr->depth--;
22571 ndr_print_WERROR(ndr, "result", r->out.result);
22572 ndr->depth--;
22574 ndr->depth--;
22577 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
22579 if (flags & NDR_IN) {
22580 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22581 if (r->in.server) {
22582 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22583 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22584 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22585 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22587 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
22588 if (r->in.environment) {
22589 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22590 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22591 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22592 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22594 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22595 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22596 if (r->in.buffer) {
22597 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22599 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22601 if (flags & NDR_OUT) {
22602 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22603 if (r->out.info) {
22605 struct ndr_push *_ndr_info;
22606 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22607 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
22608 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
22609 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22612 if (r->out.needed == NULL) {
22613 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22615 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22616 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22618 return NDR_ERR_SUCCESS;
22621 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverDirectory *r)
22623 uint32_t _ptr_server;
22624 uint32_t _ptr_environment;
22625 uint32_t _ptr_buffer;
22626 uint32_t _ptr_info;
22627 TALLOC_CTX *_mem_save_server_0;
22628 TALLOC_CTX *_mem_save_environment_0;
22629 TALLOC_CTX *_mem_save_buffer_0;
22630 TALLOC_CTX *_mem_save_info_0;
22631 TALLOC_CTX *_mem_save_needed_0;
22632 if (flags & NDR_IN) {
22633 ZERO_STRUCT(r->out);
22635 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22636 if (_ptr_server) {
22637 NDR_PULL_ALLOC(ndr, r->in.server);
22638 } else {
22639 r->in.server = NULL;
22641 if (r->in.server) {
22642 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22643 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22644 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22645 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22646 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22647 return 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));
22649 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22650 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22651 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22653 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
22654 if (_ptr_environment) {
22655 NDR_PULL_ALLOC(ndr, r->in.environment);
22656 } else {
22657 r->in.environment = NULL;
22659 if (r->in.environment) {
22660 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
22661 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
22662 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
22663 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
22664 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
22665 return 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));
22667 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
22668 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
22669 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
22671 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22672 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22673 if (_ptr_buffer) {
22674 NDR_PULL_ALLOC(ndr, r->in.buffer);
22675 } else {
22676 r->in.buffer = NULL;
22678 if (r->in.buffer) {
22679 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22680 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22681 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22682 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22684 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22685 NDR_PULL_ALLOC(ndr, r->out.needed);
22686 ZERO_STRUCTP(r->out.needed);
22688 if (flags & NDR_OUT) {
22689 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22690 if (_ptr_info) {
22691 NDR_PULL_ALLOC(ndr, r->out.info);
22692 } else {
22693 r->out.info = NULL;
22695 if (r->out.info) {
22696 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22697 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22699 struct ndr_pull *_ndr_info;
22700 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22701 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
22702 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
22703 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22705 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22707 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22708 NDR_PULL_ALLOC(ndr, r->out.needed);
22710 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22711 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22712 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22713 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22714 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22716 return NDR_ERR_SUCCESS;
22719 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
22721 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
22722 ndr->depth++;
22723 if (flags & NDR_SET_VALUES) {
22724 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22726 if (flags & NDR_IN) {
22727 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
22728 ndr->depth++;
22729 ndr_print_ptr(ndr, "server", r->in.server);
22730 ndr->depth++;
22731 if (r->in.server) {
22732 ndr_print_string(ndr, "server", r->in.server);
22734 ndr->depth--;
22735 ndr_print_ptr(ndr, "environment", r->in.environment);
22736 ndr->depth++;
22737 if (r->in.environment) {
22738 ndr_print_string(ndr, "environment", r->in.environment);
22740 ndr->depth--;
22741 ndr_print_uint32(ndr, "level", r->in.level);
22742 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22743 ndr->depth++;
22744 if (r->in.buffer) {
22745 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22747 ndr->depth--;
22748 ndr_print_uint32(ndr, "offered", r->in.offered);
22749 ndr->depth--;
22751 if (flags & NDR_OUT) {
22752 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
22753 ndr->depth++;
22754 ndr_print_ptr(ndr, "info", r->out.info);
22755 ndr->depth++;
22756 if (r->out.info) {
22757 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
22758 ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
22760 ndr->depth--;
22761 ndr_print_ptr(ndr, "needed", r->out.needed);
22762 ndr->depth++;
22763 ndr_print_uint32(ndr, "needed", *r->out.needed);
22764 ndr->depth--;
22765 ndr_print_WERROR(ndr, "result", r->out.result);
22766 ndr->depth--;
22768 ndr->depth--;
22771 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriver *r)
22773 if (flags & NDR_IN) {
22774 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22775 if (r->in.server) {
22776 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22777 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22778 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22779 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22781 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22782 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22783 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22784 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22785 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
22786 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22787 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
22788 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22790 if (flags & NDR_OUT) {
22791 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22793 return NDR_ERR_SUCCESS;
22796 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriver *r)
22798 uint32_t _ptr_server;
22799 TALLOC_CTX *_mem_save_server_0;
22800 if (flags & NDR_IN) {
22801 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22802 if (_ptr_server) {
22803 NDR_PULL_ALLOC(ndr, r->in.server);
22804 } else {
22805 r->in.server = NULL;
22807 if (r->in.server) {
22808 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22809 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22810 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22811 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22812 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22813 return 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));
22815 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22816 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22817 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22819 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
22820 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
22821 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
22822 return 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));
22824 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
22825 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
22826 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
22827 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
22828 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
22829 return 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));
22831 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
22832 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
22834 if (flags & NDR_OUT) {
22835 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22837 return NDR_ERR_SUCCESS;
22840 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriver *r)
22842 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
22843 ndr->depth++;
22844 if (flags & NDR_SET_VALUES) {
22845 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22847 if (flags & NDR_IN) {
22848 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
22849 ndr->depth++;
22850 ndr_print_ptr(ndr, "server", r->in.server);
22851 ndr->depth++;
22852 if (r->in.server) {
22853 ndr_print_string(ndr, "server", r->in.server);
22855 ndr->depth--;
22856 ndr_print_string(ndr, "architecture", r->in.architecture);
22857 ndr_print_string(ndr, "driver", r->in.driver);
22858 ndr->depth--;
22860 if (flags & NDR_OUT) {
22861 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
22862 ndr->depth++;
22863 ndr_print_WERROR(ndr, "result", r->out.result);
22864 ndr->depth--;
22866 ndr->depth--;
22869 static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProcessor *r)
22871 if (flags & NDR_IN) {
22872 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22873 if (r->in.server) {
22874 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22875 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22876 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22877 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22879 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22880 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22881 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22882 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22883 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
22884 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22885 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
22886 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));
22887 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
22888 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22889 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
22890 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));
22892 if (flags & NDR_OUT) {
22893 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22895 return NDR_ERR_SUCCESS;
22898 static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProcessor *r)
22900 uint32_t _ptr_server;
22901 TALLOC_CTX *_mem_save_server_0;
22902 if (flags & NDR_IN) {
22903 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22904 if (_ptr_server) {
22905 NDR_PULL_ALLOC(ndr, r->in.server);
22906 } else {
22907 r->in.server = NULL;
22909 if (r->in.server) {
22910 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22911 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22912 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22913 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22914 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22915 return 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));
22917 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22918 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22919 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22921 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
22922 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
22923 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
22924 return 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));
22926 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
22927 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
22928 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
22929 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
22930 if (ndr_get_array_length(ndr, &r->in.path_name) > ndr_get_array_size(ndr, &r->in.path_name)) {
22931 return 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));
22933 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t)));
22934 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));
22935 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
22936 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
22937 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
22938 return 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));
22940 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
22941 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));
22943 if (flags & NDR_OUT) {
22944 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22946 return NDR_ERR_SUCCESS;
22949 _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProcessor *r)
22951 ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
22952 ndr->depth++;
22953 if (flags & NDR_SET_VALUES) {
22954 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22956 if (flags & NDR_IN) {
22957 ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
22958 ndr->depth++;
22959 ndr_print_ptr(ndr, "server", r->in.server);
22960 ndr->depth++;
22961 if (r->in.server) {
22962 ndr_print_string(ndr, "server", r->in.server);
22964 ndr->depth--;
22965 ndr_print_string(ndr, "architecture", r->in.architecture);
22966 ndr_print_string(ndr, "path_name", r->in.path_name);
22967 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
22968 ndr->depth--;
22970 if (flags & NDR_OUT) {
22971 ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
22972 ndr->depth++;
22973 ndr_print_WERROR(ndr, "result", r->out.result);
22974 ndr->depth--;
22976 ndr->depth--;
22979 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcessors *r)
22981 if (flags & NDR_IN) {
22982 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
22983 if (r->in.servername) {
22984 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22985 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22986 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22987 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22989 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
22990 if (r->in.environment) {
22991 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22992 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22993 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22994 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22996 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22997 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22998 if (r->in.buffer) {
22999 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23001 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23003 if (flags & NDR_OUT) {
23004 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23005 if (r->out.info) {
23006 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
23008 if (r->out.needed == NULL) {
23009 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23011 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23012 if (r->out.count == NULL) {
23013 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23015 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
23016 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23018 return NDR_ERR_SUCCESS;
23021 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessors *r)
23023 uint32_t _ptr_servername;
23024 uint32_t _ptr_environment;
23025 uint32_t _ptr_buffer;
23026 uint32_t _ptr_info;
23027 TALLOC_CTX *_mem_save_servername_0;
23028 TALLOC_CTX *_mem_save_environment_0;
23029 TALLOC_CTX *_mem_save_buffer_0;
23030 TALLOC_CTX *_mem_save_info_0;
23031 TALLOC_CTX *_mem_save_needed_0;
23032 TALLOC_CTX *_mem_save_count_0;
23033 if (flags & NDR_IN) {
23034 ZERO_STRUCT(r->out);
23036 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
23037 if (_ptr_servername) {
23038 NDR_PULL_ALLOC(ndr, r->in.servername);
23039 } else {
23040 r->in.servername = NULL;
23042 if (r->in.servername) {
23043 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
23044 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
23045 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
23046 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
23047 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
23048 return 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));
23050 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
23051 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
23052 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
23054 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
23055 if (_ptr_environment) {
23056 NDR_PULL_ALLOC(ndr, r->in.environment);
23057 } else {
23058 r->in.environment = NULL;
23060 if (r->in.environment) {
23061 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
23062 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
23063 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
23064 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
23065 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
23066 return 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));
23068 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
23069 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
23070 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
23072 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23073 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23074 if (_ptr_buffer) {
23075 NDR_PULL_ALLOC(ndr, r->in.buffer);
23076 } else {
23077 r->in.buffer = NULL;
23079 if (r->in.buffer) {
23080 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23081 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23082 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23083 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23085 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23086 NDR_PULL_ALLOC(ndr, r->out.needed);
23087 ZERO_STRUCTP(r->out.needed);
23088 NDR_PULL_ALLOC(ndr, r->out.count);
23089 ZERO_STRUCTP(r->out.count);
23091 if (flags & NDR_OUT) {
23092 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23093 if (_ptr_info) {
23094 NDR_PULL_ALLOC(ndr, r->out.info);
23095 } else {
23096 r->out.info = NULL;
23098 if (r->out.info) {
23099 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23100 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23101 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
23102 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23104 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23105 NDR_PULL_ALLOC(ndr, r->out.needed);
23107 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23108 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23109 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23110 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23111 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23112 NDR_PULL_ALLOC(ndr, r->out.count);
23114 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
23115 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
23116 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
23117 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
23118 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23120 return NDR_ERR_SUCCESS;
23123 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcessors *r)
23125 uint32_t cntr_info_0;
23126 if (flags & NDR_IN) {
23127 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23128 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
23130 if (flags & NDR_OUT) {
23131 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23132 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23133 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23135 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23136 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23139 return NDR_ERR_SUCCESS;
23142 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessors *r)
23144 uint32_t cntr_info_0;
23145 TALLOC_CTX *_mem_save_info_0;
23146 if (flags & NDR_IN) {
23147 ZERO_STRUCT(r->out);
23149 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23150 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
23152 if (flags & NDR_OUT) {
23153 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
23154 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23155 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23156 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23157 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23158 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23160 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23161 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23163 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23165 return NDR_ERR_SUCCESS;
23168 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcessors *r)
23170 uint32_t cntr_info_2;
23171 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
23172 ndr->depth++;
23173 if (flags & NDR_SET_VALUES) {
23174 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23176 if (flags & NDR_IN) {
23177 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
23178 ndr->depth++;
23179 ndr_print_ptr(ndr, "servername", r->in.servername);
23180 ndr->depth++;
23181 if (r->in.servername) {
23182 ndr_print_string(ndr, "servername", r->in.servername);
23184 ndr->depth--;
23185 ndr_print_ptr(ndr, "environment", r->in.environment);
23186 ndr->depth++;
23187 if (r->in.environment) {
23188 ndr_print_string(ndr, "environment", r->in.environment);
23190 ndr->depth--;
23191 ndr_print_uint32(ndr, "level", r->in.level);
23192 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23193 ndr->depth++;
23194 if (r->in.buffer) {
23195 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23197 ndr->depth--;
23198 ndr_print_uint32(ndr, "offered", r->in.offered);
23199 ndr->depth--;
23201 if (flags & NDR_OUT) {
23202 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
23203 ndr->depth++;
23204 ndr_print_ptr(ndr, "count", r->out.count);
23205 ndr->depth++;
23206 ndr_print_uint32(ndr, "count", *r->out.count);
23207 ndr->depth--;
23208 ndr_print_ptr(ndr, "info", r->out.info);
23209 ndr->depth++;
23210 ndr_print_ptr(ndr, "info", *r->out.info);
23211 ndr->depth++;
23212 if (*r->out.info) {
23213 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
23214 ndr->depth++;
23215 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
23216 char *idx_2=NULL;
23217 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
23218 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
23219 ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
23220 free(idx_2);
23223 ndr->depth--;
23225 ndr->depth--;
23226 ndr->depth--;
23227 ndr_print_ptr(ndr, "needed", r->out.needed);
23228 ndr->depth++;
23229 ndr_print_uint32(ndr, "needed", *r->out.needed);
23230 ndr->depth--;
23231 ndr_print_WERROR(ndr, "result", r->out.result);
23232 ndr->depth--;
23234 ndr->depth--;
23237 static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
23239 if (flags & NDR_IN) {
23240 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
23241 if (r->in.server) {
23242 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
23243 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23244 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
23245 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23247 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
23248 if (r->in.environment) {
23249 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
23250 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23251 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
23252 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23254 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23255 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23256 if (r->in.buffer) {
23257 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23259 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23261 if (flags & NDR_OUT) {
23262 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23263 if (r->out.info) {
23265 struct ndr_push *_ndr_info;
23266 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
23267 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
23268 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
23269 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
23272 if (r->out.needed == NULL) {
23273 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23275 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23276 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23278 return NDR_ERR_SUCCESS;
23281 static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrintProcessorDirectory *r)
23283 uint32_t _ptr_server;
23284 uint32_t _ptr_environment;
23285 uint32_t _ptr_buffer;
23286 uint32_t _ptr_info;
23287 TALLOC_CTX *_mem_save_server_0;
23288 TALLOC_CTX *_mem_save_environment_0;
23289 TALLOC_CTX *_mem_save_buffer_0;
23290 TALLOC_CTX *_mem_save_info_0;
23291 TALLOC_CTX *_mem_save_needed_0;
23292 if (flags & NDR_IN) {
23293 ZERO_STRUCT(r->out);
23295 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
23296 if (_ptr_server) {
23297 NDR_PULL_ALLOC(ndr, r->in.server);
23298 } else {
23299 r->in.server = NULL;
23301 if (r->in.server) {
23302 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
23303 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
23304 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
23305 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
23306 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
23307 return 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));
23309 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
23310 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
23311 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
23313 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
23314 if (_ptr_environment) {
23315 NDR_PULL_ALLOC(ndr, r->in.environment);
23316 } else {
23317 r->in.environment = NULL;
23319 if (r->in.environment) {
23320 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
23321 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
23322 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
23323 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
23324 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
23325 return 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));
23327 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
23328 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
23329 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
23331 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23332 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23333 if (_ptr_buffer) {
23334 NDR_PULL_ALLOC(ndr, r->in.buffer);
23335 } else {
23336 r->in.buffer = NULL;
23338 if (r->in.buffer) {
23339 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23340 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23341 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23342 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23344 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23345 NDR_PULL_ALLOC(ndr, r->out.needed);
23346 ZERO_STRUCTP(r->out.needed);
23348 if (flags & NDR_OUT) {
23349 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23350 if (_ptr_info) {
23351 NDR_PULL_ALLOC(ndr, r->out.info);
23352 } else {
23353 r->out.info = NULL;
23355 if (r->out.info) {
23356 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23357 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23359 struct ndr_pull *_ndr_info;
23360 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
23361 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
23362 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
23363 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
23365 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23367 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23368 NDR_PULL_ALLOC(ndr, r->out.needed);
23370 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23371 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23372 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23373 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23374 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23376 return NDR_ERR_SUCCESS;
23379 _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
23381 ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
23382 ndr->depth++;
23383 if (flags & NDR_SET_VALUES) {
23384 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23386 if (flags & NDR_IN) {
23387 ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
23388 ndr->depth++;
23389 ndr_print_ptr(ndr, "server", r->in.server);
23390 ndr->depth++;
23391 if (r->in.server) {
23392 ndr_print_string(ndr, "server", r->in.server);
23394 ndr->depth--;
23395 ndr_print_ptr(ndr, "environment", r->in.environment);
23396 ndr->depth++;
23397 if (r->in.environment) {
23398 ndr_print_string(ndr, "environment", r->in.environment);
23400 ndr->depth--;
23401 ndr_print_uint32(ndr, "level", r->in.level);
23402 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23403 ndr->depth++;
23404 if (r->in.buffer) {
23405 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23407 ndr->depth--;
23408 ndr_print_uint32(ndr, "offered", r->in.offered);
23409 ndr->depth--;
23411 if (flags & NDR_OUT) {
23412 ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
23413 ndr->depth++;
23414 ndr_print_ptr(ndr, "info", r->out.info);
23415 ndr->depth++;
23416 if (r->out.info) {
23417 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
23418 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr, "info", r->out.info);
23420 ndr->depth--;
23421 ndr_print_ptr(ndr, "needed", r->out.needed);
23422 ndr->depth++;
23423 ndr_print_uint32(ndr, "needed", *r->out.needed);
23424 ndr->depth--;
23425 ndr_print_WERROR(ndr, "result", r->out.result);
23426 ndr->depth--;
23428 ndr->depth--;
23431 static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartDocPrinter *r)
23433 if (flags & NDR_IN) {
23434 if (r->in.handle == NULL) {
23435 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23437 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23438 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23439 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
23440 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23442 if (flags & NDR_OUT) {
23443 if (r->out.job_id == NULL) {
23444 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23446 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
23447 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23449 return NDR_ERR_SUCCESS;
23452 static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartDocPrinter *r)
23454 TALLOC_CTX *_mem_save_handle_0;
23455 TALLOC_CTX *_mem_save_job_id_0;
23456 if (flags & NDR_IN) {
23457 ZERO_STRUCT(r->out);
23459 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23460 NDR_PULL_ALLOC(ndr, r->in.handle);
23462 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23463 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23464 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23465 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23466 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23467 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
23468 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23469 NDR_PULL_ALLOC(ndr, r->out.job_id);
23470 ZERO_STRUCTP(r->out.job_id);
23472 if (flags & NDR_OUT) {
23473 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23474 NDR_PULL_ALLOC(ndr, r->out.job_id);
23476 _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
23477 NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
23478 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
23479 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
23480 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23482 return NDR_ERR_SUCCESS;
23485 _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartDocPrinter *r)
23487 ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
23488 ndr->depth++;
23489 if (flags & NDR_SET_VALUES) {
23490 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23492 if (flags & NDR_IN) {
23493 ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
23494 ndr->depth++;
23495 ndr_print_ptr(ndr, "handle", r->in.handle);
23496 ndr->depth++;
23497 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23498 ndr->depth--;
23499 ndr_print_uint32(ndr, "level", r->in.level);
23500 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
23501 ndr_print_spoolss_DocumentInfo(ndr, "info", &r->in.info);
23502 ndr->depth--;
23504 if (flags & NDR_OUT) {
23505 ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
23506 ndr->depth++;
23507 ndr_print_ptr(ndr, "job_id", r->out.job_id);
23508 ndr->depth++;
23509 ndr_print_uint32(ndr, "job_id", *r->out.job_id);
23510 ndr->depth--;
23511 ndr_print_WERROR(ndr, "result", r->out.result);
23512 ndr->depth--;
23514 ndr->depth--;
23517 static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartPagePrinter *r)
23519 if (flags & NDR_IN) {
23520 if (r->in.handle == NULL) {
23521 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23523 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23525 if (flags & NDR_OUT) {
23526 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23528 return NDR_ERR_SUCCESS;
23531 static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartPagePrinter *r)
23533 TALLOC_CTX *_mem_save_handle_0;
23534 if (flags & NDR_IN) {
23535 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23536 NDR_PULL_ALLOC(ndr, r->in.handle);
23538 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23539 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23540 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23541 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23543 if (flags & NDR_OUT) {
23544 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23546 return NDR_ERR_SUCCESS;
23549 _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartPagePrinter *r)
23551 ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
23552 ndr->depth++;
23553 if (flags & NDR_SET_VALUES) {
23554 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23556 if (flags & NDR_IN) {
23557 ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
23558 ndr->depth++;
23559 ndr_print_ptr(ndr, "handle", r->in.handle);
23560 ndr->depth++;
23561 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23562 ndr->depth--;
23563 ndr->depth--;
23565 if (flags & NDR_OUT) {
23566 ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
23567 ndr->depth++;
23568 ndr_print_WERROR(ndr, "result", r->out.result);
23569 ndr->depth--;
23571 ndr->depth--;
23574 static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, int flags, const struct spoolss_WritePrinter *r)
23576 if (flags & NDR_IN) {
23577 if (r->in.handle == NULL) {
23578 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23580 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23581 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
23582 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
23584 if (flags & NDR_OUT) {
23585 if (r->out.num_written == NULL) {
23586 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23588 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_written));
23589 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23591 return NDR_ERR_SUCCESS;
23594 static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, int flags, struct spoolss_WritePrinter *r)
23596 TALLOC_CTX *_mem_save_handle_0;
23597 TALLOC_CTX *_mem_save_num_written_0;
23598 if (flags & NDR_IN) {
23599 ZERO_STRUCT(r->out);
23601 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23602 NDR_PULL_ALLOC(ndr, r->in.handle);
23604 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23605 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23606 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23607 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23608 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
23609 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
23610 NDR_PULL_ALLOC(ndr, r->out.num_written);
23611 ZERO_STRUCTP(r->out.num_written);
23613 if (flags & NDR_OUT) {
23614 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23615 NDR_PULL_ALLOC(ndr, r->out.num_written);
23617 _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
23618 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
23619 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
23620 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
23621 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23623 return NDR_ERR_SUCCESS;
23626 _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WritePrinter *r)
23628 ndr_print_struct(ndr, name, "spoolss_WritePrinter");
23629 ndr->depth++;
23630 if (flags & NDR_SET_VALUES) {
23631 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23633 if (flags & NDR_IN) {
23634 ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
23635 ndr->depth++;
23636 ndr_print_ptr(ndr, "handle", r->in.handle);
23637 ndr->depth++;
23638 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23639 ndr->depth--;
23640 ndr_print_DATA_BLOB(ndr, "data", r->in.data);
23641 ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
23642 ndr->depth--;
23644 if (flags & NDR_OUT) {
23645 ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
23646 ndr->depth++;
23647 ndr_print_ptr(ndr, "num_written", r->out.num_written);
23648 ndr->depth++;
23649 ndr_print_uint32(ndr, "num_written", *r->out.num_written);
23650 ndr->depth--;
23651 ndr_print_WERROR(ndr, "result", r->out.result);
23652 ndr->depth--;
23654 ndr->depth--;
23657 static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndPagePrinter *r)
23659 if (flags & NDR_IN) {
23660 if (r->in.handle == NULL) {
23661 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23663 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23665 if (flags & NDR_OUT) {
23666 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23668 return NDR_ERR_SUCCESS;
23671 static enum ndr_err_code ndr_pull_spoolss_EndPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndPagePrinter *r)
23673 TALLOC_CTX *_mem_save_handle_0;
23674 if (flags & NDR_IN) {
23675 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23676 NDR_PULL_ALLOC(ndr, r->in.handle);
23678 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23679 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23680 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23681 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23683 if (flags & NDR_OUT) {
23684 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23686 return NDR_ERR_SUCCESS;
23689 _PUBLIC_ void ndr_print_spoolss_EndPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndPagePrinter *r)
23691 ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
23692 ndr->depth++;
23693 if (flags & NDR_SET_VALUES) {
23694 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23696 if (flags & NDR_IN) {
23697 ndr_print_struct(ndr, "in", "spoolss_EndPagePrinter");
23698 ndr->depth++;
23699 ndr_print_ptr(ndr, "handle", r->in.handle);
23700 ndr->depth++;
23701 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23702 ndr->depth--;
23703 ndr->depth--;
23705 if (flags & NDR_OUT) {
23706 ndr_print_struct(ndr, "out", "spoolss_EndPagePrinter");
23707 ndr->depth++;
23708 ndr_print_WERROR(ndr, "result", r->out.result);
23709 ndr->depth--;
23711 ndr->depth--;
23714 static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AbortPrinter *r)
23716 if (flags & NDR_IN) {
23717 if (r->in.handle == NULL) {
23718 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23720 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23722 if (flags & NDR_OUT) {
23723 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23725 return NDR_ERR_SUCCESS;
23728 static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AbortPrinter *r)
23730 TALLOC_CTX *_mem_save_handle_0;
23731 if (flags & NDR_IN) {
23732 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23733 NDR_PULL_ALLOC(ndr, r->in.handle);
23735 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23736 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23737 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23738 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23740 if (flags & NDR_OUT) {
23741 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23743 return NDR_ERR_SUCCESS;
23746 _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AbortPrinter *r)
23748 ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
23749 ndr->depth++;
23750 if (flags & NDR_SET_VALUES) {
23751 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23753 if (flags & NDR_IN) {
23754 ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
23755 ndr->depth++;
23756 ndr_print_ptr(ndr, "handle", r->in.handle);
23757 ndr->depth++;
23758 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23759 ndr->depth--;
23760 ndr->depth--;
23762 if (flags & NDR_OUT) {
23763 ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
23764 ndr->depth++;
23765 ndr_print_WERROR(ndr, "result", r->out.result);
23766 ndr->depth--;
23768 ndr->depth--;
23771 static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReadPrinter *r)
23773 if (flags & NDR_IN) {
23774 if (r->in.handle == NULL) {
23775 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23777 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23778 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
23780 if (flags & NDR_OUT) {
23781 if (r->out.data == NULL) {
23782 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23784 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_size));
23785 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
23786 if (r->out._data_size == NULL) {
23787 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23789 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
23790 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23792 return NDR_ERR_SUCCESS;
23795 static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReadPrinter *r)
23797 TALLOC_CTX *_mem_save_handle_0;
23798 TALLOC_CTX *_mem_save__data_size_0;
23799 if (flags & NDR_IN) {
23800 ZERO_STRUCT(r->out);
23802 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23803 NDR_PULL_ALLOC(ndr, r->in.handle);
23805 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23806 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23807 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23808 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23809 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
23810 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
23811 memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
23812 NDR_PULL_ALLOC(ndr, r->out._data_size);
23813 ZERO_STRUCTP(r->out._data_size);
23815 if (flags & NDR_OUT) {
23816 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
23817 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23818 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
23820 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
23821 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23822 NDR_PULL_ALLOC(ndr, r->out._data_size);
23824 _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
23825 NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
23826 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
23827 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
23828 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23829 if (r->out.data) {
23830 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_size));
23833 return NDR_ERR_SUCCESS;
23836 _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReadPrinter *r)
23838 ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
23839 ndr->depth++;
23840 if (flags & NDR_SET_VALUES) {
23841 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23843 if (flags & NDR_IN) {
23844 ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
23845 ndr->depth++;
23846 ndr_print_ptr(ndr, "handle", r->in.handle);
23847 ndr->depth++;
23848 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23849 ndr->depth--;
23850 ndr_print_uint32(ndr, "data_size", r->in.data_size);
23851 ndr->depth--;
23853 if (flags & NDR_OUT) {
23854 ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
23855 ndr->depth++;
23856 ndr_print_ptr(ndr, "data", r->out.data);
23857 ndr->depth++;
23858 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
23859 ndr->depth--;
23860 ndr_print_ptr(ndr, "_data_size", r->out._data_size);
23861 ndr->depth++;
23862 ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
23863 ndr->depth--;
23864 ndr_print_WERROR(ndr, "result", r->out.result);
23865 ndr->depth--;
23867 ndr->depth--;
23870 static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndDocPrinter *r)
23872 if (flags & NDR_IN) {
23873 if (r->in.handle == NULL) {
23874 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23876 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23878 if (flags & NDR_OUT) {
23879 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23881 return NDR_ERR_SUCCESS;
23884 static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndDocPrinter *r)
23886 TALLOC_CTX *_mem_save_handle_0;
23887 if (flags & NDR_IN) {
23888 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23889 NDR_PULL_ALLOC(ndr, r->in.handle);
23891 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23892 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23893 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23894 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23896 if (flags & NDR_OUT) {
23897 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23899 return NDR_ERR_SUCCESS;
23902 _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndDocPrinter *r)
23904 ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
23905 ndr->depth++;
23906 if (flags & NDR_SET_VALUES) {
23907 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23909 if (flags & NDR_IN) {
23910 ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
23911 ndr->depth++;
23912 ndr_print_ptr(ndr, "handle", r->in.handle);
23913 ndr->depth++;
23914 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23915 ndr->depth--;
23916 ndr->depth--;
23918 if (flags & NDR_OUT) {
23919 ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
23920 ndr->depth++;
23921 ndr_print_WERROR(ndr, "result", r->out.result);
23922 ndr->depth--;
23924 ndr->depth--;
23927 static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, int flags, const struct spoolss_AddJob *r)
23929 if (flags & NDR_IN) {
23930 if (r->in.handle == NULL) {
23931 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23933 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23934 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23935 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23936 if (r->in.buffer) {
23937 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
23938 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
23940 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23942 if (flags & NDR_OUT) {
23943 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
23944 if (r->out.buffer) {
23945 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
23946 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
23948 if (r->out.needed == NULL) {
23949 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23951 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23952 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23954 return NDR_ERR_SUCCESS;
23957 static enum ndr_err_code ndr_pull_spoolss_AddJob(struct ndr_pull *ndr, int flags, struct spoolss_AddJob *r)
23959 uint32_t _ptr_buffer;
23960 TALLOC_CTX *_mem_save_handle_0;
23961 TALLOC_CTX *_mem_save_buffer_0;
23962 TALLOC_CTX *_mem_save_needed_0;
23963 if (flags & NDR_IN) {
23964 ZERO_STRUCT(r->out);
23966 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23967 NDR_PULL_ALLOC(ndr, r->in.handle);
23969 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23970 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23971 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23972 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23973 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23974 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23975 if (_ptr_buffer) {
23976 NDR_PULL_ALLOC(ndr, r->in.buffer);
23977 } else {
23978 r->in.buffer = NULL;
23980 if (r->in.buffer) {
23981 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23982 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23983 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
23984 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
23985 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
23986 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23988 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23989 NDR_PULL_ALLOC(ndr, r->out.needed);
23990 ZERO_STRUCTP(r->out.needed);
23991 if (r->in.buffer) {
23992 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
23995 if (flags & NDR_OUT) {
23996 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23997 if (_ptr_buffer) {
23998 NDR_PULL_ALLOC(ndr, r->out.buffer);
23999 } else {
24000 r->out.buffer = NULL;
24002 if (r->out.buffer) {
24003 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24004 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
24005 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
24006 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
24007 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
24008 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24010 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24011 NDR_PULL_ALLOC(ndr, r->out.needed);
24013 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24014 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24015 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24016 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24017 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24018 if (r->out.buffer) {
24019 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
24022 return NDR_ERR_SUCCESS;
24025 _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r)
24027 ndr_print_struct(ndr, name, "spoolss_AddJob");
24028 ndr->depth++;
24029 if (flags & NDR_SET_VALUES) {
24030 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24032 if (flags & NDR_IN) {
24033 ndr_print_struct(ndr, "in", "spoolss_AddJob");
24034 ndr->depth++;
24035 ndr_print_ptr(ndr, "handle", r->in.handle);
24036 ndr->depth++;
24037 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24038 ndr->depth--;
24039 ndr_print_uint32(ndr, "level", r->in.level);
24040 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24041 ndr->depth++;
24042 if (r->in.buffer) {
24043 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
24045 ndr->depth--;
24046 ndr_print_uint32(ndr, "offered", r->in.offered);
24047 ndr->depth--;
24049 if (flags & NDR_OUT) {
24050 ndr_print_struct(ndr, "out", "spoolss_AddJob");
24051 ndr->depth++;
24052 ndr_print_ptr(ndr, "buffer", r->out.buffer);
24053 ndr->depth++;
24054 if (r->out.buffer) {
24055 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
24057 ndr->depth--;
24058 ndr_print_ptr(ndr, "needed", r->out.needed);
24059 ndr->depth++;
24060 ndr_print_uint32(ndr, "needed", *r->out.needed);
24061 ndr->depth--;
24062 ndr_print_WERROR(ndr, "result", r->out.result);
24063 ndr->depth--;
24065 ndr->depth--;
24068 static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, int flags, const struct spoolss_ScheduleJob *r)
24070 if (flags & NDR_IN) {
24071 if (r->in.handle == NULL) {
24072 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24074 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24075 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
24077 if (flags & NDR_OUT) {
24078 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24080 return NDR_ERR_SUCCESS;
24083 static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, int flags, struct spoolss_ScheduleJob *r)
24085 TALLOC_CTX *_mem_save_handle_0;
24086 if (flags & NDR_IN) {
24087 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24088 NDR_PULL_ALLOC(ndr, r->in.handle);
24090 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24091 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24092 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24093 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24094 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.jobid));
24096 if (flags & NDR_OUT) {
24097 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24099 return NDR_ERR_SUCCESS;
24102 _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ScheduleJob *r)
24104 ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
24105 ndr->depth++;
24106 if (flags & NDR_SET_VALUES) {
24107 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24109 if (flags & NDR_IN) {
24110 ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
24111 ndr->depth++;
24112 ndr_print_ptr(ndr, "handle", r->in.handle);
24113 ndr->depth++;
24114 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24115 ndr->depth--;
24116 ndr_print_uint32(ndr, "jobid", r->in.jobid);
24117 ndr->depth--;
24119 if (flags & NDR_OUT) {
24120 ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
24121 ndr->depth++;
24122 ndr_print_WERROR(ndr, "result", r->out.result);
24123 ndr->depth--;
24125 ndr->depth--;
24128 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterData *r)
24130 if (flags & NDR_IN) {
24131 if (r->in.handle == NULL) {
24132 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24134 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24135 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
24136 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24137 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
24138 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));
24139 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24141 if (flags & NDR_OUT) {
24142 if (r->out.type == NULL) {
24143 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24145 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
24146 if (r->out.data == NULL) {
24147 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24149 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.data));
24150 if (r->out.needed == NULL) {
24151 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24153 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24154 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24156 return NDR_ERR_SUCCESS;
24159 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterData *r)
24161 TALLOC_CTX *_mem_save_handle_0;
24162 TALLOC_CTX *_mem_save_type_0;
24163 TALLOC_CTX *_mem_save_data_0;
24164 TALLOC_CTX *_mem_save_needed_0;
24165 if (flags & NDR_IN) {
24166 ZERO_STRUCT(r->out);
24168 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24169 NDR_PULL_ALLOC(ndr, r->in.handle);
24171 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24172 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24173 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24174 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24175 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
24176 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
24177 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
24178 return 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));
24180 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
24181 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));
24182 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24183 NDR_PULL_ALLOC(ndr, r->out.type);
24184 ZERO_STRUCTP(r->out.type);
24185 NDR_PULL_ALLOC(ndr, r->out.data);
24186 ZERO_STRUCTP(r->out.data);
24187 NDR_PULL_ALLOC(ndr, r->out.needed);
24188 ZERO_STRUCTP(r->out.needed);
24190 if (flags & NDR_OUT) {
24191 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24192 NDR_PULL_ALLOC(ndr, r->out.type);
24194 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
24195 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
24196 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
24197 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
24198 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24199 NDR_PULL_ALLOC(ndr, r->out.data);
24201 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
24202 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
24203 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
24204 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
24205 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24206 NDR_PULL_ALLOC(ndr, r->out.needed);
24208 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24209 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24210 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24211 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24212 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24214 return NDR_ERR_SUCCESS;
24217 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterData *r)
24219 if (flags & NDR_IN) {
24220 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
24222 if (flags & NDR_OUT) {
24223 if (r->out.data == NULL) {
24224 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24226 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
24227 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
24229 return NDR_ERR_SUCCESS;
24232 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterData *r)
24234 TALLOC_CTX *_mem_save_data_0;
24235 if (flags & NDR_IN) {
24236 ZERO_STRUCT(r->out);
24238 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
24239 NDR_PULL_ALLOC(ndr, r->out.data);
24240 ZERO_STRUCTP(r->out.data);
24242 if (flags & NDR_OUT) {
24243 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24244 NDR_PULL_ALLOC(ndr, r->out.data);
24246 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
24247 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
24248 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.data, r->in.type));
24249 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
24250 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
24252 return NDR_ERR_SUCCESS;
24255 _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterData *r)
24257 ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
24258 ndr->depth++;
24259 if (flags & NDR_SET_VALUES) {
24260 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24262 if (flags & NDR_IN) {
24263 ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
24264 ndr->depth++;
24265 ndr_print_ptr(ndr, "handle", r->in.handle);
24266 ndr->depth++;
24267 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24268 ndr->depth--;
24269 ndr_print_string(ndr, "value_name", r->in.value_name);
24270 ndr_print_uint32(ndr, "offered", r->in.offered);
24271 ndr->depth--;
24273 if (flags & NDR_OUT) {
24274 ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
24275 ndr->depth++;
24276 ndr_print_ptr(ndr, "type", r->out.type);
24277 ndr->depth++;
24278 ndr_print_winreg_Type(ndr, "type", *r->out.type);
24279 ndr->depth--;
24280 ndr_print_ptr(ndr, "data", r->out.data);
24281 ndr->depth++;
24282 ndr_print_set_switch_value(ndr, r->out.data, *r->out.type);
24283 ndr_print_spoolss_PrinterData(ndr, "data", r->out.data);
24284 ndr->depth--;
24285 ndr_print_ptr(ndr, "needed", r->out.needed);
24286 ndr->depth++;
24287 ndr_print_uint32(ndr, "needed", *r->out.needed);
24288 ndr->depth--;
24289 ndr_print_WERROR(ndr, "result", r->out.result);
24290 ndr->depth--;
24292 ndr->depth--;
24295 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterData *r)
24297 if (flags & NDR_IN) {
24298 if (r->in.handle == NULL) {
24299 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24301 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24302 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
24303 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24304 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
24305 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));
24306 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
24307 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
24308 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
24310 if (flags & NDR_OUT) {
24311 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24313 return NDR_ERR_SUCCESS;
24316 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterData *r)
24318 if (flags & NDR_IN) {
24319 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
24321 if (flags & NDR_OUT) {
24322 if (r->out.data == NULL) {
24323 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24325 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
24326 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
24328 return NDR_ERR_SUCCESS;
24331 static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterData *r)
24333 TALLOC_CTX *_mem_save_handle_0;
24334 if (flags & NDR_IN) {
24335 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24336 NDR_PULL_ALLOC(ndr, r->in.handle);
24338 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24339 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24340 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24341 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24342 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
24343 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
24344 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
24345 return 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));
24347 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
24348 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));
24349 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
24351 struct ndr_pull *_ndr_data;
24352 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
24353 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
24354 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
24355 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
24357 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
24359 if (flags & NDR_OUT) {
24360 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24362 return NDR_ERR_SUCCESS;
24365 _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r)
24367 ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
24368 ndr->depth++;
24369 if (flags & NDR_SET_VALUES) {
24370 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24372 if (flags & NDR_IN) {
24373 ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
24374 ndr->depth++;
24375 ndr_print_ptr(ndr, "handle", r->in.handle);
24376 ndr->depth++;
24377 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24378 ndr->depth--;
24379 ndr_print_string(ndr, "value_name", r->in.value_name);
24380 ndr_print_winreg_Type(ndr, "type", r->in.type);
24381 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
24382 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
24383 ndr_print_uint32(ndr, "_offered", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_PrinterData(&r->in.data, r->in.type, ndr->iconv_convenience, flags):r->in._offered);
24384 ndr->depth--;
24386 if (flags & NDR_OUT) {
24387 ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
24388 ndr->depth++;
24389 ndr_print_WERROR(ndr, "result", r->out.result);
24390 ndr->depth--;
24392 ndr->depth--;
24395 static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, int flags, const struct spoolss_WaitForPrinterChange *r)
24397 if (flags & NDR_IN) {
24399 if (flags & NDR_OUT) {
24400 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24402 return NDR_ERR_SUCCESS;
24405 static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, int flags, struct spoolss_WaitForPrinterChange *r)
24407 if (flags & NDR_IN) {
24409 if (flags & NDR_OUT) {
24410 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24412 return NDR_ERR_SUCCESS;
24415 _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r)
24417 ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
24418 ndr->depth++;
24419 if (flags & NDR_SET_VALUES) {
24420 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24422 if (flags & NDR_IN) {
24423 ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
24424 ndr->depth++;
24425 ndr->depth--;
24427 if (flags & NDR_OUT) {
24428 ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
24429 ndr->depth++;
24430 ndr_print_WERROR(ndr, "result", r->out.result);
24431 ndr->depth--;
24433 ndr->depth--;
24436 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ClosePrinter *r)
24438 if (flags & NDR_IN) {
24439 if (r->in.handle == NULL) {
24440 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24442 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24444 if (flags & NDR_OUT) {
24445 if (r->out.handle == NULL) {
24446 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24448 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24449 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24451 return NDR_ERR_SUCCESS;
24454 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ClosePrinter *r)
24456 TALLOC_CTX *_mem_save_handle_0;
24457 if (flags & NDR_IN) {
24458 ZERO_STRUCT(r->out);
24460 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24461 NDR_PULL_ALLOC(ndr, r->in.handle);
24463 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24464 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24465 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24466 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24467 NDR_PULL_ALLOC(ndr, r->out.handle);
24468 *r->out.handle = *r->in.handle;
24470 if (flags & NDR_OUT) {
24471 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24472 NDR_PULL_ALLOC(ndr, r->out.handle);
24474 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24475 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
24476 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24477 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24478 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24480 return NDR_ERR_SUCCESS;
24483 _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ClosePrinter *r)
24485 ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
24486 ndr->depth++;
24487 if (flags & NDR_SET_VALUES) {
24488 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24490 if (flags & NDR_IN) {
24491 ndr_print_struct(ndr, "in", "spoolss_ClosePrinter");
24492 ndr->depth++;
24493 ndr_print_ptr(ndr, "handle", r->in.handle);
24494 ndr->depth++;
24495 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24496 ndr->depth--;
24497 ndr->depth--;
24499 if (flags & NDR_OUT) {
24500 ndr_print_struct(ndr, "out", "spoolss_ClosePrinter");
24501 ndr->depth++;
24502 ndr_print_ptr(ndr, "handle", r->out.handle);
24503 ndr->depth++;
24504 ndr_print_policy_handle(ndr, "handle", r->out.handle);
24505 ndr->depth--;
24506 ndr_print_WERROR(ndr, "result", r->out.result);
24507 ndr->depth--;
24509 ndr->depth--;
24512 static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, int flags, const struct spoolss_AddForm *r)
24514 if (flags & NDR_IN) {
24515 if (r->in.handle == NULL) {
24516 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24518 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24519 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24520 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
24521 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24523 if (flags & NDR_OUT) {
24524 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24526 return NDR_ERR_SUCCESS;
24529 static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, int flags, struct spoolss_AddForm *r)
24531 TALLOC_CTX *_mem_save_handle_0;
24532 if (flags & NDR_IN) {
24533 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24534 NDR_PULL_ALLOC(ndr, r->in.handle);
24536 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24537 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24538 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24539 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24540 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24541 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
24542 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24544 if (flags & NDR_OUT) {
24545 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24547 return NDR_ERR_SUCCESS;
24550 _PUBLIC_ void ndr_print_spoolss_AddForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddForm *r)
24552 ndr_print_struct(ndr, name, "spoolss_AddForm");
24553 ndr->depth++;
24554 if (flags & NDR_SET_VALUES) {
24555 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24557 if (flags & NDR_IN) {
24558 ndr_print_struct(ndr, "in", "spoolss_AddForm");
24559 ndr->depth++;
24560 ndr_print_ptr(ndr, "handle", r->in.handle);
24561 ndr->depth++;
24562 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24563 ndr->depth--;
24564 ndr_print_uint32(ndr, "level", r->in.level);
24565 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
24566 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
24567 ndr->depth--;
24569 if (flags & NDR_OUT) {
24570 ndr_print_struct(ndr, "out", "spoolss_AddForm");
24571 ndr->depth++;
24572 ndr_print_WERROR(ndr, "result", r->out.result);
24573 ndr->depth--;
24575 ndr->depth--;
24578 static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, int flags, const struct spoolss_DeleteForm *r)
24580 if (flags & NDR_IN) {
24581 if (r->in.handle == NULL) {
24582 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24584 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24585 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24586 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24587 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24588 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));
24590 if (flags & NDR_OUT) {
24591 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24593 return NDR_ERR_SUCCESS;
24596 static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, int flags, struct spoolss_DeleteForm *r)
24598 TALLOC_CTX *_mem_save_handle_0;
24599 if (flags & NDR_IN) {
24600 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24601 NDR_PULL_ALLOC(ndr, r->in.handle);
24603 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24604 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24605 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24606 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24607 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
24608 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
24609 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
24610 return 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));
24612 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
24613 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));
24615 if (flags & NDR_OUT) {
24616 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24618 return NDR_ERR_SUCCESS;
24621 _PUBLIC_ void ndr_print_spoolss_DeleteForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteForm *r)
24623 ndr_print_struct(ndr, name, "spoolss_DeleteForm");
24624 ndr->depth++;
24625 if (flags & NDR_SET_VALUES) {
24626 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24628 if (flags & NDR_IN) {
24629 ndr_print_struct(ndr, "in", "spoolss_DeleteForm");
24630 ndr->depth++;
24631 ndr_print_ptr(ndr, "handle", r->in.handle);
24632 ndr->depth++;
24633 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24634 ndr->depth--;
24635 ndr_print_string(ndr, "form_name", r->in.form_name);
24636 ndr->depth--;
24638 if (flags & NDR_OUT) {
24639 ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
24640 ndr->depth++;
24641 ndr_print_WERROR(ndr, "result", r->out.result);
24642 ndr->depth--;
24644 ndr->depth--;
24647 static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, int flags, const struct spoolss_GetForm *r)
24649 if (flags & NDR_IN) {
24650 if (r->in.handle == NULL) {
24651 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24653 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24654 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24655 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24656 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24657 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));
24658 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24659 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24660 if (r->in.buffer) {
24661 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24663 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24665 if (flags & NDR_OUT) {
24666 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24667 if (r->out.info) {
24669 struct ndr_push *_ndr_info;
24670 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
24671 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
24672 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
24673 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
24676 if (r->out.needed == NULL) {
24677 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24679 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24680 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24682 return NDR_ERR_SUCCESS;
24685 static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, int flags, struct spoolss_GetForm *r)
24687 uint32_t _ptr_buffer;
24688 uint32_t _ptr_info;
24689 TALLOC_CTX *_mem_save_handle_0;
24690 TALLOC_CTX *_mem_save_buffer_0;
24691 TALLOC_CTX *_mem_save_info_0;
24692 TALLOC_CTX *_mem_save_needed_0;
24693 if (flags & NDR_IN) {
24694 ZERO_STRUCT(r->out);
24696 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24697 NDR_PULL_ALLOC(ndr, r->in.handle);
24699 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24700 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24701 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24702 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24703 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
24704 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
24705 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
24706 return 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));
24708 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
24709 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));
24710 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24711 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24712 if (_ptr_buffer) {
24713 NDR_PULL_ALLOC(ndr, r->in.buffer);
24714 } else {
24715 r->in.buffer = NULL;
24717 if (r->in.buffer) {
24718 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24719 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24720 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24721 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24723 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24724 NDR_PULL_ALLOC(ndr, r->out.needed);
24725 ZERO_STRUCTP(r->out.needed);
24727 if (flags & NDR_OUT) {
24728 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24729 if (_ptr_info) {
24730 NDR_PULL_ALLOC(ndr, r->out.info);
24731 } else {
24732 r->out.info = NULL;
24734 if (r->out.info) {
24735 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24736 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24738 struct ndr_pull *_ndr_info;
24739 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
24740 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
24741 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
24742 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
24744 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24746 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24747 NDR_PULL_ALLOC(ndr, r->out.needed);
24749 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24750 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24751 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24752 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24753 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24755 return NDR_ERR_SUCCESS;
24758 _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetForm *r)
24760 ndr_print_struct(ndr, name, "spoolss_GetForm");
24761 ndr->depth++;
24762 if (flags & NDR_SET_VALUES) {
24763 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24765 if (flags & NDR_IN) {
24766 ndr_print_struct(ndr, "in", "spoolss_GetForm");
24767 ndr->depth++;
24768 ndr_print_ptr(ndr, "handle", r->in.handle);
24769 ndr->depth++;
24770 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24771 ndr->depth--;
24772 ndr_print_string(ndr, "form_name", r->in.form_name);
24773 ndr_print_uint32(ndr, "level", r->in.level);
24774 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24775 ndr->depth++;
24776 if (r->in.buffer) {
24777 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24779 ndr->depth--;
24780 ndr_print_uint32(ndr, "offered", r->in.offered);
24781 ndr->depth--;
24783 if (flags & NDR_OUT) {
24784 ndr_print_struct(ndr, "out", "spoolss_GetForm");
24785 ndr->depth++;
24786 ndr_print_ptr(ndr, "info", r->out.info);
24787 ndr->depth++;
24788 if (r->out.info) {
24789 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
24790 ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
24792 ndr->depth--;
24793 ndr_print_ptr(ndr, "needed", r->out.needed);
24794 ndr->depth++;
24795 ndr_print_uint32(ndr, "needed", *r->out.needed);
24796 ndr->depth--;
24797 ndr_print_WERROR(ndr, "result", r->out.result);
24798 ndr->depth--;
24800 ndr->depth--;
24803 static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, int flags, const struct spoolss_SetForm *r)
24805 if (flags & NDR_IN) {
24806 if (r->in.handle == NULL) {
24807 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24809 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24810 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24811 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24812 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24813 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));
24814 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24815 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
24816 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24818 if (flags & NDR_OUT) {
24819 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24821 return NDR_ERR_SUCCESS;
24824 static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, int flags, struct spoolss_SetForm *r)
24826 TALLOC_CTX *_mem_save_handle_0;
24827 if (flags & NDR_IN) {
24828 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24829 NDR_PULL_ALLOC(ndr, r->in.handle);
24831 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24832 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24833 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24834 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24835 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
24836 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
24837 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
24838 return 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));
24840 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
24841 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));
24842 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24843 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
24844 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24846 if (flags & NDR_OUT) {
24847 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24849 return NDR_ERR_SUCCESS;
24852 _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetForm *r)
24854 ndr_print_struct(ndr, name, "spoolss_SetForm");
24855 ndr->depth++;
24856 if (flags & NDR_SET_VALUES) {
24857 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24859 if (flags & NDR_IN) {
24860 ndr_print_struct(ndr, "in", "spoolss_SetForm");
24861 ndr->depth++;
24862 ndr_print_ptr(ndr, "handle", r->in.handle);
24863 ndr->depth++;
24864 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24865 ndr->depth--;
24866 ndr_print_string(ndr, "form_name", r->in.form_name);
24867 ndr_print_uint32(ndr, "level", r->in.level);
24868 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
24869 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
24870 ndr->depth--;
24872 if (flags & NDR_OUT) {
24873 ndr_print_struct(ndr, "out", "spoolss_SetForm");
24874 ndr->depth++;
24875 ndr_print_WERROR(ndr, "result", r->out.result);
24876 ndr->depth--;
24878 ndr->depth--;
24881 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct _spoolss_EnumForms *r)
24883 if (flags & NDR_IN) {
24884 if (r->in.handle == NULL) {
24885 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24887 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24888 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24889 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24890 if (r->in.buffer) {
24891 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24893 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24895 if (flags & NDR_OUT) {
24896 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24897 if (r->out.info) {
24898 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
24900 if (r->out.needed == NULL) {
24901 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24903 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24904 if (r->out.count == NULL) {
24905 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24907 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
24908 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24910 return NDR_ERR_SUCCESS;
24913 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct _spoolss_EnumForms *r)
24915 uint32_t _ptr_buffer;
24916 uint32_t _ptr_info;
24917 TALLOC_CTX *_mem_save_handle_0;
24918 TALLOC_CTX *_mem_save_buffer_0;
24919 TALLOC_CTX *_mem_save_info_0;
24920 TALLOC_CTX *_mem_save_needed_0;
24921 TALLOC_CTX *_mem_save_count_0;
24922 if (flags & NDR_IN) {
24923 ZERO_STRUCT(r->out);
24925 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24926 NDR_PULL_ALLOC(ndr, r->in.handle);
24928 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24929 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24930 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24931 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24932 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24933 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24934 if (_ptr_buffer) {
24935 NDR_PULL_ALLOC(ndr, r->in.buffer);
24936 } else {
24937 r->in.buffer = NULL;
24939 if (r->in.buffer) {
24940 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24941 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24942 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24943 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24945 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24946 NDR_PULL_ALLOC(ndr, r->out.needed);
24947 ZERO_STRUCTP(r->out.needed);
24948 NDR_PULL_ALLOC(ndr, r->out.count);
24949 ZERO_STRUCTP(r->out.count);
24951 if (flags & NDR_OUT) {
24952 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24953 if (_ptr_info) {
24954 NDR_PULL_ALLOC(ndr, r->out.info);
24955 } else {
24956 r->out.info = NULL;
24958 if (r->out.info) {
24959 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24960 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24961 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
24962 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24964 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24965 NDR_PULL_ALLOC(ndr, r->out.needed);
24967 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24968 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24969 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24970 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24971 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24972 NDR_PULL_ALLOC(ndr, r->out.count);
24974 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
24975 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
24976 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
24977 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
24978 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24980 return NDR_ERR_SUCCESS;
24983 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct __spoolss_EnumForms *r)
24985 uint32_t cntr_info_0;
24986 if (flags & NDR_IN) {
24987 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24988 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
24990 if (flags & NDR_OUT) {
24991 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24992 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24993 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24995 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24996 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24999 return NDR_ERR_SUCCESS;
25002 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct __spoolss_EnumForms *r)
25004 uint32_t cntr_info_0;
25005 TALLOC_CTX *_mem_save_info_0;
25006 if (flags & NDR_IN) {
25007 ZERO_STRUCT(r->out);
25009 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25010 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
25012 if (flags & NDR_OUT) {
25013 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
25014 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25015 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25016 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25017 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25018 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25020 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25021 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25023 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25025 return NDR_ERR_SUCCESS;
25028 _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumForms *r)
25030 uint32_t cntr_info_2;
25031 ndr_print_struct(ndr, name, "spoolss_EnumForms");
25032 ndr->depth++;
25033 if (flags & NDR_SET_VALUES) {
25034 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25036 if (flags & NDR_IN) {
25037 ndr_print_struct(ndr, "in", "spoolss_EnumForms");
25038 ndr->depth++;
25039 ndr_print_ptr(ndr, "handle", r->in.handle);
25040 ndr->depth++;
25041 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25042 ndr->depth--;
25043 ndr_print_uint32(ndr, "level", r->in.level);
25044 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25045 ndr->depth++;
25046 if (r->in.buffer) {
25047 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
25049 ndr->depth--;
25050 ndr_print_uint32(ndr, "offered", r->in.offered);
25051 ndr->depth--;
25053 if (flags & NDR_OUT) {
25054 ndr_print_struct(ndr, "out", "spoolss_EnumForms");
25055 ndr->depth++;
25056 ndr_print_ptr(ndr, "count", r->out.count);
25057 ndr->depth++;
25058 ndr_print_uint32(ndr, "count", *r->out.count);
25059 ndr->depth--;
25060 ndr_print_ptr(ndr, "info", r->out.info);
25061 ndr->depth++;
25062 ndr_print_ptr(ndr, "info", *r->out.info);
25063 ndr->depth++;
25064 if (*r->out.info) {
25065 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
25066 ndr->depth++;
25067 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
25068 char *idx_2=NULL;
25069 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
25070 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
25071 ndr_print_spoolss_FormInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
25072 free(idx_2);
25075 ndr->depth--;
25077 ndr->depth--;
25078 ndr->depth--;
25079 ndr_print_ptr(ndr, "needed", r->out.needed);
25080 ndr->depth++;
25081 ndr_print_uint32(ndr, "needed", *r->out.needed);
25082 ndr->depth--;
25083 ndr_print_WERROR(ndr, "result", r->out.result);
25084 ndr->depth--;
25086 ndr->depth--;
25089 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPorts *r)
25091 if (flags & NDR_IN) {
25092 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
25093 if (r->in.servername) {
25094 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
25095 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25096 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
25097 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25099 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25100 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25101 if (r->in.buffer) {
25102 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
25104 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25106 if (flags & NDR_OUT) {
25107 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
25108 if (r->out.info) {
25109 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
25111 if (r->out.needed == NULL) {
25112 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25114 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25115 if (r->out.count == NULL) {
25116 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25118 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
25119 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25121 return NDR_ERR_SUCCESS;
25124 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPorts *r)
25126 uint32_t _ptr_servername;
25127 uint32_t _ptr_buffer;
25128 uint32_t _ptr_info;
25129 TALLOC_CTX *_mem_save_servername_0;
25130 TALLOC_CTX *_mem_save_buffer_0;
25131 TALLOC_CTX *_mem_save_info_0;
25132 TALLOC_CTX *_mem_save_needed_0;
25133 TALLOC_CTX *_mem_save_count_0;
25134 if (flags & NDR_IN) {
25135 ZERO_STRUCT(r->out);
25137 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
25138 if (_ptr_servername) {
25139 NDR_PULL_ALLOC(ndr, r->in.servername);
25140 } else {
25141 r->in.servername = NULL;
25143 if (r->in.servername) {
25144 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
25145 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
25146 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
25147 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
25148 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
25149 return 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));
25151 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
25152 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
25153 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
25155 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25156 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25157 if (_ptr_buffer) {
25158 NDR_PULL_ALLOC(ndr, r->in.buffer);
25159 } else {
25160 r->in.buffer = NULL;
25162 if (r->in.buffer) {
25163 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25164 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25165 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
25166 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25168 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25169 NDR_PULL_ALLOC(ndr, r->out.needed);
25170 ZERO_STRUCTP(r->out.needed);
25171 NDR_PULL_ALLOC(ndr, r->out.count);
25172 ZERO_STRUCTP(r->out.count);
25174 if (flags & NDR_OUT) {
25175 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25176 if (_ptr_info) {
25177 NDR_PULL_ALLOC(ndr, r->out.info);
25178 } else {
25179 r->out.info = NULL;
25181 if (r->out.info) {
25182 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25183 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25184 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
25185 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25187 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25188 NDR_PULL_ALLOC(ndr, r->out.needed);
25190 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25191 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25192 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25193 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25194 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25195 NDR_PULL_ALLOC(ndr, r->out.count);
25197 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
25198 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
25199 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
25200 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
25201 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25203 return NDR_ERR_SUCCESS;
25206 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPorts *r)
25208 uint32_t cntr_info_0;
25209 if (flags & NDR_IN) {
25210 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25211 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
25213 if (flags & NDR_OUT) {
25214 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25215 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25216 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25218 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25219 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25222 return NDR_ERR_SUCCESS;
25225 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPorts *r)
25227 uint32_t cntr_info_0;
25228 TALLOC_CTX *_mem_save_info_0;
25229 if (flags & NDR_IN) {
25230 ZERO_STRUCT(r->out);
25232 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25233 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
25235 if (flags & NDR_OUT) {
25236 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
25237 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25238 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25239 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25240 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25241 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25243 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25244 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25246 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25248 return NDR_ERR_SUCCESS;
25251 _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPorts *r)
25253 uint32_t cntr_info_2;
25254 ndr_print_struct(ndr, name, "spoolss_EnumPorts");
25255 ndr->depth++;
25256 if (flags & NDR_SET_VALUES) {
25257 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25259 if (flags & NDR_IN) {
25260 ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
25261 ndr->depth++;
25262 ndr_print_ptr(ndr, "servername", r->in.servername);
25263 ndr->depth++;
25264 if (r->in.servername) {
25265 ndr_print_string(ndr, "servername", r->in.servername);
25267 ndr->depth--;
25268 ndr_print_uint32(ndr, "level", r->in.level);
25269 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25270 ndr->depth++;
25271 if (r->in.buffer) {
25272 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
25274 ndr->depth--;
25275 ndr_print_uint32(ndr, "offered", r->in.offered);
25276 ndr->depth--;
25278 if (flags & NDR_OUT) {
25279 ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
25280 ndr->depth++;
25281 ndr_print_ptr(ndr, "count", r->out.count);
25282 ndr->depth++;
25283 ndr_print_uint32(ndr, "count", *r->out.count);
25284 ndr->depth--;
25285 ndr_print_ptr(ndr, "info", r->out.info);
25286 ndr->depth++;
25287 ndr_print_ptr(ndr, "info", *r->out.info);
25288 ndr->depth++;
25289 if (*r->out.info) {
25290 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
25291 ndr->depth++;
25292 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
25293 char *idx_2=NULL;
25294 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
25295 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
25296 ndr_print_spoolss_PortInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
25297 free(idx_2);
25300 ndr->depth--;
25302 ndr->depth--;
25303 ndr->depth--;
25304 ndr_print_ptr(ndr, "needed", r->out.needed);
25305 ndr->depth++;
25306 ndr_print_uint32(ndr, "needed", *r->out.needed);
25307 ndr->depth--;
25308 ndr_print_WERROR(ndr, "result", r->out.result);
25309 ndr->depth--;
25311 ndr->depth--;
25314 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumMonitors *r)
25316 if (flags & NDR_IN) {
25317 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
25318 if (r->in.servername) {
25319 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
25320 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25321 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
25322 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25324 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25325 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25326 if (r->in.buffer) {
25327 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
25329 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25331 if (flags & NDR_OUT) {
25332 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
25333 if (r->out.info) {
25334 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
25336 if (r->out.needed == NULL) {
25337 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25339 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25340 if (r->out.count == NULL) {
25341 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25343 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
25344 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25346 return NDR_ERR_SUCCESS;
25349 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumMonitors *r)
25351 uint32_t _ptr_servername;
25352 uint32_t _ptr_buffer;
25353 uint32_t _ptr_info;
25354 TALLOC_CTX *_mem_save_servername_0;
25355 TALLOC_CTX *_mem_save_buffer_0;
25356 TALLOC_CTX *_mem_save_info_0;
25357 TALLOC_CTX *_mem_save_needed_0;
25358 TALLOC_CTX *_mem_save_count_0;
25359 if (flags & NDR_IN) {
25360 ZERO_STRUCT(r->out);
25362 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
25363 if (_ptr_servername) {
25364 NDR_PULL_ALLOC(ndr, r->in.servername);
25365 } else {
25366 r->in.servername = NULL;
25368 if (r->in.servername) {
25369 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
25370 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
25371 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
25372 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
25373 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
25374 return 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));
25376 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
25377 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
25378 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
25380 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25381 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25382 if (_ptr_buffer) {
25383 NDR_PULL_ALLOC(ndr, r->in.buffer);
25384 } else {
25385 r->in.buffer = NULL;
25387 if (r->in.buffer) {
25388 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25389 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25390 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
25391 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25393 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25394 NDR_PULL_ALLOC(ndr, r->out.needed);
25395 ZERO_STRUCTP(r->out.needed);
25396 NDR_PULL_ALLOC(ndr, r->out.count);
25397 ZERO_STRUCTP(r->out.count);
25399 if (flags & NDR_OUT) {
25400 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25401 if (_ptr_info) {
25402 NDR_PULL_ALLOC(ndr, r->out.info);
25403 } else {
25404 r->out.info = NULL;
25406 if (r->out.info) {
25407 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25408 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25409 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
25410 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25412 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25413 NDR_PULL_ALLOC(ndr, r->out.needed);
25415 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25416 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25417 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25418 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25419 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25420 NDR_PULL_ALLOC(ndr, r->out.count);
25422 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
25423 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
25424 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
25425 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
25426 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25428 return NDR_ERR_SUCCESS;
25431 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumMonitors *r)
25433 uint32_t cntr_info_0;
25434 if (flags & NDR_IN) {
25435 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25436 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
25438 if (flags & NDR_OUT) {
25439 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25440 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25441 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25443 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25444 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25447 return NDR_ERR_SUCCESS;
25450 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumMonitors *r)
25452 uint32_t cntr_info_0;
25453 TALLOC_CTX *_mem_save_info_0;
25454 if (flags & NDR_IN) {
25455 ZERO_STRUCT(r->out);
25457 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25458 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
25460 if (flags & NDR_OUT) {
25461 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
25462 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25463 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25464 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25465 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25466 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25468 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25469 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25471 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25473 return NDR_ERR_SUCCESS;
25476 _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumMonitors *r)
25478 uint32_t cntr_info_2;
25479 ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
25480 ndr->depth++;
25481 if (flags & NDR_SET_VALUES) {
25482 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25484 if (flags & NDR_IN) {
25485 ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
25486 ndr->depth++;
25487 ndr_print_ptr(ndr, "servername", r->in.servername);
25488 ndr->depth++;
25489 if (r->in.servername) {
25490 ndr_print_string(ndr, "servername", r->in.servername);
25492 ndr->depth--;
25493 ndr_print_uint32(ndr, "level", r->in.level);
25494 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25495 ndr->depth++;
25496 if (r->in.buffer) {
25497 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
25499 ndr->depth--;
25500 ndr_print_uint32(ndr, "offered", r->in.offered);
25501 ndr->depth--;
25503 if (flags & NDR_OUT) {
25504 ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
25505 ndr->depth++;
25506 ndr_print_ptr(ndr, "count", r->out.count);
25507 ndr->depth++;
25508 ndr_print_uint32(ndr, "count", *r->out.count);
25509 ndr->depth--;
25510 ndr_print_ptr(ndr, "info", r->out.info);
25511 ndr->depth++;
25512 ndr_print_ptr(ndr, "info", *r->out.info);
25513 ndr->depth++;
25514 if (*r->out.info) {
25515 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
25516 ndr->depth++;
25517 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
25518 char *idx_2=NULL;
25519 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
25520 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
25521 ndr_print_spoolss_MonitorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
25522 free(idx_2);
25525 ndr->depth--;
25527 ndr->depth--;
25528 ndr->depth--;
25529 ndr_print_ptr(ndr, "needed", r->out.needed);
25530 ndr->depth++;
25531 ndr_print_uint32(ndr, "needed", *r->out.needed);
25532 ndr->depth--;
25533 ndr_print_WERROR(ndr, "result", r->out.result);
25534 ndr->depth--;
25536 ndr->depth--;
25539 static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, int flags, const struct spoolss_AddPort *r)
25541 if (flags & NDR_IN) {
25542 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
25543 if (r->in.server_name) {
25544 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
25545 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25546 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
25547 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));
25549 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
25550 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
25551 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25552 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
25553 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));
25555 if (flags & NDR_OUT) {
25556 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25558 return NDR_ERR_SUCCESS;
25561 static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, int flags, struct spoolss_AddPort *r)
25563 uint32_t _ptr_server_name;
25564 TALLOC_CTX *_mem_save_server_name_0;
25565 if (flags & NDR_IN) {
25566 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
25567 if (_ptr_server_name) {
25568 NDR_PULL_ALLOC(ndr, r->in.server_name);
25569 } else {
25570 r->in.server_name = NULL;
25572 if (r->in.server_name) {
25573 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
25574 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
25575 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
25576 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
25577 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
25578 return 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));
25580 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
25581 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));
25582 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
25584 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
25585 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
25586 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
25587 if (ndr_get_array_length(ndr, &r->in.monitor_name) > ndr_get_array_size(ndr, &r->in.monitor_name)) {
25588 return 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));
25590 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t)));
25591 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));
25593 if (flags & NDR_OUT) {
25594 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25596 return NDR_ERR_SUCCESS;
25599 _PUBLIC_ void ndr_print_spoolss_AddPort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPort *r)
25601 ndr_print_struct(ndr, name, "spoolss_AddPort");
25602 ndr->depth++;
25603 if (flags & NDR_SET_VALUES) {
25604 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25606 if (flags & NDR_IN) {
25607 ndr_print_struct(ndr, "in", "spoolss_AddPort");
25608 ndr->depth++;
25609 ndr_print_ptr(ndr, "server_name", r->in.server_name);
25610 ndr->depth++;
25611 if (r->in.server_name) {
25612 ndr_print_string(ndr, "server_name", r->in.server_name);
25614 ndr->depth--;
25615 ndr_print_uint32(ndr, "unknown", r->in.unknown);
25616 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
25617 ndr->depth--;
25619 if (flags & NDR_OUT) {
25620 ndr_print_struct(ndr, "out", "spoolss_AddPort");
25621 ndr->depth++;
25622 ndr_print_WERROR(ndr, "result", r->out.result);
25623 ndr->depth--;
25625 ndr->depth--;
25628 static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, int flags, const struct spoolss_ConfigurePort *r)
25630 if (flags & NDR_IN) {
25632 if (flags & NDR_OUT) {
25633 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25635 return NDR_ERR_SUCCESS;
25638 static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, int flags, struct spoolss_ConfigurePort *r)
25640 if (flags & NDR_IN) {
25642 if (flags & NDR_OUT) {
25643 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25645 return NDR_ERR_SUCCESS;
25648 _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ConfigurePort *r)
25650 ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
25651 ndr->depth++;
25652 if (flags & NDR_SET_VALUES) {
25653 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25655 if (flags & NDR_IN) {
25656 ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
25657 ndr->depth++;
25658 ndr->depth--;
25660 if (flags & NDR_OUT) {
25661 ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
25662 ndr->depth++;
25663 ndr_print_WERROR(ndr, "result", r->out.result);
25664 ndr->depth--;
25666 ndr->depth--;
25669 static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, int flags, const struct spoolss_DeletePort *r)
25671 if (flags & NDR_IN) {
25673 if (flags & NDR_OUT) {
25674 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25676 return NDR_ERR_SUCCESS;
25679 static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, int flags, struct spoolss_DeletePort *r)
25681 if (flags & NDR_IN) {
25683 if (flags & NDR_OUT) {
25684 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25686 return NDR_ERR_SUCCESS;
25689 _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePort *r)
25691 ndr_print_struct(ndr, name, "spoolss_DeletePort");
25692 ndr->depth++;
25693 if (flags & NDR_SET_VALUES) {
25694 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25696 if (flags & NDR_IN) {
25697 ndr_print_struct(ndr, "in", "spoolss_DeletePort");
25698 ndr->depth++;
25699 ndr->depth--;
25701 if (flags & NDR_OUT) {
25702 ndr_print_struct(ndr, "out", "spoolss_DeletePort");
25703 ndr->depth++;
25704 ndr_print_WERROR(ndr, "result", r->out.result);
25705 ndr->depth--;
25707 ndr->depth--;
25710 static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_CreatePrinterIC *r)
25712 if (flags & NDR_IN) {
25713 if (r->in.handle == NULL) {
25714 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25716 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25717 if (r->in.devmode_ctr == NULL) {
25718 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25720 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25722 if (flags & NDR_OUT) {
25723 if (r->out.gdi_handle == NULL) {
25724 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25726 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
25727 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25729 return NDR_ERR_SUCCESS;
25732 static enum ndr_err_code ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_CreatePrinterIC *r)
25734 TALLOC_CTX *_mem_save_handle_0;
25735 TALLOC_CTX *_mem_save_gdi_handle_0;
25736 TALLOC_CTX *_mem_save_devmode_ctr_0;
25737 if (flags & NDR_IN) {
25738 ZERO_STRUCT(r->out);
25740 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25741 NDR_PULL_ALLOC(ndr, r->in.handle);
25743 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25744 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25745 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25746 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25747 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25748 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
25750 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25751 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
25752 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25753 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25754 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
25755 ZERO_STRUCTP(r->out.gdi_handle);
25757 if (flags & NDR_OUT) {
25758 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25759 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
25761 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25762 NDR_PULL_SET_MEM_CTX(ndr, r->out.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
25763 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
25764 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
25765 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25767 return NDR_ERR_SUCCESS;
25770 _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_CreatePrinterIC *r)
25772 ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
25773 ndr->depth++;
25774 if (flags & NDR_SET_VALUES) {
25775 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25777 if (flags & NDR_IN) {
25778 ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
25779 ndr->depth++;
25780 ndr_print_ptr(ndr, "handle", r->in.handle);
25781 ndr->depth++;
25782 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25783 ndr->depth--;
25784 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
25785 ndr->depth++;
25786 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
25787 ndr->depth--;
25788 ndr->depth--;
25790 if (flags & NDR_OUT) {
25791 ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
25792 ndr->depth++;
25793 ndr_print_ptr(ndr, "gdi_handle", r->out.gdi_handle);
25794 ndr->depth++;
25795 ndr_print_policy_handle(ndr, "gdi_handle", r->out.gdi_handle);
25796 ndr->depth--;
25797 ndr_print_WERROR(ndr, "result", r->out.result);
25798 ndr->depth--;
25800 ndr->depth--;
25803 static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
25805 if (flags & NDR_IN) {
25807 if (flags & NDR_OUT) {
25808 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25810 return NDR_ERR_SUCCESS;
25813 static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
25815 if (flags & NDR_IN) {
25817 if (flags & NDR_OUT) {
25818 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25820 return NDR_ERR_SUCCESS;
25823 _PUBLIC_ void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
25825 ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
25826 ndr->depth++;
25827 if (flags & NDR_SET_VALUES) {
25828 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25830 if (flags & NDR_IN) {
25831 ndr_print_struct(ndr, "in", "spoolss_PlayGDIScriptOnPrinterIC");
25832 ndr->depth++;
25833 ndr->depth--;
25835 if (flags & NDR_OUT) {
25836 ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
25837 ndr->depth++;
25838 ndr_print_WERROR(ndr, "result", r->out.result);
25839 ndr->depth--;
25841 ndr->depth--;
25844 static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterIC *r)
25846 if (flags & NDR_IN) {
25847 if (r->in.gdi_handle == NULL) {
25848 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25850 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
25852 if (flags & NDR_OUT) {
25853 if (r->out.gdi_handle == NULL) {
25854 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25856 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
25857 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25859 return NDR_ERR_SUCCESS;
25862 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterIC *r)
25864 TALLOC_CTX *_mem_save_gdi_handle_0;
25865 if (flags & NDR_IN) {
25866 ZERO_STRUCT(r->out);
25868 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25869 NDR_PULL_ALLOC(ndr, r->in.gdi_handle);
25871 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25872 NDR_PULL_SET_MEM_CTX(ndr, r->in.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
25873 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
25874 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
25875 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
25876 *r->out.gdi_handle = *r->in.gdi_handle;
25878 if (flags & NDR_OUT) {
25879 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25880 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
25882 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25883 NDR_PULL_SET_MEM_CTX(ndr, r->out.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
25884 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
25885 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
25886 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25888 return NDR_ERR_SUCCESS;
25891 _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterIC *r)
25893 ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
25894 ndr->depth++;
25895 if (flags & NDR_SET_VALUES) {
25896 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25898 if (flags & NDR_IN) {
25899 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
25900 ndr->depth++;
25901 ndr_print_ptr(ndr, "gdi_handle", r->in.gdi_handle);
25902 ndr->depth++;
25903 ndr_print_policy_handle(ndr, "gdi_handle", r->in.gdi_handle);
25904 ndr->depth--;
25905 ndr->depth--;
25907 if (flags & NDR_OUT) {
25908 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
25909 ndr->depth++;
25910 ndr_print_ptr(ndr, "gdi_handle", r->out.gdi_handle);
25911 ndr->depth++;
25912 ndr_print_policy_handle(ndr, "gdi_handle", r->out.gdi_handle);
25913 ndr->depth--;
25914 ndr_print_WERROR(ndr, "result", r->out.result);
25915 ndr->depth--;
25917 ndr->depth--;
25920 static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterConnection *r)
25922 if (flags & NDR_IN) {
25924 if (flags & NDR_OUT) {
25925 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25927 return NDR_ERR_SUCCESS;
25930 static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterConnection *r)
25932 if (flags & NDR_IN) {
25934 if (flags & NDR_OUT) {
25935 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25937 return NDR_ERR_SUCCESS;
25940 _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterConnection *r)
25942 ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
25943 ndr->depth++;
25944 if (flags & NDR_SET_VALUES) {
25945 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25947 if (flags & NDR_IN) {
25948 ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
25949 ndr->depth++;
25950 ndr->depth--;
25952 if (flags & NDR_OUT) {
25953 ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
25954 ndr->depth++;
25955 ndr_print_WERROR(ndr, "result", r->out.result);
25956 ndr->depth--;
25958 ndr->depth--;
25961 static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterConnection *r)
25963 if (flags & NDR_IN) {
25965 if (flags & NDR_OUT) {
25966 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25968 return NDR_ERR_SUCCESS;
25971 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterConnection *r)
25973 if (flags & NDR_IN) {
25975 if (flags & NDR_OUT) {
25976 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25978 return NDR_ERR_SUCCESS;
25981 _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterConnection *r)
25983 ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
25984 ndr->depth++;
25985 if (flags & NDR_SET_VALUES) {
25986 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25988 if (flags & NDR_IN) {
25989 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
25990 ndr->depth++;
25991 ndr->depth--;
25993 if (flags & NDR_OUT) {
25994 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
25995 ndr->depth++;
25996 ndr_print_WERROR(ndr, "result", r->out.result);
25997 ndr->depth--;
25999 ndr->depth--;
26002 static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, int flags, const struct spoolss_PrinterMessageBox *r)
26004 if (flags & NDR_IN) {
26006 if (flags & NDR_OUT) {
26007 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26009 return NDR_ERR_SUCCESS;
26012 static enum ndr_err_code ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull *ndr, int flags, struct spoolss_PrinterMessageBox *r)
26014 if (flags & NDR_IN) {
26016 if (flags & NDR_OUT) {
26017 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26019 return NDR_ERR_SUCCESS;
26022 _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PrinterMessageBox *r)
26024 ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
26025 ndr->depth++;
26026 if (flags & NDR_SET_VALUES) {
26027 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26029 if (flags & NDR_IN) {
26030 ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
26031 ndr->depth++;
26032 ndr->depth--;
26034 if (flags & NDR_OUT) {
26035 ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
26036 ndr->depth++;
26037 ndr_print_WERROR(ndr, "result", r->out.result);
26038 ndr->depth--;
26040 ndr->depth--;
26043 static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, int flags, const struct spoolss_AddMonitor *r)
26045 if (flags & NDR_IN) {
26047 if (flags & NDR_OUT) {
26048 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26050 return NDR_ERR_SUCCESS;
26053 static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, int flags, struct spoolss_AddMonitor *r)
26055 if (flags & NDR_IN) {
26057 if (flags & NDR_OUT) {
26058 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26060 return NDR_ERR_SUCCESS;
26063 _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddMonitor *r)
26065 ndr_print_struct(ndr, name, "spoolss_AddMonitor");
26066 ndr->depth++;
26067 if (flags & NDR_SET_VALUES) {
26068 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26070 if (flags & NDR_IN) {
26071 ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
26072 ndr->depth++;
26073 ndr->depth--;
26075 if (flags & NDR_OUT) {
26076 ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
26077 ndr->depth++;
26078 ndr_print_WERROR(ndr, "result", r->out.result);
26079 ndr->depth--;
26081 ndr->depth--;
26084 static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, int flags, const struct spoolss_DeleteMonitor *r)
26086 if (flags & NDR_IN) {
26088 if (flags & NDR_OUT) {
26089 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26091 return NDR_ERR_SUCCESS;
26094 static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, int flags, struct spoolss_DeleteMonitor *r)
26096 if (flags & NDR_IN) {
26098 if (flags & NDR_OUT) {
26099 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26101 return NDR_ERR_SUCCESS;
26104 _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteMonitor *r)
26106 ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
26107 ndr->depth++;
26108 if (flags & NDR_SET_VALUES) {
26109 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26111 if (flags & NDR_IN) {
26112 ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
26113 ndr->depth++;
26114 ndr->depth--;
26116 if (flags & NDR_OUT) {
26117 ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
26118 ndr->depth++;
26119 ndr_print_WERROR(ndr, "result", r->out.result);
26120 ndr->depth--;
26122 ndr->depth--;
26125 static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProcessor *r)
26127 if (flags & NDR_IN) {
26129 if (flags & NDR_OUT) {
26130 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26132 return NDR_ERR_SUCCESS;
26135 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProcessor *r)
26137 if (flags & NDR_IN) {
26139 if (flags & NDR_OUT) {
26140 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26142 return NDR_ERR_SUCCESS;
26145 _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProcessor *r)
26147 ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
26148 ndr->depth++;
26149 if (flags & NDR_SET_VALUES) {
26150 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26152 if (flags & NDR_IN) {
26153 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
26154 ndr->depth++;
26155 ndr->depth--;
26157 if (flags & NDR_OUT) {
26158 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
26159 ndr->depth++;
26160 ndr_print_WERROR(ndr, "result", r->out.result);
26161 ndr->depth--;
26163 ndr->depth--;
26166 static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProvidor *r)
26168 if (flags & NDR_IN) {
26170 if (flags & NDR_OUT) {
26171 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26173 return NDR_ERR_SUCCESS;
26176 static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProvidor *r)
26178 if (flags & NDR_IN) {
26180 if (flags & NDR_OUT) {
26181 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26183 return NDR_ERR_SUCCESS;
26186 _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProvidor *r)
26188 ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
26189 ndr->depth++;
26190 if (flags & NDR_SET_VALUES) {
26191 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26193 if (flags & NDR_IN) {
26194 ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
26195 ndr->depth++;
26196 ndr->depth--;
26198 if (flags & NDR_OUT) {
26199 ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
26200 ndr->depth++;
26201 ndr_print_WERROR(ndr, "result", r->out.result);
26202 ndr->depth--;
26204 ndr->depth--;
26207 static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProvidor *r)
26209 if (flags & NDR_IN) {
26211 if (flags & NDR_OUT) {
26212 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26214 return NDR_ERR_SUCCESS;
26217 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProvidor *r)
26219 if (flags & NDR_IN) {
26221 if (flags & NDR_OUT) {
26222 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26224 return NDR_ERR_SUCCESS;
26227 _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProvidor *r)
26229 ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
26230 ndr->depth++;
26231 if (flags & NDR_SET_VALUES) {
26232 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26234 if (flags & NDR_IN) {
26235 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
26236 ndr->depth++;
26237 ndr->depth--;
26239 if (flags & NDR_OUT) {
26240 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
26241 ndr->depth++;
26242 ndr_print_WERROR(ndr, "result", r->out.result);
26243 ndr->depth--;
26245 ndr->depth--;
26248 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcDataTypes *r)
26250 if (flags & NDR_IN) {
26251 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
26252 if (r->in.servername) {
26253 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
26254 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26255 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
26256 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26258 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.print_processor_name));
26259 if (r->in.print_processor_name) {
26260 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
26261 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26262 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
26263 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));
26265 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
26266 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
26267 if (r->in.buffer) {
26268 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
26270 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26272 if (flags & NDR_OUT) {
26273 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
26274 if (r->out.info) {
26275 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
26277 if (r->out.needed == NULL) {
26278 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26280 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26281 if (r->out.count == NULL) {
26282 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26284 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
26285 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26287 return NDR_ERR_SUCCESS;
26290 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcDataTypes *r)
26292 uint32_t _ptr_servername;
26293 uint32_t _ptr_print_processor_name;
26294 uint32_t _ptr_buffer;
26295 uint32_t _ptr_info;
26296 TALLOC_CTX *_mem_save_servername_0;
26297 TALLOC_CTX *_mem_save_print_processor_name_0;
26298 TALLOC_CTX *_mem_save_buffer_0;
26299 TALLOC_CTX *_mem_save_info_0;
26300 TALLOC_CTX *_mem_save_needed_0;
26301 TALLOC_CTX *_mem_save_count_0;
26302 if (flags & NDR_IN) {
26303 ZERO_STRUCT(r->out);
26305 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
26306 if (_ptr_servername) {
26307 NDR_PULL_ALLOC(ndr, r->in.servername);
26308 } else {
26309 r->in.servername = NULL;
26311 if (r->in.servername) {
26312 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
26313 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
26314 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
26315 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
26316 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
26317 return 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));
26319 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
26320 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
26321 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
26323 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
26324 if (_ptr_print_processor_name) {
26325 NDR_PULL_ALLOC(ndr, r->in.print_processor_name);
26326 } else {
26327 r->in.print_processor_name = NULL;
26329 if (r->in.print_processor_name) {
26330 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
26331 NDR_PULL_SET_MEM_CTX(ndr, r->in.print_processor_name, 0);
26332 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
26333 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
26334 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
26335 return 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));
26337 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
26338 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));
26339 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
26341 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
26342 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
26343 if (_ptr_buffer) {
26344 NDR_PULL_ALLOC(ndr, r->in.buffer);
26345 } else {
26346 r->in.buffer = NULL;
26348 if (r->in.buffer) {
26349 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26350 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
26351 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
26352 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
26354 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26355 NDR_PULL_ALLOC(ndr, r->out.needed);
26356 ZERO_STRUCTP(r->out.needed);
26357 NDR_PULL_ALLOC(ndr, r->out.count);
26358 ZERO_STRUCTP(r->out.count);
26360 if (flags & NDR_OUT) {
26361 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
26362 if (_ptr_info) {
26363 NDR_PULL_ALLOC(ndr, r->out.info);
26364 } else {
26365 r->out.info = NULL;
26367 if (r->out.info) {
26368 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26369 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
26370 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
26371 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
26373 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26374 NDR_PULL_ALLOC(ndr, r->out.needed);
26376 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26377 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26378 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26379 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26380 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26381 NDR_PULL_ALLOC(ndr, r->out.count);
26383 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
26384 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
26385 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
26386 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
26387 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26389 return NDR_ERR_SUCCESS;
26392 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcDataTypes *r)
26394 uint32_t cntr_info_0;
26395 if (flags & NDR_IN) {
26396 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
26397 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
26399 if (flags & NDR_OUT) {
26400 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
26401 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
26402 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
26404 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
26405 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
26408 return NDR_ERR_SUCCESS;
26411 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcDataTypes *r)
26413 uint32_t cntr_info_0;
26414 TALLOC_CTX *_mem_save_info_0;
26415 if (flags & NDR_IN) {
26416 ZERO_STRUCT(r->out);
26418 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
26419 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
26421 if (flags & NDR_OUT) {
26422 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
26423 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26424 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
26425 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
26426 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
26427 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
26429 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
26430 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
26432 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
26434 return NDR_ERR_SUCCESS;
26437 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
26439 uint32_t cntr_info_2;
26440 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcDataTypes");
26441 ndr->depth++;
26442 if (flags & NDR_SET_VALUES) {
26443 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26445 if (flags & NDR_IN) {
26446 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcDataTypes");
26447 ndr->depth++;
26448 ndr_print_ptr(ndr, "servername", r->in.servername);
26449 ndr->depth++;
26450 if (r->in.servername) {
26451 ndr_print_string(ndr, "servername", r->in.servername);
26453 ndr->depth--;
26454 ndr_print_ptr(ndr, "print_processor_name", r->in.print_processor_name);
26455 ndr->depth++;
26456 if (r->in.print_processor_name) {
26457 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
26459 ndr->depth--;
26460 ndr_print_uint32(ndr, "level", r->in.level);
26461 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26462 ndr->depth++;
26463 if (r->in.buffer) {
26464 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
26466 ndr->depth--;
26467 ndr_print_uint32(ndr, "offered", r->in.offered);
26468 ndr->depth--;
26470 if (flags & NDR_OUT) {
26471 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcDataTypes");
26472 ndr->depth++;
26473 ndr_print_ptr(ndr, "count", r->out.count);
26474 ndr->depth++;
26475 ndr_print_uint32(ndr, "count", *r->out.count);
26476 ndr->depth--;
26477 ndr_print_ptr(ndr, "info", r->out.info);
26478 ndr->depth++;
26479 ndr_print_ptr(ndr, "info", *r->out.info);
26480 ndr->depth++;
26481 if (*r->out.info) {
26482 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
26483 ndr->depth++;
26484 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
26485 char *idx_2=NULL;
26486 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
26487 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
26488 ndr_print_spoolss_PrintProcDataTypesInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
26489 free(idx_2);
26492 ndr->depth--;
26494 ndr->depth--;
26495 ndr->depth--;
26496 ndr_print_ptr(ndr, "needed", r->out.needed);
26497 ndr->depth++;
26498 ndr_print_uint32(ndr, "needed", *r->out.needed);
26499 ndr->depth--;
26500 ndr_print_WERROR(ndr, "result", r->out.result);
26501 ndr->depth--;
26503 ndr->depth--;
26506 static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinter *r)
26508 if (flags & NDR_IN) {
26509 if (r->in.handle == NULL) {
26510 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26512 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26513 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_type));
26514 if (r->in.data_type) {
26515 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
26516 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26517 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
26518 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));
26520 if (r->in.devmode_ctr == NULL) {
26521 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26523 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
26525 if (flags & NDR_OUT) {
26526 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26528 return NDR_ERR_SUCCESS;
26531 static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinter *r)
26533 uint32_t _ptr_data_type;
26534 TALLOC_CTX *_mem_save_handle_0;
26535 TALLOC_CTX *_mem_save_data_type_0;
26536 TALLOC_CTX *_mem_save_devmode_ctr_0;
26537 if (flags & NDR_IN) {
26538 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26539 NDR_PULL_ALLOC(ndr, r->in.handle);
26541 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26542 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26543 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26544 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26545 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
26546 if (_ptr_data_type) {
26547 NDR_PULL_ALLOC(ndr, r->in.data_type);
26548 } else {
26549 r->in.data_type = NULL;
26551 if (r->in.data_type) {
26552 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
26553 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
26554 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
26555 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
26556 if (ndr_get_array_length(ndr, &r->in.data_type) > ndr_get_array_size(ndr, &r->in.data_type)) {
26557 return 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));
26559 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t)));
26560 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));
26561 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
26563 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26564 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
26566 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26567 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
26568 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
26569 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26571 if (flags & NDR_OUT) {
26572 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26574 return NDR_ERR_SUCCESS;
26577 _PUBLIC_ void ndr_print_spoolss_ResetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinter *r)
26579 ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
26580 ndr->depth++;
26581 if (flags & NDR_SET_VALUES) {
26582 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26584 if (flags & NDR_IN) {
26585 ndr_print_struct(ndr, "in", "spoolss_ResetPrinter");
26586 ndr->depth++;
26587 ndr_print_ptr(ndr, "handle", r->in.handle);
26588 ndr->depth++;
26589 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26590 ndr->depth--;
26591 ndr_print_ptr(ndr, "data_type", r->in.data_type);
26592 ndr->depth++;
26593 if (r->in.data_type) {
26594 ndr_print_string(ndr, "data_type", r->in.data_type);
26596 ndr->depth--;
26597 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
26598 ndr->depth++;
26599 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
26600 ndr->depth--;
26601 ndr->depth--;
26603 if (flags & NDR_OUT) {
26604 ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
26605 ndr->depth++;
26606 ndr_print_WERROR(ndr, "result", r->out.result);
26607 ndr->depth--;
26609 ndr->depth--;
26612 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver2 *r)
26614 if (flags & NDR_IN) {
26615 if (r->in.handle == NULL) {
26616 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26618 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26619 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
26620 if (r->in.architecture) {
26621 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
26622 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26623 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
26624 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26626 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
26627 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
26628 if (r->in.buffer) {
26629 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
26631 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26632 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
26633 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
26635 if (flags & NDR_OUT) {
26636 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
26637 if (r->out.info) {
26639 struct ndr_push *_ndr_info;
26640 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
26641 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
26642 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
26643 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
26646 if (r->out.needed == NULL) {
26647 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26649 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26650 if (r->out.server_major_version == NULL) {
26651 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26653 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
26654 if (r->out.server_minor_version == NULL) {
26655 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26657 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
26658 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26660 return NDR_ERR_SUCCESS;
26663 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver2 *r)
26665 uint32_t _ptr_architecture;
26666 uint32_t _ptr_buffer;
26667 uint32_t _ptr_info;
26668 TALLOC_CTX *_mem_save_handle_0;
26669 TALLOC_CTX *_mem_save_architecture_0;
26670 TALLOC_CTX *_mem_save_buffer_0;
26671 TALLOC_CTX *_mem_save_info_0;
26672 TALLOC_CTX *_mem_save_needed_0;
26673 TALLOC_CTX *_mem_save_server_major_version_0;
26674 TALLOC_CTX *_mem_save_server_minor_version_0;
26675 if (flags & NDR_IN) {
26676 ZERO_STRUCT(r->out);
26678 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26679 NDR_PULL_ALLOC(ndr, r->in.handle);
26681 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26682 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26683 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26684 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26685 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
26686 if (_ptr_architecture) {
26687 NDR_PULL_ALLOC(ndr, r->in.architecture);
26688 } else {
26689 r->in.architecture = NULL;
26691 if (r->in.architecture) {
26692 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
26693 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
26694 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
26695 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
26696 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
26697 return 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));
26699 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
26700 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
26701 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
26703 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
26704 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
26705 if (_ptr_buffer) {
26706 NDR_PULL_ALLOC(ndr, r->in.buffer);
26707 } else {
26708 r->in.buffer = NULL;
26710 if (r->in.buffer) {
26711 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26712 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
26713 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
26714 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
26716 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26717 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
26718 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
26719 NDR_PULL_ALLOC(ndr, r->out.needed);
26720 ZERO_STRUCTP(r->out.needed);
26721 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
26722 ZERO_STRUCTP(r->out.server_major_version);
26723 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
26724 ZERO_STRUCTP(r->out.server_minor_version);
26726 if (flags & NDR_OUT) {
26727 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
26728 if (_ptr_info) {
26729 NDR_PULL_ALLOC(ndr, r->out.info);
26730 } else {
26731 r->out.info = NULL;
26733 if (r->out.info) {
26734 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26735 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
26737 struct ndr_pull *_ndr_info;
26738 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
26739 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
26740 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
26741 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
26743 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
26745 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26746 NDR_PULL_ALLOC(ndr, r->out.needed);
26748 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26749 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26750 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26751 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26752 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26753 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
26755 _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
26756 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
26757 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
26758 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
26759 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26760 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
26762 _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
26763 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
26764 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
26765 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
26766 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26768 return NDR_ERR_SUCCESS;
26771 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver2 *r)
26773 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
26774 ndr->depth++;
26775 if (flags & NDR_SET_VALUES) {
26776 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26778 if (flags & NDR_IN) {
26779 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
26780 ndr->depth++;
26781 ndr_print_ptr(ndr, "handle", r->in.handle);
26782 ndr->depth++;
26783 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26784 ndr->depth--;
26785 ndr_print_ptr(ndr, "architecture", r->in.architecture);
26786 ndr->depth++;
26787 if (r->in.architecture) {
26788 ndr_print_string(ndr, "architecture", r->in.architecture);
26790 ndr->depth--;
26791 ndr_print_uint32(ndr, "level", r->in.level);
26792 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26793 ndr->depth++;
26794 if (r->in.buffer) {
26795 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
26797 ndr->depth--;
26798 ndr_print_uint32(ndr, "offered", r->in.offered);
26799 ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
26800 ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
26801 ndr->depth--;
26803 if (flags & NDR_OUT) {
26804 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
26805 ndr->depth++;
26806 ndr_print_ptr(ndr, "info", r->out.info);
26807 ndr->depth++;
26808 if (r->out.info) {
26809 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
26810 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
26812 ndr->depth--;
26813 ndr_print_ptr(ndr, "needed", r->out.needed);
26814 ndr->depth++;
26815 ndr_print_uint32(ndr, "needed", *r->out.needed);
26816 ndr->depth--;
26817 ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
26818 ndr->depth++;
26819 ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
26820 ndr->depth--;
26821 ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
26822 ndr->depth++;
26823 ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
26824 ndr->depth--;
26825 ndr_print_WERROR(ndr, "result", r->out.result);
26826 ndr->depth--;
26828 ndr->depth--;
26831 static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
26833 if (flags & NDR_IN) {
26835 if (flags & NDR_OUT) {
26836 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26838 return NDR_ERR_SUCCESS;
26841 static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindFirstPrinterChangeNotification *r)
26843 if (flags & NDR_IN) {
26845 if (flags & NDR_OUT) {
26846 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26848 return NDR_ERR_SUCCESS;
26851 _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
26853 ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
26854 ndr->depth++;
26855 if (flags & NDR_SET_VALUES) {
26856 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26858 if (flags & NDR_IN) {
26859 ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
26860 ndr->depth++;
26861 ndr->depth--;
26863 if (flags & NDR_OUT) {
26864 ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
26865 ndr->depth++;
26866 ndr_print_WERROR(ndr, "result", r->out.result);
26867 ndr->depth--;
26869 ndr->depth--;
26872 static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
26874 if (flags & NDR_IN) {
26876 if (flags & NDR_OUT) {
26877 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26879 return NDR_ERR_SUCCESS;
26882 static enum ndr_err_code ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindNextPrinterChangeNotification *r)
26884 if (flags & NDR_IN) {
26886 if (flags & NDR_OUT) {
26887 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26889 return NDR_ERR_SUCCESS;
26892 _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
26894 ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
26895 ndr->depth++;
26896 if (flags & NDR_SET_VALUES) {
26897 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26899 if (flags & NDR_IN) {
26900 ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
26901 ndr->depth++;
26902 ndr->depth--;
26904 if (flags & NDR_OUT) {
26905 ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
26906 ndr->depth++;
26907 ndr_print_WERROR(ndr, "result", r->out.result);
26908 ndr->depth--;
26910 ndr->depth--;
26913 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, int flags, const struct spoolss_FindClosePrinterNotify *r)
26915 if (flags & NDR_IN) {
26916 if (r->in.handle == NULL) {
26917 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26919 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26921 if (flags & NDR_OUT) {
26922 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26924 return NDR_ERR_SUCCESS;
26927 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, int flags, struct spoolss_FindClosePrinterNotify *r)
26929 TALLOC_CTX *_mem_save_handle_0;
26930 if (flags & NDR_IN) {
26931 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26932 NDR_PULL_ALLOC(ndr, r->in.handle);
26934 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26935 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26936 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26937 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26939 if (flags & NDR_OUT) {
26940 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26942 return NDR_ERR_SUCCESS;
26945 _PUBLIC_ void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindClosePrinterNotify *r)
26947 ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
26948 ndr->depth++;
26949 if (flags & NDR_SET_VALUES) {
26950 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26952 if (flags & NDR_IN) {
26953 ndr_print_struct(ndr, "in", "spoolss_FindClosePrinterNotify");
26954 ndr->depth++;
26955 ndr_print_ptr(ndr, "handle", r->in.handle);
26956 ndr->depth++;
26957 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26958 ndr->depth--;
26959 ndr->depth--;
26961 if (flags & NDR_OUT) {
26962 ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
26963 ndr->depth++;
26964 ndr_print_WERROR(ndr, "result", r->out.result);
26965 ndr->depth--;
26967 ndr->depth--;
26970 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
26972 if (flags & NDR_IN) {
26974 if (flags & NDR_OUT) {
26975 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26977 return NDR_ERR_SUCCESS;
26980 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
26982 if (flags & NDR_IN) {
26984 if (flags & NDR_OUT) {
26985 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26987 return NDR_ERR_SUCCESS;
26990 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
26992 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26993 ndr->depth++;
26994 if (flags & NDR_SET_VALUES) {
26995 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26997 if (flags & NDR_IN) {
26998 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26999 ndr->depth++;
27000 ndr->depth--;
27002 if (flags & NDR_OUT) {
27003 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
27004 ndr->depth++;
27005 ndr_print_WERROR(ndr, "result", r->out.result);
27006 ndr->depth--;
27008 ndr->depth--;
27011 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyOpenPrinter *r)
27013 if (flags & NDR_IN) {
27014 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
27015 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27016 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
27017 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));
27018 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
27019 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
27020 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
27021 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
27022 if (r->in.buffer) {
27023 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.bufsize));
27024 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
27027 if (flags & NDR_OUT) {
27028 if (r->out.handle == NULL) {
27029 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27031 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27032 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27034 return NDR_ERR_SUCCESS;
27037 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyOpenPrinter *r)
27039 uint32_t _ptr_buffer;
27040 TALLOC_CTX *_mem_save_buffer_0;
27041 TALLOC_CTX *_mem_save_handle_0;
27042 if (flags & NDR_IN) {
27043 ZERO_STRUCT(r->out);
27045 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
27046 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
27047 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
27048 return 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));
27050 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
27051 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));
27052 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
27053 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
27054 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
27055 if (r->in.bufsize > 512) {
27056 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
27058 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
27059 if (_ptr_buffer) {
27060 NDR_PULL_ALLOC(ndr, r->in.buffer);
27061 } else {
27062 r->in.buffer = NULL;
27064 if (r->in.buffer) {
27065 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
27066 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
27067 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
27068 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
27069 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
27070 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
27072 NDR_PULL_ALLOC(ndr, r->out.handle);
27073 ZERO_STRUCTP(r->out.handle);
27074 if (r->in.buffer) {
27075 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
27078 if (flags & NDR_OUT) {
27079 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27080 NDR_PULL_ALLOC(ndr, r->out.handle);
27082 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27083 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
27084 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27085 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27086 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27088 return NDR_ERR_SUCCESS;
27091 _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyOpenPrinter *r)
27093 ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
27094 ndr->depth++;
27095 if (flags & NDR_SET_VALUES) {
27096 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27098 if (flags & NDR_IN) {
27099 ndr_print_struct(ndr, "in", "spoolss_ReplyOpenPrinter");
27100 ndr->depth++;
27101 ndr_print_string(ndr, "server_name", r->in.server_name);
27102 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
27103 ndr_print_winreg_Type(ndr, "type", r->in.type);
27104 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
27105 ndr_print_ptr(ndr, "buffer", r->in.buffer);
27106 ndr->depth++;
27107 if (r->in.buffer) {
27108 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
27110 ndr->depth--;
27111 ndr->depth--;
27113 if (flags & NDR_OUT) {
27114 ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
27115 ndr->depth++;
27116 ndr_print_ptr(ndr, "handle", r->out.handle);
27117 ndr->depth++;
27118 ndr_print_policy_handle(ndr, "handle", r->out.handle);
27119 ndr->depth--;
27120 ndr_print_WERROR(ndr, "result", r->out.result);
27121 ndr->depth--;
27123 ndr->depth--;
27126 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinter *r)
27128 if (flags & NDR_IN) {
27129 if (r->in.handle == NULL) {
27130 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27132 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27133 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
27134 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
27135 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
27136 if (r->in.buffer) {
27137 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.bufsize));
27138 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
27141 if (flags & NDR_OUT) {
27142 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27144 return NDR_ERR_SUCCESS;
27147 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinter *r)
27149 uint32_t _ptr_buffer;
27150 TALLOC_CTX *_mem_save_handle_0;
27151 TALLOC_CTX *_mem_save_buffer_0;
27152 if (flags & NDR_IN) {
27153 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27154 NDR_PULL_ALLOC(ndr, r->in.handle);
27156 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27157 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27158 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27159 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27160 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
27161 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
27162 if (r->in.bufsize > 512) {
27163 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
27165 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
27166 if (_ptr_buffer) {
27167 NDR_PULL_ALLOC(ndr, r->in.buffer);
27168 } else {
27169 r->in.buffer = NULL;
27171 if (r->in.buffer) {
27172 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
27173 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
27174 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
27175 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
27176 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
27177 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
27179 if (r->in.buffer) {
27180 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
27183 if (flags & NDR_OUT) {
27184 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27186 return NDR_ERR_SUCCESS;
27189 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinter *r)
27191 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
27192 ndr->depth++;
27193 if (flags & NDR_SET_VALUES) {
27194 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27196 if (flags & NDR_IN) {
27197 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
27198 ndr->depth++;
27199 ndr_print_ptr(ndr, "handle", r->in.handle);
27200 ndr->depth++;
27201 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27202 ndr->depth--;
27203 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
27204 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
27205 ndr_print_ptr(ndr, "buffer", r->in.buffer);
27206 ndr->depth++;
27207 if (r->in.buffer) {
27208 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
27210 ndr->depth--;
27211 ndr->depth--;
27213 if (flags & NDR_OUT) {
27214 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
27215 ndr->depth++;
27216 ndr_print_WERROR(ndr, "result", r->out.result);
27217 ndr->depth--;
27219 ndr->depth--;
27222 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyClosePrinter *r)
27224 if (flags & NDR_IN) {
27225 if (r->in.handle == NULL) {
27226 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27228 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27230 if (flags & NDR_OUT) {
27231 if (r->out.handle == NULL) {
27232 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27234 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27235 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27237 return NDR_ERR_SUCCESS;
27240 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyClosePrinter *r)
27242 TALLOC_CTX *_mem_save_handle_0;
27243 if (flags & NDR_IN) {
27244 ZERO_STRUCT(r->out);
27246 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27247 NDR_PULL_ALLOC(ndr, r->in.handle);
27249 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27250 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27251 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27252 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27253 NDR_PULL_ALLOC(ndr, r->out.handle);
27254 *r->out.handle = *r->in.handle;
27256 if (flags & NDR_OUT) {
27257 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27258 NDR_PULL_ALLOC(ndr, r->out.handle);
27260 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27261 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
27262 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27263 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27264 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27266 return NDR_ERR_SUCCESS;
27269 _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyClosePrinter *r)
27271 ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
27272 ndr->depth++;
27273 if (flags & NDR_SET_VALUES) {
27274 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27276 if (flags & NDR_IN) {
27277 ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
27278 ndr->depth++;
27279 ndr_print_ptr(ndr, "handle", r->in.handle);
27280 ndr->depth++;
27281 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27282 ndr->depth--;
27283 ndr->depth--;
27285 if (flags & NDR_OUT) {
27286 ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
27287 ndr->depth++;
27288 ndr_print_ptr(ndr, "handle", r->out.handle);
27289 ndr->depth++;
27290 ndr_print_policy_handle(ndr, "handle", r->out.handle);
27291 ndr->depth--;
27292 ndr_print_WERROR(ndr, "result", r->out.result);
27293 ndr->depth--;
27295 ndr->depth--;
27298 static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPortEx *r)
27300 if (flags & NDR_IN) {
27302 if (flags & NDR_OUT) {
27303 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27305 return NDR_ERR_SUCCESS;
27308 static enum ndr_err_code ndr_pull_spoolss_AddPortEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPortEx *r)
27310 if (flags & NDR_IN) {
27312 if (flags & NDR_OUT) {
27313 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27315 return NDR_ERR_SUCCESS;
27318 _PUBLIC_ void ndr_print_spoolss_AddPortEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPortEx *r)
27320 ndr_print_struct(ndr, name, "spoolss_AddPortEx");
27321 ndr->depth++;
27322 if (flags & NDR_SET_VALUES) {
27323 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27325 if (flags & NDR_IN) {
27326 ndr_print_struct(ndr, "in", "spoolss_AddPortEx");
27327 ndr->depth++;
27328 ndr->depth--;
27330 if (flags & NDR_OUT) {
27331 ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
27332 ndr->depth++;
27333 ndr_print_WERROR(ndr, "result", r->out.result);
27334 ndr->depth--;
27336 ndr->depth--;
27339 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
27341 if (flags & NDR_IN) {
27343 if (flags & NDR_OUT) {
27344 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27346 return NDR_ERR_SUCCESS;
27349 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
27351 if (flags & NDR_IN) {
27353 if (flags & NDR_OUT) {
27354 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27356 return NDR_ERR_SUCCESS;
27359 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
27361 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
27362 ndr->depth++;
27363 if (flags & NDR_SET_VALUES) {
27364 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27366 if (flags & NDR_IN) {
27367 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
27368 ndr->depth++;
27369 ndr->depth--;
27371 if (flags & NDR_OUT) {
27372 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
27373 ndr->depth++;
27374 ndr_print_WERROR(ndr, "result", r->out.result);
27375 ndr->depth--;
27377 ndr->depth--;
27380 static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, int flags, const struct spoolss_SpoolerInit *r)
27382 if (flags & NDR_IN) {
27384 if (flags & NDR_OUT) {
27385 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27387 return NDR_ERR_SUCCESS;
27390 static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, int flags, struct spoolss_SpoolerInit *r)
27392 if (flags & NDR_IN) {
27394 if (flags & NDR_OUT) {
27395 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27397 return NDR_ERR_SUCCESS;
27400 _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SpoolerInit *r)
27402 ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
27403 ndr->depth++;
27404 if (flags & NDR_SET_VALUES) {
27405 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27407 if (flags & NDR_IN) {
27408 ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
27409 ndr->depth++;
27410 ndr->depth--;
27412 if (flags & NDR_OUT) {
27413 ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
27414 ndr->depth++;
27415 ndr_print_WERROR(ndr, "result", r->out.result);
27416 ndr->depth--;
27418 ndr->depth--;
27421 static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinterEx *r)
27423 if (flags & NDR_IN) {
27425 if (flags & NDR_OUT) {
27426 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27428 return NDR_ERR_SUCCESS;
27431 static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinterEx *r)
27433 if (flags & NDR_IN) {
27435 if (flags & NDR_OUT) {
27436 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27438 return NDR_ERR_SUCCESS;
27441 _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinterEx *r)
27443 ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
27444 ndr->depth++;
27445 if (flags & NDR_SET_VALUES) {
27446 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27448 if (flags & NDR_IN) {
27449 ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
27450 ndr->depth++;
27451 ndr->depth--;
27453 if (flags & NDR_OUT) {
27454 ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
27455 ndr->depth++;
27456 ndr_print_WERROR(ndr, "result", r->out.result);
27457 ndr->depth--;
27459 ndr->depth--;
27462 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
27464 if (flags & NDR_IN) {
27465 if (r->in.handle == NULL) {
27466 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27468 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27469 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
27470 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
27471 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.local_machine));
27472 if (r->in.local_machine) {
27473 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
27474 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27475 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
27476 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));
27478 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
27479 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.notify_options));
27480 if (r->in.notify_options) {
27481 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
27484 if (flags & NDR_OUT) {
27485 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27487 return NDR_ERR_SUCCESS;
27490 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
27492 uint32_t _ptr_local_machine;
27493 uint32_t _ptr_notify_options;
27494 TALLOC_CTX *_mem_save_handle_0;
27495 TALLOC_CTX *_mem_save_local_machine_0;
27496 TALLOC_CTX *_mem_save_notify_options_0;
27497 if (flags & NDR_IN) {
27498 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27499 NDR_PULL_ALLOC(ndr, r->in.handle);
27501 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27502 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27503 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27504 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27505 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
27506 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
27507 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local_machine));
27508 if (_ptr_local_machine) {
27509 NDR_PULL_ALLOC(ndr, r->in.local_machine);
27510 } else {
27511 r->in.local_machine = NULL;
27513 if (r->in.local_machine) {
27514 _mem_save_local_machine_0 = NDR_PULL_GET_MEM_CTX(ndr);
27515 NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
27516 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
27517 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
27518 if (ndr_get_array_length(ndr, &r->in.local_machine) > ndr_get_array_size(ndr, &r->in.local_machine)) {
27519 return 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));
27521 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t)));
27522 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));
27523 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
27525 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
27526 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_options));
27527 if (_ptr_notify_options) {
27528 NDR_PULL_ALLOC(ndr, r->in.notify_options);
27529 } else {
27530 r->in.notify_options = NULL;
27532 if (r->in.notify_options) {
27533 _mem_save_notify_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
27534 NDR_PULL_SET_MEM_CTX(ndr, r->in.notify_options, 0);
27535 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
27536 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_options_0, 0);
27539 if (flags & NDR_OUT) {
27540 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27542 return NDR_ERR_SUCCESS;
27545 _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
27547 ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
27548 ndr->depth++;
27549 if (flags & NDR_SET_VALUES) {
27550 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27552 if (flags & NDR_IN) {
27553 ndr_print_struct(ndr, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
27554 ndr->depth++;
27555 ndr_print_ptr(ndr, "handle", r->in.handle);
27556 ndr->depth++;
27557 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27558 ndr->depth--;
27559 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
27560 ndr_print_uint32(ndr, "options", r->in.options);
27561 ndr_print_ptr(ndr, "local_machine", r->in.local_machine);
27562 ndr->depth++;
27563 if (r->in.local_machine) {
27564 ndr_print_string(ndr, "local_machine", r->in.local_machine);
27566 ndr->depth--;
27567 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
27568 ndr_print_ptr(ndr, "notify_options", r->in.notify_options);
27569 ndr->depth++;
27570 if (r->in.notify_options) {
27571 ndr_print_spoolss_NotifyOption(ndr, "notify_options", r->in.notify_options);
27573 ndr->depth--;
27574 ndr->depth--;
27576 if (flags & NDR_OUT) {
27577 ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
27578 ndr->depth++;
27579 ndr_print_WERROR(ndr, "result", r->out.result);
27580 ndr->depth--;
27582 ndr->depth--;
27585 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinterEx *r)
27587 if (flags & NDR_IN) {
27588 if (r->in.handle == NULL) {
27589 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27591 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27592 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.color));
27593 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
27594 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reply_type));
27595 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.reply_type));
27596 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
27598 if (flags & NDR_OUT) {
27599 if (r->out.reply_result == NULL) {
27600 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27602 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, *r->out.reply_result));
27603 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27605 return NDR_ERR_SUCCESS;
27608 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinterEx *r)
27610 TALLOC_CTX *_mem_save_handle_0;
27611 TALLOC_CTX *_mem_save_reply_result_0;
27612 if (flags & NDR_IN) {
27613 ZERO_STRUCT(r->out);
27615 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27616 NDR_PULL_ALLOC(ndr, r->in.handle);
27618 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27619 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27620 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27621 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27622 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.color));
27623 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
27624 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reply_type));
27625 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.reply_type));
27626 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
27627 NDR_PULL_ALLOC(ndr, r->out.reply_result);
27628 ZERO_STRUCTP(r->out.reply_result);
27630 if (flags & NDR_OUT) {
27631 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27632 NDR_PULL_ALLOC(ndr, r->out.reply_result);
27634 _mem_save_reply_result_0 = NDR_PULL_GET_MEM_CTX(ndr);
27635 NDR_PULL_SET_MEM_CTX(ndr, r->out.reply_result, LIBNDR_FLAG_REF_ALLOC);
27636 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, r->out.reply_result));
27637 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reply_result_0, LIBNDR_FLAG_REF_ALLOC);
27638 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27640 return NDR_ERR_SUCCESS;
27643 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinterEx *r)
27645 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinterEx");
27646 ndr->depth++;
27647 if (flags & NDR_SET_VALUES) {
27648 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27650 if (flags & NDR_IN) {
27651 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinterEx");
27652 ndr->depth++;
27653 ndr_print_ptr(ndr, "handle", r->in.handle);
27654 ndr->depth++;
27655 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27656 ndr->depth--;
27657 ndr_print_uint32(ndr, "color", r->in.color);
27658 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
27659 ndr_print_uint32(ndr, "reply_type", r->in.reply_type);
27660 ndr_print_set_switch_value(ndr, &r->in.info, r->in.reply_type);
27661 ndr_print_spoolss_ReplyPrinterInfo(ndr, "info", &r->in.info);
27662 ndr->depth--;
27664 if (flags & NDR_OUT) {
27665 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinterEx");
27666 ndr->depth++;
27667 ndr_print_ptr(ndr, "reply_result", r->out.reply_result);
27668 ndr->depth++;
27669 ndr_print_spoolss_PrinterNotifyFlags(ndr, "reply_result", *r->out.reply_result);
27670 ndr->depth--;
27671 ndr_print_WERROR(ndr, "result", r->out.result);
27672 ndr->depth--;
27674 ndr->depth--;
27677 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push *ndr, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
27679 if (flags & NDR_IN) {
27680 if (r->in.handle == NULL) {
27681 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27683 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27684 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
27685 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.options));
27686 if (r->in.options) {
27687 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
27690 if (flags & NDR_OUT) {
27691 if (r->out.info == NULL) {
27692 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27694 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
27695 if (*r->out.info) {
27696 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
27698 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27700 return NDR_ERR_SUCCESS;
27703 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull *ndr, int flags, struct spoolss_RouterRefreshPrinterChangeNotify *r)
27705 uint32_t _ptr_options;
27706 uint32_t _ptr_info;
27707 TALLOC_CTX *_mem_save_handle_0;
27708 TALLOC_CTX *_mem_save_options_0;
27709 TALLOC_CTX *_mem_save_info_0;
27710 TALLOC_CTX *_mem_save_info_1;
27711 if (flags & NDR_IN) {
27712 ZERO_STRUCT(r->out);
27714 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27715 NDR_PULL_ALLOC(ndr, r->in.handle);
27717 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27718 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27719 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27720 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27721 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
27722 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
27723 if (_ptr_options) {
27724 NDR_PULL_ALLOC(ndr, r->in.options);
27725 } else {
27726 r->in.options = NULL;
27728 if (r->in.options) {
27729 _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
27730 NDR_PULL_SET_MEM_CTX(ndr, r->in.options, 0);
27731 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
27732 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
27734 NDR_PULL_ALLOC(ndr, r->out.info);
27735 ZERO_STRUCTP(r->out.info);
27737 if (flags & NDR_OUT) {
27738 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27739 NDR_PULL_ALLOC(ndr, r->out.info);
27741 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
27742 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
27743 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
27744 if (_ptr_info) {
27745 NDR_PULL_ALLOC(ndr, *r->out.info);
27746 } else {
27747 *r->out.info = NULL;
27749 if (*r->out.info) {
27750 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
27751 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
27752 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
27753 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
27755 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
27756 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27758 return NDR_ERR_SUCCESS;
27761 _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
27763 ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotify");
27764 ndr->depth++;
27765 if (flags & NDR_SET_VALUES) {
27766 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27768 if (flags & NDR_IN) {
27769 ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotify");
27770 ndr->depth++;
27771 ndr_print_ptr(ndr, "handle", r->in.handle);
27772 ndr->depth++;
27773 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27774 ndr->depth--;
27775 ndr_print_uint32(ndr, "change_low", r->in.change_low);
27776 ndr_print_ptr(ndr, "options", r->in.options);
27777 ndr->depth++;
27778 if (r->in.options) {
27779 ndr_print_spoolss_NotifyOption(ndr, "options", r->in.options);
27781 ndr->depth--;
27782 ndr->depth--;
27784 if (flags & NDR_OUT) {
27785 ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotify");
27786 ndr->depth++;
27787 ndr_print_ptr(ndr, "info", r->out.info);
27788 ndr->depth++;
27789 ndr_print_ptr(ndr, "info", *r->out.info);
27790 ndr->depth++;
27791 if (*r->out.info) {
27792 ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
27794 ndr->depth--;
27795 ndr->depth--;
27796 ndr_print_WERROR(ndr, "result", r->out.result);
27797 ndr->depth--;
27799 ndr->depth--;
27802 static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, int flags, const struct spoolss_44 *r)
27804 if (flags & NDR_IN) {
27806 if (flags & NDR_OUT) {
27807 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27809 return NDR_ERR_SUCCESS;
27812 static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, int flags, struct spoolss_44 *r)
27814 if (flags & NDR_IN) {
27816 if (flags & NDR_OUT) {
27817 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27819 return NDR_ERR_SUCCESS;
27822 _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_44 *r)
27824 ndr_print_struct(ndr, name, "spoolss_44");
27825 ndr->depth++;
27826 if (flags & NDR_SET_VALUES) {
27827 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27829 if (flags & NDR_IN) {
27830 ndr_print_struct(ndr, "in", "spoolss_44");
27831 ndr->depth++;
27832 ndr->depth--;
27834 if (flags & NDR_OUT) {
27835 ndr_print_struct(ndr, "out", "spoolss_44");
27836 ndr->depth++;
27837 ndr_print_WERROR(ndr, "result", r->out.result);
27838 ndr->depth--;
27840 ndr->depth--;
27843 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinterEx *r)
27845 if (flags & NDR_IN) {
27846 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
27847 if (r->in.printername) {
27848 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
27849 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27850 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
27851 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27853 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
27854 if (r->in.datatype) {
27855 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
27856 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27857 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
27858 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27860 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
27861 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
27862 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
27863 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.userlevel, r->in.level));
27864 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
27866 if (flags & NDR_OUT) {
27867 if (r->out.handle == NULL) {
27868 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27870 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27871 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27873 return NDR_ERR_SUCCESS;
27876 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinterEx *r)
27878 uint32_t _ptr_printername;
27879 uint32_t _ptr_datatype;
27880 TALLOC_CTX *_mem_save_printername_0;
27881 TALLOC_CTX *_mem_save_datatype_0;
27882 TALLOC_CTX *_mem_save_handle_0;
27883 if (flags & NDR_IN) {
27884 ZERO_STRUCT(r->out);
27886 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
27887 if (_ptr_printername) {
27888 NDR_PULL_ALLOC(ndr, r->in.printername);
27889 } else {
27890 r->in.printername = NULL;
27892 if (r->in.printername) {
27893 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
27894 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
27895 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
27896 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
27897 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
27898 return 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));
27900 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
27901 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
27902 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
27904 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
27905 if (_ptr_datatype) {
27906 NDR_PULL_ALLOC(ndr, r->in.datatype);
27907 } else {
27908 r->in.datatype = NULL;
27910 if (r->in.datatype) {
27911 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
27912 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
27913 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
27914 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
27915 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
27916 return 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));
27918 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
27919 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
27920 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
27922 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
27923 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
27924 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
27925 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.userlevel, r->in.level));
27926 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
27927 NDR_PULL_ALLOC(ndr, r->out.handle);
27928 ZERO_STRUCTP(r->out.handle);
27930 if (flags & NDR_OUT) {
27931 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27932 NDR_PULL_ALLOC(ndr, r->out.handle);
27934 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27935 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
27936 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27937 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27938 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27940 return NDR_ERR_SUCCESS;
27943 _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinterEx *r)
27945 ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
27946 ndr->depth++;
27947 if (flags & NDR_SET_VALUES) {
27948 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27950 if (flags & NDR_IN) {
27951 ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
27952 ndr->depth++;
27953 ndr_print_ptr(ndr, "printername", r->in.printername);
27954 ndr->depth++;
27955 if (r->in.printername) {
27956 ndr_print_string(ndr, "printername", r->in.printername);
27958 ndr->depth--;
27959 ndr_print_ptr(ndr, "datatype", r->in.datatype);
27960 ndr->depth++;
27961 if (r->in.datatype) {
27962 ndr_print_string(ndr, "datatype", r->in.datatype);
27964 ndr->depth--;
27965 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
27966 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
27967 ndr_print_uint32(ndr, "level", r->in.level);
27968 ndr_print_set_switch_value(ndr, &r->in.userlevel, r->in.level);
27969 ndr_print_spoolss_UserLevel(ndr, "userlevel", &r->in.userlevel);
27970 ndr->depth--;
27972 if (flags & NDR_OUT) {
27973 ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
27974 ndr->depth++;
27975 ndr_print_ptr(ndr, "handle", r->out.handle);
27976 ndr->depth++;
27977 ndr_print_policy_handle(ndr, "handle", r->out.handle);
27978 ndr->depth--;
27979 ndr_print_WERROR(ndr, "result", r->out.result);
27980 ndr->depth--;
27982 ndr->depth--;
27985 static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterEx *r)
27987 if (flags & NDR_IN) {
27988 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
27989 if (r->in.server) {
27990 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27991 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27992 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27993 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27995 if (r->in.info_ctr == NULL) {
27996 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27998 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27999 if (r->in.devmode_ctr == NULL) {
28000 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28002 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
28003 if (r->in.secdesc_ctr == NULL) {
28004 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28006 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
28007 if (r->in.userlevel_ctr == NULL) {
28008 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28010 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
28012 if (flags & NDR_OUT) {
28013 if (r->out.handle == NULL) {
28014 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28016 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
28017 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28019 return NDR_ERR_SUCCESS;
28022 static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterEx *r)
28024 uint32_t _ptr_server;
28025 TALLOC_CTX *_mem_save_server_0;
28026 TALLOC_CTX *_mem_save_info_ctr_0;
28027 TALLOC_CTX *_mem_save_devmode_ctr_0;
28028 TALLOC_CTX *_mem_save_secdesc_ctr_0;
28029 TALLOC_CTX *_mem_save_userlevel_ctr_0;
28030 TALLOC_CTX *_mem_save_handle_0;
28031 if (flags & NDR_IN) {
28032 ZERO_STRUCT(r->out);
28034 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
28035 if (_ptr_server) {
28036 NDR_PULL_ALLOC(ndr, r->in.server);
28037 } else {
28038 r->in.server = NULL;
28040 if (r->in.server) {
28041 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
28042 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
28043 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
28044 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
28045 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
28046 return 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));
28048 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
28049 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
28050 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
28052 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28053 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
28055 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
28056 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
28057 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
28058 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
28059 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28060 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
28062 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
28063 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
28064 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
28065 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
28066 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28067 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
28069 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
28070 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
28071 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
28072 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
28073 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28074 NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
28076 _mem_save_userlevel_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
28077 NDR_PULL_SET_MEM_CTX(ndr, r->in.userlevel_ctr, LIBNDR_FLAG_REF_ALLOC);
28078 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
28079 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userlevel_ctr_0, LIBNDR_FLAG_REF_ALLOC);
28080 NDR_PULL_ALLOC(ndr, r->out.handle);
28081 ZERO_STRUCTP(r->out.handle);
28083 if (flags & NDR_OUT) {
28084 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28085 NDR_PULL_ALLOC(ndr, r->out.handle);
28087 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28088 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
28089 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
28090 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28091 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28093 return NDR_ERR_SUCCESS;
28096 _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterEx *r)
28098 ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
28099 ndr->depth++;
28100 if (flags & NDR_SET_VALUES) {
28101 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28103 if (flags & NDR_IN) {
28104 ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
28105 ndr->depth++;
28106 ndr_print_ptr(ndr, "server", r->in.server);
28107 ndr->depth++;
28108 if (r->in.server) {
28109 ndr_print_string(ndr, "server", r->in.server);
28111 ndr->depth--;
28112 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
28113 ndr->depth++;
28114 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
28115 ndr->depth--;
28116 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
28117 ndr->depth++;
28118 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
28119 ndr->depth--;
28120 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
28121 ndr->depth++;
28122 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
28123 ndr->depth--;
28124 ndr_print_ptr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
28125 ndr->depth++;
28126 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
28127 ndr->depth--;
28128 ndr->depth--;
28130 if (flags & NDR_OUT) {
28131 ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
28132 ndr->depth++;
28133 ndr_print_ptr(ndr, "handle", r->out.handle);
28134 ndr->depth++;
28135 ndr_print_policy_handle(ndr, "handle", r->out.handle);
28136 ndr->depth--;
28137 ndr_print_WERROR(ndr, "result", r->out.result);
28138 ndr->depth--;
28140 ndr->depth--;
28143 static enum ndr_err_code ndr_push_spoolss_47(struct ndr_push *ndr, int flags, const struct spoolss_47 *r)
28145 if (flags & NDR_IN) {
28147 if (flags & NDR_OUT) {
28148 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28150 return NDR_ERR_SUCCESS;
28153 static enum ndr_err_code ndr_pull_spoolss_47(struct ndr_pull *ndr, int flags, struct spoolss_47 *r)
28155 if (flags & NDR_IN) {
28157 if (flags & NDR_OUT) {
28158 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28160 return NDR_ERR_SUCCESS;
28163 _PUBLIC_ void ndr_print_spoolss_47(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_47 *r)
28165 ndr_print_struct(ndr, name, "spoolss_47");
28166 ndr->depth++;
28167 if (flags & NDR_SET_VALUES) {
28168 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28170 if (flags & NDR_IN) {
28171 ndr_print_struct(ndr, "in", "spoolss_47");
28172 ndr->depth++;
28173 ndr->depth--;
28175 if (flags & NDR_OUT) {
28176 ndr_print_struct(ndr, "out", "spoolss_47");
28177 ndr->depth++;
28178 ndr_print_WERROR(ndr, "result", r->out.result);
28179 ndr->depth--;
28181 ndr->depth--;
28184 static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterData *r)
28186 if (flags & NDR_IN) {
28187 if (r->in.handle == NULL) {
28188 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28190 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28191 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
28192 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
28193 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
28195 if (flags & NDR_OUT) {
28196 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.value_offered / 2));
28197 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
28198 if (r->out.value_needed == NULL) {
28199 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28201 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
28202 if (r->out.type == NULL) {
28203 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28205 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
28207 uint32_t _flags_save_uint8 = ndr->flags;
28208 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
28209 if (r->out.data == NULL) {
28210 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28212 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_offered));
28213 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_offered));
28214 ndr->flags = _flags_save_uint8;
28216 if (r->out.data_needed == NULL) {
28217 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28219 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
28220 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28222 return NDR_ERR_SUCCESS;
28225 static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterData *r)
28227 TALLOC_CTX *_mem_save_handle_0;
28228 TALLOC_CTX *_mem_save_value_needed_0;
28229 TALLOC_CTX *_mem_save_type_0;
28230 TALLOC_CTX *_mem_save_data_needed_0;
28231 if (flags & NDR_IN) {
28232 ZERO_STRUCT(r->out);
28234 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28235 NDR_PULL_ALLOC(ndr, r->in.handle);
28237 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28238 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28239 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28240 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28241 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
28242 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
28243 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
28244 NDR_PULL_ALLOC(ndr, r->out.value_needed);
28245 ZERO_STRUCTP(r->out.value_needed);
28246 NDR_PULL_ALLOC(ndr, r->out.type);
28247 ZERO_STRUCTP(r->out.type);
28248 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_offered);
28249 memset(r->out.data, 0, (r->in.data_offered) * sizeof(*r->out.data));
28250 NDR_PULL_ALLOC(ndr, r->out.data_needed);
28251 ZERO_STRUCTP(r->out.data_needed);
28253 if (flags & NDR_OUT) {
28254 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
28255 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));
28256 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28257 NDR_PULL_ALLOC(ndr, r->out.value_needed);
28259 _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28260 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
28261 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
28262 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
28263 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28264 NDR_PULL_ALLOC(ndr, r->out.type);
28266 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
28267 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
28268 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
28269 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
28271 uint32_t _flags_save_uint8 = ndr->flags;
28272 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
28273 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
28274 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28275 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
28277 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
28278 ndr->flags = _flags_save_uint8;
28280 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28281 NDR_PULL_ALLOC(ndr, r->out.data_needed);
28283 _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28284 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
28285 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
28286 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
28287 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28288 if (r->out.value_name) {
28289 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
28291 if (r->out.data) {
28292 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_offered));
28295 return NDR_ERR_SUCCESS;
28298 _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterData *r)
28300 ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
28301 ndr->depth++;
28302 if (flags & NDR_SET_VALUES) {
28303 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28305 if (flags & NDR_IN) {
28306 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
28307 ndr->depth++;
28308 ndr_print_ptr(ndr, "handle", r->in.handle);
28309 ndr->depth++;
28310 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28311 ndr->depth--;
28312 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
28313 ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
28314 ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
28315 ndr->depth--;
28317 if (flags & NDR_OUT) {
28318 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
28319 ndr->depth++;
28320 ndr_print_string(ndr, "value_name", r->out.value_name);
28321 ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
28322 ndr->depth++;
28323 ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
28324 ndr->depth--;
28325 ndr_print_ptr(ndr, "type", r->out.type);
28326 ndr->depth++;
28327 ndr_print_winreg_Type(ndr, "type", *r->out.type);
28328 ndr->depth--;
28329 ndr_print_ptr(ndr, "data", r->out.data);
28330 ndr->depth++;
28331 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_offered);
28332 ndr->depth--;
28333 ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
28334 ndr->depth++;
28335 ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
28336 ndr->depth--;
28337 ndr_print_WERROR(ndr, "result", r->out.result);
28338 ndr->depth--;
28340 ndr->depth--;
28343 static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterData *r)
28345 if (flags & NDR_IN) {
28346 if (r->in.handle == NULL) {
28347 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28349 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28350 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28351 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28352 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28353 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));
28355 if (flags & NDR_OUT) {
28356 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28358 return NDR_ERR_SUCCESS;
28361 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterData(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterData *r)
28363 TALLOC_CTX *_mem_save_handle_0;
28364 if (flags & NDR_IN) {
28365 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28366 NDR_PULL_ALLOC(ndr, r->in.handle);
28368 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28369 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28370 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28371 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28372 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
28373 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
28374 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
28375 return 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));
28377 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
28378 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));
28380 if (flags & NDR_OUT) {
28381 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28383 return NDR_ERR_SUCCESS;
28386 _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterData *r)
28388 ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
28389 ndr->depth++;
28390 if (flags & NDR_SET_VALUES) {
28391 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28393 if (flags & NDR_IN) {
28394 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
28395 ndr->depth++;
28396 ndr_print_ptr(ndr, "handle", r->in.handle);
28397 ndr->depth++;
28398 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28399 ndr->depth--;
28400 ndr_print_string(ndr, "value_name", r->in.value_name);
28401 ndr->depth--;
28403 if (flags & NDR_OUT) {
28404 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
28405 ndr->depth++;
28406 ndr_print_WERROR(ndr, "result", r->out.result);
28407 ndr->depth--;
28409 ndr->depth--;
28412 static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, int flags, const struct spoolss_4a *r)
28414 if (flags & NDR_IN) {
28416 if (flags & NDR_OUT) {
28417 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28419 return NDR_ERR_SUCCESS;
28422 static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, int flags, struct spoolss_4a *r)
28424 if (flags & NDR_IN) {
28426 if (flags & NDR_OUT) {
28427 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28429 return NDR_ERR_SUCCESS;
28432 _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4a *r)
28434 ndr_print_struct(ndr, name, "spoolss_4a");
28435 ndr->depth++;
28436 if (flags & NDR_SET_VALUES) {
28437 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28439 if (flags & NDR_IN) {
28440 ndr_print_struct(ndr, "in", "spoolss_4a");
28441 ndr->depth++;
28442 ndr->depth--;
28444 if (flags & NDR_OUT) {
28445 ndr_print_struct(ndr, "out", "spoolss_4a");
28446 ndr->depth++;
28447 ndr_print_WERROR(ndr, "result", r->out.result);
28448 ndr->depth--;
28450 ndr->depth--;
28453 static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, int flags, const struct spoolss_4b *r)
28455 if (flags & NDR_IN) {
28457 if (flags & NDR_OUT) {
28458 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28460 return NDR_ERR_SUCCESS;
28463 static enum ndr_err_code ndr_pull_spoolss_4b(struct ndr_pull *ndr, int flags, struct spoolss_4b *r)
28465 if (flags & NDR_IN) {
28467 if (flags & NDR_OUT) {
28468 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28470 return NDR_ERR_SUCCESS;
28473 _PUBLIC_ void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r)
28475 ndr_print_struct(ndr, name, "spoolss_4b");
28476 ndr->depth++;
28477 if (flags & NDR_SET_VALUES) {
28478 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28480 if (flags & NDR_IN) {
28481 ndr_print_struct(ndr, "in", "spoolss_4b");
28482 ndr->depth++;
28483 ndr->depth--;
28485 if (flags & NDR_OUT) {
28486 ndr_print_struct(ndr, "out", "spoolss_4b");
28487 ndr->depth++;
28488 ndr_print_WERROR(ndr, "result", r->out.result);
28489 ndr->depth--;
28491 ndr->depth--;
28494 static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, int flags, const struct spoolss_4c *r)
28496 if (flags & NDR_IN) {
28498 if (flags & NDR_OUT) {
28499 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28501 return NDR_ERR_SUCCESS;
28504 static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, int flags, struct spoolss_4c *r)
28506 if (flags & NDR_IN) {
28508 if (flags & NDR_OUT) {
28509 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28511 return NDR_ERR_SUCCESS;
28514 _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4c *r)
28516 ndr_print_struct(ndr, name, "spoolss_4c");
28517 ndr->depth++;
28518 if (flags & NDR_SET_VALUES) {
28519 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28521 if (flags & NDR_IN) {
28522 ndr_print_struct(ndr, "in", "spoolss_4c");
28523 ndr->depth++;
28524 ndr->depth--;
28526 if (flags & NDR_OUT) {
28527 ndr_print_struct(ndr, "out", "spoolss_4c");
28528 ndr->depth++;
28529 ndr_print_WERROR(ndr, "result", r->out.result);
28530 ndr->depth--;
28532 ndr->depth--;
28535 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterDataEx *r)
28537 if (flags & NDR_IN) {
28538 if (r->in.handle == NULL) {
28539 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28541 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28542 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28543 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28544 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28545 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));
28546 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28547 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28548 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28549 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));
28550 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
28551 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
28552 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
28554 if (flags & NDR_OUT) {
28555 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28557 return NDR_ERR_SUCCESS;
28560 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterDataEx *r)
28562 if (flags & NDR_IN) {
28563 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
28565 if (flags & NDR_OUT) {
28566 if (r->out.data == NULL) {
28567 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28569 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
28570 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
28572 return NDR_ERR_SUCCESS;
28575 static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterDataEx *r)
28577 TALLOC_CTX *_mem_save_handle_0;
28578 if (flags & NDR_IN) {
28579 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28580 NDR_PULL_ALLOC(ndr, r->in.handle);
28582 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28583 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28584 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28585 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28586 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28587 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28588 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28589 return 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));
28591 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28592 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));
28593 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
28594 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
28595 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
28596 return 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));
28598 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
28599 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));
28600 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
28602 struct ndr_pull *_ndr_data;
28603 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
28604 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
28605 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
28606 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
28608 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
28610 if (flags & NDR_OUT) {
28611 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28613 return NDR_ERR_SUCCESS;
28616 _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterDataEx *r)
28618 ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
28619 ndr->depth++;
28620 if (flags & NDR_SET_VALUES) {
28621 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28623 if (flags & NDR_IN) {
28624 ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
28625 ndr->depth++;
28626 ndr_print_ptr(ndr, "handle", r->in.handle);
28627 ndr->depth++;
28628 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28629 ndr->depth--;
28630 ndr_print_string(ndr, "key_name", r->in.key_name);
28631 ndr_print_string(ndr, "value_name", r->in.value_name);
28632 ndr_print_winreg_Type(ndr, "type", r->in.type);
28633 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
28634 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
28635 ndr_print_uint32(ndr, "_offered", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_PrinterData(&r->in.data, r->in.type, ndr->iconv_convenience, flags):r->in._offered);
28636 ndr->depth--;
28638 if (flags & NDR_OUT) {
28639 ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
28640 ndr->depth++;
28641 ndr_print_WERROR(ndr, "result", r->out.result);
28642 ndr->depth--;
28644 ndr->depth--;
28647 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterDataEx *r)
28649 if (flags & NDR_IN) {
28650 if (r->in.handle == NULL) {
28651 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28653 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28654 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28655 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28656 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28657 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));
28658 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28659 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28660 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28661 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));
28662 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
28664 if (flags & NDR_OUT) {
28665 if (r->out.type == NULL) {
28666 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28668 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
28669 if (r->out.data == NULL) {
28670 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28672 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.data));
28673 if (r->out.needed == NULL) {
28674 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28676 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28677 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28679 return NDR_ERR_SUCCESS;
28682 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterDataEx *r)
28684 TALLOC_CTX *_mem_save_handle_0;
28685 TALLOC_CTX *_mem_save_type_0;
28686 TALLOC_CTX *_mem_save_data_0;
28687 TALLOC_CTX *_mem_save_needed_0;
28688 if (flags & NDR_IN) {
28689 ZERO_STRUCT(r->out);
28691 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28692 NDR_PULL_ALLOC(ndr, r->in.handle);
28694 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28695 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28696 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28697 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28698 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28699 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28700 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28701 return 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));
28703 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28704 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));
28705 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
28706 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
28707 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
28708 return 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));
28710 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
28711 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));
28712 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
28713 NDR_PULL_ALLOC(ndr, r->out.type);
28714 ZERO_STRUCTP(r->out.type);
28715 NDR_PULL_ALLOC(ndr, r->out.data);
28716 ZERO_STRUCTP(r->out.data);
28717 NDR_PULL_ALLOC(ndr, r->out.needed);
28718 ZERO_STRUCTP(r->out.needed);
28720 if (flags & NDR_OUT) {
28721 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28722 NDR_PULL_ALLOC(ndr, r->out.type);
28724 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
28725 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
28726 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
28727 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
28728 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28729 NDR_PULL_ALLOC(ndr, r->out.data);
28731 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
28732 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
28733 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
28734 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
28735 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28736 NDR_PULL_ALLOC(ndr, r->out.needed);
28738 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28739 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28740 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28741 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28742 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28744 return NDR_ERR_SUCCESS;
28747 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterDataEx *r)
28749 if (flags & NDR_IN) {
28750 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
28752 if (flags & NDR_OUT) {
28753 if (r->out.data == NULL) {
28754 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28756 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
28757 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
28759 return NDR_ERR_SUCCESS;
28762 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterDataEx *r)
28764 TALLOC_CTX *_mem_save_data_0;
28765 if (flags & NDR_IN) {
28766 ZERO_STRUCT(r->out);
28768 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
28769 NDR_PULL_ALLOC(ndr, r->out.data);
28770 ZERO_STRUCTP(r->out.data);
28772 if (flags & NDR_OUT) {
28773 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28774 NDR_PULL_ALLOC(ndr, r->out.data);
28776 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
28777 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
28778 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.data, r->in.type));
28779 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
28780 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
28782 return NDR_ERR_SUCCESS;
28785 _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r)
28787 ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
28788 ndr->depth++;
28789 if (flags & NDR_SET_VALUES) {
28790 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28792 if (flags & NDR_IN) {
28793 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
28794 ndr->depth++;
28795 ndr_print_ptr(ndr, "handle", r->in.handle);
28796 ndr->depth++;
28797 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28798 ndr->depth--;
28799 ndr_print_string(ndr, "key_name", r->in.key_name);
28800 ndr_print_string(ndr, "value_name", r->in.value_name);
28801 ndr_print_uint32(ndr, "offered", r->in.offered);
28802 ndr->depth--;
28804 if (flags & NDR_OUT) {
28805 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
28806 ndr->depth++;
28807 ndr_print_ptr(ndr, "type", r->out.type);
28808 ndr->depth++;
28809 ndr_print_winreg_Type(ndr, "type", *r->out.type);
28810 ndr->depth--;
28811 ndr_print_ptr(ndr, "data", r->out.data);
28812 ndr->depth++;
28813 ndr_print_set_switch_value(ndr, r->out.data, *r->out.type);
28814 ndr_print_spoolss_PrinterData(ndr, "data", r->out.data);
28815 ndr->depth--;
28816 ndr_print_ptr(ndr, "needed", r->out.needed);
28817 ndr->depth++;
28818 ndr_print_uint32(ndr, "needed", *r->out.needed);
28819 ndr->depth--;
28820 ndr_print_WERROR(ndr, "result", r->out.result);
28821 ndr->depth--;
28823 ndr->depth--;
28826 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDataEx *r)
28828 if (flags & NDR_IN) {
28829 if (r->in.handle == NULL) {
28830 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28832 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28833 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28834 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28835 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28836 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));
28837 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
28839 if (flags & NDR_OUT) {
28840 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
28841 if (r->out.needed == NULL) {
28842 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28844 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28845 if (r->out.count == NULL) {
28846 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28848 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
28849 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28851 return NDR_ERR_SUCCESS;
28854 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDataEx *r)
28856 TALLOC_CTX *_mem_save_handle_0;
28857 TALLOC_CTX *_mem_save_needed_0;
28858 TALLOC_CTX *_mem_save_count_0;
28859 if (flags & NDR_IN) {
28860 ZERO_STRUCT(r->out);
28862 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28863 NDR_PULL_ALLOC(ndr, r->in.handle);
28865 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28866 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28867 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28868 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28869 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28870 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28871 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28872 return 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));
28874 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28875 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));
28876 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
28877 NDR_PULL_ALLOC(ndr, r->out.needed);
28878 ZERO_STRUCTP(r->out.needed);
28879 NDR_PULL_ALLOC(ndr, r->out.count);
28880 ZERO_STRUCTP(r->out.count);
28882 if (flags & NDR_OUT) {
28883 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->out.info));
28884 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28885 NDR_PULL_ALLOC(ndr, r->out.needed);
28887 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28888 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28889 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28890 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28891 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28892 NDR_PULL_ALLOC(ndr, r->out.count);
28894 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
28895 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
28896 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
28897 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
28898 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28900 return NDR_ERR_SUCCESS;
28903 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDataEx *r)
28905 uint32_t cntr_info_0;
28906 if (flags & NDR_IN) {
28907 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
28909 if (flags & NDR_OUT) {
28910 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28911 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
28913 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28914 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
28917 return NDR_ERR_SUCCESS;
28920 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDataEx *r)
28922 uint32_t cntr_info_0;
28923 TALLOC_CTX *_mem_save_info_0;
28924 if (flags & NDR_IN) {
28925 ZERO_STRUCT(r->out);
28927 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
28929 if (flags & NDR_OUT) {
28930 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
28931 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
28932 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
28933 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28934 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
28936 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28937 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
28939 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
28941 return NDR_ERR_SUCCESS;
28944 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDataEx *r)
28946 uint32_t cntr_info_2;
28947 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
28948 ndr->depth++;
28949 if (flags & NDR_SET_VALUES) {
28950 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28952 if (flags & NDR_IN) {
28953 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDataEx");
28954 ndr->depth++;
28955 ndr_print_ptr(ndr, "handle", r->in.handle);
28956 ndr->depth++;
28957 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28958 ndr->depth--;
28959 ndr_print_string(ndr, "key_name", r->in.key_name);
28960 ndr_print_uint32(ndr, "offered", r->in.offered);
28961 ndr->depth--;
28963 if (flags & NDR_OUT) {
28964 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
28965 ndr->depth++;
28966 ndr_print_ptr(ndr, "count", r->out.count);
28967 ndr->depth++;
28968 ndr_print_uint32(ndr, "count", *r->out.count);
28969 ndr->depth--;
28970 ndr_print_ptr(ndr, "info", r->out.info);
28971 ndr->depth++;
28972 ndr_print_ptr(ndr, "info", *r->out.info);
28973 ndr->depth++;
28974 if (*r->out.info) {
28975 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
28976 ndr->depth++;
28977 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
28978 char *idx_2=NULL;
28979 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
28980 ndr_print_spoolss_PrinterEnumValues(ndr, "info", &(*r->out.info)[cntr_info_2]);
28981 free(idx_2);
28984 ndr->depth--;
28986 ndr->depth--;
28987 ndr->depth--;
28988 ndr_print_ptr(ndr, "needed", r->out.needed);
28989 ndr->depth++;
28990 ndr_print_uint32(ndr, "needed", *r->out.needed);
28991 ndr->depth--;
28992 ndr_print_WERROR(ndr, "result", r->out.result);
28993 ndr->depth--;
28995 ndr->depth--;
28998 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterKey *r)
29000 if (flags & NDR_IN) {
29001 if (r->in.handle == NULL) {
29002 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29004 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29005 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
29006 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29007 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
29008 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));
29009 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
29011 if (flags & NDR_OUT) {
29012 if (r->out._ndr_size == NULL) {
29013 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29015 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._ndr_size));
29016 if (r->out.key_buffer == NULL) {
29017 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29020 struct ndr_push *_ndr_key_buffer;
29021 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_key_buffer, 0, *r->out._ndr_size * 2));
29022 NDR_CHECK(ndr_push_set_switch_value(_ndr_key_buffer, r->out.key_buffer, *r->out._ndr_size));
29023 NDR_CHECK(ndr_push_spoolss_KeyNames(_ndr_key_buffer, NDR_SCALARS|NDR_BUFFERS, r->out.key_buffer));
29024 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_key_buffer, 0, *r->out._ndr_size * 2));
29026 if (r->out.needed == NULL) {
29027 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29029 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
29030 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29032 return NDR_ERR_SUCCESS;
29035 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterKey *r)
29037 TALLOC_CTX *_mem_save_handle_0;
29038 TALLOC_CTX *_mem_save__ndr_size_0;
29039 TALLOC_CTX *_mem_save_key_buffer_0;
29040 TALLOC_CTX *_mem_save_needed_0;
29041 if (flags & NDR_IN) {
29042 ZERO_STRUCT(r->out);
29044 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29045 NDR_PULL_ALLOC(ndr, r->in.handle);
29047 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
29048 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
29049 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29050 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
29051 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
29052 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
29053 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
29054 return 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));
29056 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
29057 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));
29058 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
29059 NDR_PULL_ALLOC(ndr, r->out._ndr_size);
29060 ZERO_STRUCTP(r->out._ndr_size);
29061 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
29062 ZERO_STRUCTP(r->out.key_buffer);
29063 NDR_PULL_ALLOC(ndr, r->out.needed);
29064 ZERO_STRUCTP(r->out.needed);
29066 if (flags & NDR_OUT) {
29067 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29068 NDR_PULL_ALLOC(ndr, r->out._ndr_size);
29070 _mem_save__ndr_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
29071 NDR_PULL_SET_MEM_CTX(ndr, r->out._ndr_size, LIBNDR_FLAG_REF_ALLOC);
29072 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._ndr_size));
29073 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__ndr_size_0, LIBNDR_FLAG_REF_ALLOC);
29074 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29075 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
29077 _mem_save_key_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
29078 NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, LIBNDR_FLAG_REF_ALLOC);
29080 struct ndr_pull *_ndr_key_buffer;
29081 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_key_buffer, 0, *r->out._ndr_size * 2));
29082 NDR_CHECK(ndr_pull_set_switch_value(_ndr_key_buffer, r->out.key_buffer, *r->out._ndr_size));
29083 NDR_CHECK(ndr_pull_spoolss_KeyNames(_ndr_key_buffer, NDR_SCALARS|NDR_BUFFERS, r->out.key_buffer));
29084 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_key_buffer, 0, *r->out._ndr_size * 2));
29086 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_0, LIBNDR_FLAG_REF_ALLOC);
29087 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29088 NDR_PULL_ALLOC(ndr, r->out.needed);
29090 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
29091 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
29092 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
29093 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
29094 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29096 return NDR_ERR_SUCCESS;
29099 _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterKey *r)
29101 ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
29102 ndr->depth++;
29103 if (flags & NDR_SET_VALUES) {
29104 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29106 if (flags & NDR_IN) {
29107 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterKey");
29108 ndr->depth++;
29109 ndr_print_ptr(ndr, "handle", r->in.handle);
29110 ndr->depth++;
29111 ndr_print_policy_handle(ndr, "handle", r->in.handle);
29112 ndr->depth--;
29113 ndr_print_string(ndr, "key_name", r->in.key_name);
29114 ndr_print_uint32(ndr, "offered", r->in.offered);
29115 ndr->depth--;
29117 if (flags & NDR_OUT) {
29118 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
29119 ndr->depth++;
29120 ndr_print_ptr(ndr, "_ndr_size", r->out._ndr_size);
29121 ndr->depth++;
29122 ndr_print_uint32(ndr, "_ndr_size", *r->out._ndr_size);
29123 ndr->depth--;
29124 ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
29125 ndr->depth++;
29126 ndr_print_set_switch_value(ndr, r->out.key_buffer, *r->out._ndr_size);
29127 ndr_print_spoolss_KeyNames(ndr, "key_buffer", r->out.key_buffer);
29128 ndr->depth--;
29129 ndr_print_ptr(ndr, "needed", r->out.needed);
29130 ndr->depth++;
29131 ndr_print_uint32(ndr, "needed", *r->out.needed);
29132 ndr->depth--;
29133 ndr_print_WERROR(ndr, "result", r->out.result);
29134 ndr->depth--;
29136 ndr->depth--;
29139 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDataEx *r)
29141 if (flags & NDR_IN) {
29142 if (r->in.handle == NULL) {
29143 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29145 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29146 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
29147 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29148 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
29149 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));
29150 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
29151 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29152 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
29153 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));
29155 if (flags & NDR_OUT) {
29156 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29158 return NDR_ERR_SUCCESS;
29161 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDataEx *r)
29163 TALLOC_CTX *_mem_save_handle_0;
29164 if (flags & NDR_IN) {
29165 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29166 NDR_PULL_ALLOC(ndr, r->in.handle);
29168 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
29169 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
29170 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29171 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
29172 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
29173 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
29174 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
29175 return 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));
29177 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
29178 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));
29179 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
29180 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
29181 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
29182 return 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));
29184 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
29185 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));
29187 if (flags & NDR_OUT) {
29188 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29190 return NDR_ERR_SUCCESS;
29193 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDataEx *r)
29195 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
29196 ndr->depth++;
29197 if (flags & NDR_SET_VALUES) {
29198 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29200 if (flags & NDR_IN) {
29201 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDataEx");
29202 ndr->depth++;
29203 ndr_print_ptr(ndr, "handle", r->in.handle);
29204 ndr->depth++;
29205 ndr_print_policy_handle(ndr, "handle", r->in.handle);
29206 ndr->depth--;
29207 ndr_print_string(ndr, "key_name", r->in.key_name);
29208 ndr_print_string(ndr, "value_name", r->in.value_name);
29209 ndr->depth--;
29211 if (flags & NDR_OUT) {
29212 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
29213 ndr->depth++;
29214 ndr_print_WERROR(ndr, "result", r->out.result);
29215 ndr->depth--;
29217 ndr->depth--;
29220 static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterKey *r)
29222 if (flags & NDR_IN) {
29223 if (r->in.handle == NULL) {
29224 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29226 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29227 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
29228 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29229 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
29230 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));
29232 if (flags & NDR_OUT) {
29233 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29235 return NDR_ERR_SUCCESS;
29238 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterKey *r)
29240 TALLOC_CTX *_mem_save_handle_0;
29241 if (flags & NDR_IN) {
29242 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29243 NDR_PULL_ALLOC(ndr, r->in.handle);
29245 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
29246 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
29247 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29248 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
29249 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
29250 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
29251 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
29252 return 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));
29254 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
29255 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));
29257 if (flags & NDR_OUT) {
29258 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29260 return NDR_ERR_SUCCESS;
29263 _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterKey *r)
29265 ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
29266 ndr->depth++;
29267 if (flags & NDR_SET_VALUES) {
29268 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29270 if (flags & NDR_IN) {
29271 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
29272 ndr->depth++;
29273 ndr_print_ptr(ndr, "handle", r->in.handle);
29274 ndr->depth++;
29275 ndr_print_policy_handle(ndr, "handle", r->in.handle);
29276 ndr->depth--;
29277 ndr_print_string(ndr, "key_name", r->in.key_name);
29278 ndr->depth--;
29280 if (flags & NDR_OUT) {
29281 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
29282 ndr->depth++;
29283 ndr_print_WERROR(ndr, "result", r->out.result);
29284 ndr->depth--;
29286 ndr->depth--;
29289 static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, int flags, const struct spoolss_53 *r)
29291 if (flags & NDR_IN) {
29293 if (flags & NDR_OUT) {
29294 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29296 return NDR_ERR_SUCCESS;
29299 static enum ndr_err_code ndr_pull_spoolss_53(struct ndr_pull *ndr, int flags, struct spoolss_53 *r)
29301 if (flags & NDR_IN) {
29303 if (flags & NDR_OUT) {
29304 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29306 return NDR_ERR_SUCCESS;
29309 _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_53 *r)
29311 ndr_print_struct(ndr, name, "spoolss_53");
29312 ndr->depth++;
29313 if (flags & NDR_SET_VALUES) {
29314 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29316 if (flags & NDR_IN) {
29317 ndr_print_struct(ndr, "in", "spoolss_53");
29318 ndr->depth++;
29319 ndr->depth--;
29321 if (flags & NDR_OUT) {
29322 ndr_print_struct(ndr, "out", "spoolss_53");
29323 ndr->depth++;
29324 ndr_print_WERROR(ndr, "result", r->out.result);
29325 ndr->depth--;
29327 ndr->depth--;
29330 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriverEx *r)
29332 if (flags & NDR_IN) {
29333 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
29334 if (r->in.server) {
29335 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
29336 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29337 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
29338 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29340 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29341 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29342 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29343 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29344 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
29345 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29346 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
29347 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29348 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
29349 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
29351 if (flags & NDR_OUT) {
29352 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29354 return NDR_ERR_SUCCESS;
29357 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriverEx *r)
29359 uint32_t _ptr_server;
29360 TALLOC_CTX *_mem_save_server_0;
29361 if (flags & NDR_IN) {
29362 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
29363 if (_ptr_server) {
29364 NDR_PULL_ALLOC(ndr, r->in.server);
29365 } else {
29366 r->in.server = NULL;
29368 if (r->in.server) {
29369 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
29370 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
29371 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
29372 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
29373 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
29374 return 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));
29376 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
29377 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
29378 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
29380 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
29381 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
29382 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
29383 return 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));
29385 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
29386 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
29387 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
29388 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
29389 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
29390 return 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));
29392 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
29393 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
29394 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
29395 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
29397 if (flags & NDR_OUT) {
29398 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29400 return NDR_ERR_SUCCESS;
29403 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriverEx *r)
29405 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
29406 ndr->depth++;
29407 if (flags & NDR_SET_VALUES) {
29408 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29410 if (flags & NDR_IN) {
29411 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
29412 ndr->depth++;
29413 ndr_print_ptr(ndr, "server", r->in.server);
29414 ndr->depth++;
29415 if (r->in.server) {
29416 ndr_print_string(ndr, "server", r->in.server);
29418 ndr->depth--;
29419 ndr_print_string(ndr, "architecture", r->in.architecture);
29420 ndr_print_string(ndr, "driver", r->in.driver);
29421 ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
29422 ndr_print_uint32(ndr, "version", r->in.version);
29423 ndr->depth--;
29425 if (flags & NDR_OUT) {
29426 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
29427 ndr->depth++;
29428 ndr_print_WERROR(ndr, "result", r->out.result);
29429 ndr->depth--;
29431 ndr->depth--;
29434 static enum ndr_err_code ndr_push_spoolss_55(struct ndr_push *ndr, int flags, const struct spoolss_55 *r)
29436 if (flags & NDR_IN) {
29438 if (flags & NDR_OUT) {
29439 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29441 return NDR_ERR_SUCCESS;
29444 static enum ndr_err_code ndr_pull_spoolss_55(struct ndr_pull *ndr, int flags, struct spoolss_55 *r)
29446 if (flags & NDR_IN) {
29448 if (flags & NDR_OUT) {
29449 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29451 return NDR_ERR_SUCCESS;
29454 _PUBLIC_ void ndr_print_spoolss_55(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_55 *r)
29456 ndr_print_struct(ndr, name, "spoolss_55");
29457 ndr->depth++;
29458 if (flags & NDR_SET_VALUES) {
29459 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29461 if (flags & NDR_IN) {
29462 ndr_print_struct(ndr, "in", "spoolss_55");
29463 ndr->depth++;
29464 ndr->depth--;
29466 if (flags & NDR_OUT) {
29467 ndr_print_struct(ndr, "out", "spoolss_55");
29468 ndr->depth++;
29469 ndr_print_WERROR(ndr, "result", r->out.result);
29470 ndr->depth--;
29472 ndr->depth--;
29475 static enum ndr_err_code ndr_push_spoolss_56(struct ndr_push *ndr, int flags, const struct spoolss_56 *r)
29477 if (flags & NDR_IN) {
29479 if (flags & NDR_OUT) {
29480 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29482 return NDR_ERR_SUCCESS;
29485 static enum ndr_err_code ndr_pull_spoolss_56(struct ndr_pull *ndr, int flags, struct spoolss_56 *r)
29487 if (flags & NDR_IN) {
29489 if (flags & NDR_OUT) {
29490 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29492 return NDR_ERR_SUCCESS;
29495 _PUBLIC_ void ndr_print_spoolss_56(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_56 *r)
29497 ndr_print_struct(ndr, name, "spoolss_56");
29498 ndr->depth++;
29499 if (flags & NDR_SET_VALUES) {
29500 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29502 if (flags & NDR_IN) {
29503 ndr_print_struct(ndr, "in", "spoolss_56");
29504 ndr->depth++;
29505 ndr->depth--;
29507 if (flags & NDR_OUT) {
29508 ndr_print_struct(ndr, "out", "spoolss_56");
29509 ndr->depth++;
29510 ndr_print_WERROR(ndr, "result", r->out.result);
29511 ndr->depth--;
29513 ndr->depth--;
29516 static enum ndr_err_code ndr_push_spoolss_57(struct ndr_push *ndr, int flags, const struct spoolss_57 *r)
29518 if (flags & NDR_IN) {
29520 if (flags & NDR_OUT) {
29521 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29523 return NDR_ERR_SUCCESS;
29526 static enum ndr_err_code ndr_pull_spoolss_57(struct ndr_pull *ndr, int flags, struct spoolss_57 *r)
29528 if (flags & NDR_IN) {
29530 if (flags & NDR_OUT) {
29531 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29533 return NDR_ERR_SUCCESS;
29536 _PUBLIC_ void ndr_print_spoolss_57(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_57 *r)
29538 ndr_print_struct(ndr, name, "spoolss_57");
29539 ndr->depth++;
29540 if (flags & NDR_SET_VALUES) {
29541 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29543 if (flags & NDR_IN) {
29544 ndr_print_struct(ndr, "in", "spoolss_57");
29545 ndr->depth++;
29546 ndr->depth--;
29548 if (flags & NDR_OUT) {
29549 ndr_print_struct(ndr, "out", "spoolss_57");
29550 ndr->depth++;
29551 ndr_print_WERROR(ndr, "result", r->out.result);
29552 ndr->depth--;
29554 ndr->depth--;
29557 static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, int flags, const struct spoolss_XcvData *r)
29559 if (flags & NDR_IN) {
29560 if (r->in.handle == NULL) {
29561 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29563 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29564 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
29565 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29566 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
29567 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));
29568 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
29569 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
29570 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
29571 if (r->in.status_code == NULL) {
29572 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29574 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
29576 if (flags & NDR_OUT) {
29577 if (r->out.out_data == NULL) {
29578 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29580 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.out_data_size));
29581 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
29582 if (r->out.needed == NULL) {
29583 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29585 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
29586 if (r->out.status_code == NULL) {
29587 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29589 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
29590 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29592 return NDR_ERR_SUCCESS;
29595 static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flags, struct spoolss_XcvData *r)
29597 TALLOC_CTX *_mem_save_handle_0;
29598 TALLOC_CTX *_mem_save_needed_0;
29599 TALLOC_CTX *_mem_save_status_code_0;
29600 if (flags & NDR_IN) {
29601 ZERO_STRUCT(r->out);
29603 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29604 NDR_PULL_ALLOC(ndr, r->in.handle);
29606 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
29607 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
29608 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29609 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
29610 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
29611 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
29612 if (ndr_get_array_length(ndr, &r->in.function_name) > ndr_get_array_size(ndr, &r->in.function_name)) {
29613 return 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));
29615 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t)));
29616 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));
29617 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
29618 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
29619 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
29620 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29621 NDR_PULL_ALLOC(ndr, r->in.status_code);
29623 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
29624 NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
29625 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
29626 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
29627 NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
29628 memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
29629 NDR_PULL_ALLOC(ndr, r->out.needed);
29630 ZERO_STRUCTP(r->out.needed);
29631 NDR_PULL_ALLOC(ndr, r->out.status_code);
29632 *r->out.status_code = *r->in.status_code;
29634 if (flags & NDR_OUT) {
29635 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
29636 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29637 NDR_PULL_ALLOC_N(ndr, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data));
29639 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data)));
29640 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29641 NDR_PULL_ALLOC(ndr, r->out.needed);
29643 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
29644 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
29645 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
29646 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
29647 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29648 NDR_PULL_ALLOC(ndr, r->out.status_code);
29650 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
29651 NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
29652 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
29653 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
29654 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29655 if (r->out.out_data) {
29656 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
29659 return NDR_ERR_SUCCESS;
29662 _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_XcvData *r)
29664 ndr_print_struct(ndr, name, "spoolss_XcvData");
29665 ndr->depth++;
29666 if (flags & NDR_SET_VALUES) {
29667 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29669 if (flags & NDR_IN) {
29670 ndr_print_struct(ndr, "in", "spoolss_XcvData");
29671 ndr->depth++;
29672 ndr_print_ptr(ndr, "handle", r->in.handle);
29673 ndr->depth++;
29674 ndr_print_policy_handle(ndr, "handle", r->in.handle);
29675 ndr->depth--;
29676 ndr_print_string(ndr, "function_name", r->in.function_name);
29677 ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
29678 ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
29679 ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
29680 ndr_print_ptr(ndr, "status_code", r->in.status_code);
29681 ndr->depth++;
29682 ndr_print_uint32(ndr, "status_code", *r->in.status_code);
29683 ndr->depth--;
29684 ndr->depth--;
29686 if (flags & NDR_OUT) {
29687 ndr_print_struct(ndr, "out", "spoolss_XcvData");
29688 ndr->depth++;
29689 ndr_print_ptr(ndr, "out_data", r->out.out_data);
29690 ndr->depth++;
29691 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
29692 ndr->depth--;
29693 ndr_print_ptr(ndr, "needed", r->out.needed);
29694 ndr->depth++;
29695 ndr_print_uint32(ndr, "needed", *r->out.needed);
29696 ndr->depth--;
29697 ndr_print_ptr(ndr, "status_code", r->out.status_code);
29698 ndr->depth++;
29699 ndr_print_uint32(ndr, "status_code", *r->out.status_code);
29700 ndr->depth--;
29701 ndr_print_WERROR(ndr, "result", r->out.result);
29702 ndr->depth--;
29704 ndr->depth--;
29707 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriverEx *r)
29709 if (flags & NDR_IN) {
29710 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
29711 if (r->in.servername) {
29712 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29713 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29714 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29715 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29717 if (r->in.info_ctr == NULL) {
29718 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29720 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
29721 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
29723 if (flags & NDR_OUT) {
29724 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29726 return NDR_ERR_SUCCESS;
29729 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriverEx *r)
29731 uint32_t _ptr_servername;
29732 TALLOC_CTX *_mem_save_servername_0;
29733 TALLOC_CTX *_mem_save_info_ctr_0;
29734 if (flags & NDR_IN) {
29735 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
29736 if (_ptr_servername) {
29737 NDR_PULL_ALLOC(ndr, r->in.servername);
29738 } else {
29739 r->in.servername = NULL;
29741 if (r->in.servername) {
29742 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
29743 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
29744 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
29745 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
29746 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
29747 return 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));
29749 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
29750 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
29751 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
29753 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29754 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
29756 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
29757 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
29758 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
29759 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
29760 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
29762 if (flags & NDR_OUT) {
29763 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29765 return NDR_ERR_SUCCESS;
29768 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriverEx *r)
29770 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
29771 ndr->depth++;
29772 if (flags & NDR_SET_VALUES) {
29773 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29775 if (flags & NDR_IN) {
29776 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
29777 ndr->depth++;
29778 ndr_print_ptr(ndr, "servername", r->in.servername);
29779 ndr->depth++;
29780 if (r->in.servername) {
29781 ndr_print_string(ndr, "servername", r->in.servername);
29783 ndr->depth--;
29784 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
29785 ndr->depth++;
29786 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
29787 ndr->depth--;
29788 ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
29789 ndr->depth--;
29791 if (flags & NDR_OUT) {
29792 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
29793 ndr->depth++;
29794 ndr_print_WERROR(ndr, "result", r->out.result);
29795 ndr->depth--;
29797 ndr->depth--;
29800 static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, int flags, const struct spoolss_5a *r)
29802 if (flags & NDR_IN) {
29804 if (flags & NDR_OUT) {
29805 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29807 return NDR_ERR_SUCCESS;
29810 static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, int flags, struct spoolss_5a *r)
29812 if (flags & NDR_IN) {
29814 if (flags & NDR_OUT) {
29815 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29817 return NDR_ERR_SUCCESS;
29820 _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5a *r)
29822 ndr_print_struct(ndr, name, "spoolss_5a");
29823 ndr->depth++;
29824 if (flags & NDR_SET_VALUES) {
29825 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29827 if (flags & NDR_IN) {
29828 ndr_print_struct(ndr, "in", "spoolss_5a");
29829 ndr->depth++;
29830 ndr->depth--;
29832 if (flags & NDR_OUT) {
29833 ndr_print_struct(ndr, "out", "spoolss_5a");
29834 ndr->depth++;
29835 ndr_print_WERROR(ndr, "result", r->out.result);
29836 ndr->depth--;
29838 ndr->depth--;
29841 static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, int flags, const struct spoolss_5b *r)
29843 if (flags & NDR_IN) {
29845 if (flags & NDR_OUT) {
29846 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29848 return NDR_ERR_SUCCESS;
29851 static enum ndr_err_code ndr_pull_spoolss_5b(struct ndr_pull *ndr, int flags, struct spoolss_5b *r)
29853 if (flags & NDR_IN) {
29855 if (flags & NDR_OUT) {
29856 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29858 return NDR_ERR_SUCCESS;
29861 _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5b *r)
29863 ndr_print_struct(ndr, name, "spoolss_5b");
29864 ndr->depth++;
29865 if (flags & NDR_SET_VALUES) {
29866 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29868 if (flags & NDR_IN) {
29869 ndr_print_struct(ndr, "in", "spoolss_5b");
29870 ndr->depth++;
29871 ndr->depth--;
29873 if (flags & NDR_OUT) {
29874 ndr_print_struct(ndr, "out", "spoolss_5b");
29875 ndr->depth++;
29876 ndr_print_WERROR(ndr, "result", r->out.result);
29877 ndr->depth--;
29879 ndr->depth--;
29882 static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, int flags, const struct spoolss_5c *r)
29884 if (flags & NDR_IN) {
29886 if (flags & NDR_OUT) {
29887 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29889 return NDR_ERR_SUCCESS;
29892 static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, int flags, struct spoolss_5c *r)
29894 if (flags & NDR_IN) {
29896 if (flags & NDR_OUT) {
29897 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29899 return NDR_ERR_SUCCESS;
29902 _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5c *r)
29904 ndr_print_struct(ndr, name, "spoolss_5c");
29905 ndr->depth++;
29906 if (flags & NDR_SET_VALUES) {
29907 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29909 if (flags & NDR_IN) {
29910 ndr_print_struct(ndr, "in", "spoolss_5c");
29911 ndr->depth++;
29912 ndr->depth--;
29914 if (flags & NDR_OUT) {
29915 ndr_print_struct(ndr, "out", "spoolss_5c");
29916 ndr->depth++;
29917 ndr_print_WERROR(ndr, "result", r->out.result);
29918 ndr->depth--;
29920 ndr->depth--;
29923 static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, int flags, const struct spoolss_5d *r)
29925 if (flags & NDR_IN) {
29927 if (flags & NDR_OUT) {
29928 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29930 return NDR_ERR_SUCCESS;
29933 static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, int flags, struct spoolss_5d *r)
29935 if (flags & NDR_IN) {
29937 if (flags & NDR_OUT) {
29938 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29940 return NDR_ERR_SUCCESS;
29943 _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5d *r)
29945 ndr_print_struct(ndr, name, "spoolss_5d");
29946 ndr->depth++;
29947 if (flags & NDR_SET_VALUES) {
29948 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29950 if (flags & NDR_IN) {
29951 ndr_print_struct(ndr, "in", "spoolss_5d");
29952 ndr->depth++;
29953 ndr->depth--;
29955 if (flags & NDR_OUT) {
29956 ndr_print_struct(ndr, "out", "spoolss_5d");
29957 ndr->depth++;
29958 ndr_print_WERROR(ndr, "result", r->out.result);
29959 ndr->depth--;
29961 ndr->depth--;
29964 static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, int flags, const struct spoolss_5e *r)
29966 if (flags & NDR_IN) {
29968 if (flags & NDR_OUT) {
29969 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29971 return NDR_ERR_SUCCESS;
29974 static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, int flags, struct spoolss_5e *r)
29976 if (flags & NDR_IN) {
29978 if (flags & NDR_OUT) {
29979 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29981 return NDR_ERR_SUCCESS;
29984 _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5e *r)
29986 ndr_print_struct(ndr, name, "spoolss_5e");
29987 ndr->depth++;
29988 if (flags & NDR_SET_VALUES) {
29989 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29991 if (flags & NDR_IN) {
29992 ndr_print_struct(ndr, "in", "spoolss_5e");
29993 ndr->depth++;
29994 ndr->depth--;
29996 if (flags & NDR_OUT) {
29997 ndr_print_struct(ndr, "out", "spoolss_5e");
29998 ndr->depth++;
29999 ndr_print_WERROR(ndr, "result", r->out.result);
30000 ndr->depth--;
30002 ndr->depth--;
30005 static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, int flags, const struct spoolss_5f *r)
30007 if (flags & NDR_IN) {
30009 if (flags & NDR_OUT) {
30010 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30012 return NDR_ERR_SUCCESS;
30015 static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, int flags, struct spoolss_5f *r)
30017 if (flags & NDR_IN) {
30019 if (flags & NDR_OUT) {
30020 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30022 return NDR_ERR_SUCCESS;
30025 _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5f *r)
30027 ndr_print_struct(ndr, name, "spoolss_5f");
30028 ndr->depth++;
30029 if (flags & NDR_SET_VALUES) {
30030 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30032 if (flags & NDR_IN) {
30033 ndr_print_struct(ndr, "in", "spoolss_5f");
30034 ndr->depth++;
30035 ndr->depth--;
30037 if (flags & NDR_OUT) {
30038 ndr_print_struct(ndr, "out", "spoolss_5f");
30039 ndr->depth++;
30040 ndr_print_WERROR(ndr, "result", r->out.result);
30041 ndr->depth--;
30043 ndr->depth--;
30046 static enum ndr_err_code ndr_push_spoolss_60(struct ndr_push *ndr, int flags, const struct spoolss_60 *r)
30048 if (flags & NDR_IN) {
30050 if (flags & NDR_OUT) {
30051 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30053 return NDR_ERR_SUCCESS;
30056 static enum ndr_err_code ndr_pull_spoolss_60(struct ndr_pull *ndr, int flags, struct spoolss_60 *r)
30058 if (flags & NDR_IN) {
30060 if (flags & NDR_OUT) {
30061 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30063 return NDR_ERR_SUCCESS;
30066 _PUBLIC_ void ndr_print_spoolss_60(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_60 *r)
30068 ndr_print_struct(ndr, name, "spoolss_60");
30069 ndr->depth++;
30070 if (flags & NDR_SET_VALUES) {
30071 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30073 if (flags & NDR_IN) {
30074 ndr_print_struct(ndr, "in", "spoolss_60");
30075 ndr->depth++;
30076 ndr->depth--;
30078 if (flags & NDR_OUT) {
30079 ndr_print_struct(ndr, "out", "spoolss_60");
30080 ndr->depth++;
30081 ndr_print_WERROR(ndr, "result", r->out.result);
30082 ndr->depth--;
30084 ndr->depth--;
30087 static enum ndr_err_code ndr_push_spoolss_61(struct ndr_push *ndr, int flags, const struct spoolss_61 *r)
30089 if (flags & NDR_IN) {
30091 if (flags & NDR_OUT) {
30092 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30094 return NDR_ERR_SUCCESS;
30097 static enum ndr_err_code ndr_pull_spoolss_61(struct ndr_pull *ndr, int flags, struct spoolss_61 *r)
30099 if (flags & NDR_IN) {
30101 if (flags & NDR_OUT) {
30102 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30104 return NDR_ERR_SUCCESS;
30107 _PUBLIC_ void ndr_print_spoolss_61(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_61 *r)
30109 ndr_print_struct(ndr, name, "spoolss_61");
30110 ndr->depth++;
30111 if (flags & NDR_SET_VALUES) {
30112 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30114 if (flags & NDR_IN) {
30115 ndr_print_struct(ndr, "in", "spoolss_61");
30116 ndr->depth++;
30117 ndr->depth--;
30119 if (flags & NDR_OUT) {
30120 ndr_print_struct(ndr, "out", "spoolss_61");
30121 ndr->depth++;
30122 ndr_print_WERROR(ndr, "result", r->out.result);
30123 ndr->depth--;
30125 ndr->depth--;
30128 static enum ndr_err_code ndr_push_spoolss_62(struct ndr_push *ndr, int flags, const struct spoolss_62 *r)
30130 if (flags & NDR_IN) {
30132 if (flags & NDR_OUT) {
30133 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30135 return NDR_ERR_SUCCESS;
30138 static enum ndr_err_code ndr_pull_spoolss_62(struct ndr_pull *ndr, int flags, struct spoolss_62 *r)
30140 if (flags & NDR_IN) {
30142 if (flags & NDR_OUT) {
30143 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30145 return NDR_ERR_SUCCESS;
30148 _PUBLIC_ void ndr_print_spoolss_62(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_62 *r)
30150 ndr_print_struct(ndr, name, "spoolss_62");
30151 ndr->depth++;
30152 if (flags & NDR_SET_VALUES) {
30153 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30155 if (flags & NDR_IN) {
30156 ndr_print_struct(ndr, "in", "spoolss_62");
30157 ndr->depth++;
30158 ndr->depth--;
30160 if (flags & NDR_OUT) {
30161 ndr_print_struct(ndr, "out", "spoolss_62");
30162 ndr->depth++;
30163 ndr_print_WERROR(ndr, "result", r->out.result);
30164 ndr->depth--;
30166 ndr->depth--;
30169 static enum ndr_err_code ndr_push_spoolss_63(struct ndr_push *ndr, int flags, const struct spoolss_63 *r)
30171 if (flags & NDR_IN) {
30173 if (flags & NDR_OUT) {
30174 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30176 return NDR_ERR_SUCCESS;
30179 static enum ndr_err_code ndr_pull_spoolss_63(struct ndr_pull *ndr, int flags, struct spoolss_63 *r)
30181 if (flags & NDR_IN) {
30183 if (flags & NDR_OUT) {
30184 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30186 return NDR_ERR_SUCCESS;
30189 _PUBLIC_ void ndr_print_spoolss_63(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_63 *r)
30191 ndr_print_struct(ndr, name, "spoolss_63");
30192 ndr->depth++;
30193 if (flags & NDR_SET_VALUES) {
30194 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30196 if (flags & NDR_IN) {
30197 ndr_print_struct(ndr, "in", "spoolss_63");
30198 ndr->depth++;
30199 ndr->depth--;
30201 if (flags & NDR_OUT) {
30202 ndr_print_struct(ndr, "out", "spoolss_63");
30203 ndr->depth++;
30204 ndr_print_WERROR(ndr, "result", r->out.result);
30205 ndr->depth--;
30207 ndr->depth--;
30210 static enum ndr_err_code ndr_push_spoolss_64(struct ndr_push *ndr, int flags, const struct spoolss_64 *r)
30212 if (flags & NDR_IN) {
30214 if (flags & NDR_OUT) {
30215 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30217 return NDR_ERR_SUCCESS;
30220 static enum ndr_err_code ndr_pull_spoolss_64(struct ndr_pull *ndr, int flags, struct spoolss_64 *r)
30222 if (flags & NDR_IN) {
30224 if (flags & NDR_OUT) {
30225 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30227 return NDR_ERR_SUCCESS;
30230 _PUBLIC_ void ndr_print_spoolss_64(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_64 *r)
30232 ndr_print_struct(ndr, name, "spoolss_64");
30233 ndr->depth++;
30234 if (flags & NDR_SET_VALUES) {
30235 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30237 if (flags & NDR_IN) {
30238 ndr_print_struct(ndr, "in", "spoolss_64");
30239 ndr->depth++;
30240 ndr->depth--;
30242 if (flags & NDR_OUT) {
30243 ndr_print_struct(ndr, "out", "spoolss_64");
30244 ndr->depth++;
30245 ndr_print_WERROR(ndr, "result", r->out.result);
30246 ndr->depth--;
30248 ndr->depth--;
30251 static enum ndr_err_code ndr_push_spoolss_65(struct ndr_push *ndr, int flags, const struct spoolss_65 *r)
30253 if (flags & NDR_IN) {
30255 if (flags & NDR_OUT) {
30256 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30258 return NDR_ERR_SUCCESS;
30261 static enum ndr_err_code ndr_pull_spoolss_65(struct ndr_pull *ndr, int flags, struct spoolss_65 *r)
30263 if (flags & NDR_IN) {
30265 if (flags & NDR_OUT) {
30266 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30268 return NDR_ERR_SUCCESS;
30271 _PUBLIC_ void ndr_print_spoolss_65(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_65 *r)
30273 ndr_print_struct(ndr, name, "spoolss_65");
30274 ndr->depth++;
30275 if (flags & NDR_SET_VALUES) {
30276 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30278 if (flags & NDR_IN) {
30279 ndr_print_struct(ndr, "in", "spoolss_65");
30280 ndr->depth++;
30281 ndr->depth--;
30283 if (flags & NDR_OUT) {
30284 ndr_print_struct(ndr, "out", "spoolss_65");
30285 ndr->depth++;
30286 ndr_print_WERROR(ndr, "result", r->out.result);
30287 ndr->depth--;
30289 ndr->depth--;
30292 static enum ndr_err_code ndr_push_spoolss_GetCorePrinterDrivers(struct ndr_push *ndr, int flags, const struct spoolss_GetCorePrinterDrivers *r)
30294 uint32_t cntr_core_printer_drivers_1;
30295 if (flags & NDR_IN) {
30296 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
30297 if (r->in.servername) {
30298 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
30299 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30300 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
30301 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
30303 if (r->in.architecture == NULL) {
30304 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30306 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
30307 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30308 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
30309 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
30310 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.core_driver_size));
30311 if (r->in.core_driver_dependencies == NULL) {
30312 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30314 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.core_driver_size));
30315 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.core_driver_dependencies, r->in.core_driver_size, sizeof(uint16_t), CH_UTF16));
30316 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.core_printer_driver_count));
30318 if (flags & NDR_OUT) {
30319 if (r->out.core_printer_drivers == NULL) {
30320 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30322 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.core_printer_driver_count));
30323 for (cntr_core_printer_drivers_1 = 0; cntr_core_printer_drivers_1 < r->in.core_printer_driver_count; cntr_core_printer_drivers_1++) {
30324 NDR_CHECK(ndr_push_spoolss_CorePrinterDriver(ndr, NDR_SCALARS, &r->out.core_printer_drivers[cntr_core_printer_drivers_1]));
30326 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30328 return NDR_ERR_SUCCESS;
30331 static enum ndr_err_code ndr_pull_spoolss_GetCorePrinterDrivers(struct ndr_pull *ndr, int flags, struct spoolss_GetCorePrinterDrivers *r)
30333 uint32_t _ptr_servername;
30334 uint32_t cntr_core_printer_drivers_1;
30335 TALLOC_CTX *_mem_save_servername_0;
30336 TALLOC_CTX *_mem_save_core_printer_drivers_1;
30337 if (flags & NDR_IN) {
30338 ZERO_STRUCT(r->out);
30340 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
30341 if (_ptr_servername) {
30342 NDR_PULL_ALLOC(ndr, r->in.servername);
30343 } else {
30344 r->in.servername = NULL;
30346 if (r->in.servername) {
30347 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
30348 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
30349 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
30350 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
30351 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
30352 return 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));
30354 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
30355 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
30356 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
30358 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
30359 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
30360 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
30361 return 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));
30363 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
30364 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
30365 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.core_driver_size));
30366 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.core_driver_dependencies));
30367 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));
30368 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.core_printer_driver_count));
30369 NDR_PULL_ALLOC_N(ndr, r->out.core_printer_drivers, r->in.core_printer_driver_count);
30370 memset(r->out.core_printer_drivers, 0, (r->in.core_printer_driver_count) * sizeof(*r->out.core_printer_drivers));
30371 if (r->in.core_driver_dependencies) {
30372 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.core_driver_dependencies, r->in.core_driver_size));
30375 if (flags & NDR_OUT) {
30376 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.core_printer_drivers));
30377 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
30378 NDR_PULL_ALLOC_N(ndr, r->out.core_printer_drivers, ndr_get_array_size(ndr, &r->out.core_printer_drivers));
30380 _mem_save_core_printer_drivers_1 = NDR_PULL_GET_MEM_CTX(ndr);
30381 NDR_PULL_SET_MEM_CTX(ndr, r->out.core_printer_drivers, 0);
30382 for (cntr_core_printer_drivers_1 = 0; cntr_core_printer_drivers_1 < r->in.core_printer_driver_count; cntr_core_printer_drivers_1++) {
30383 NDR_CHECK(ndr_pull_spoolss_CorePrinterDriver(ndr, NDR_SCALARS, &r->out.core_printer_drivers[cntr_core_printer_drivers_1]));
30385 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_printer_drivers_1, 0);
30386 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30387 if (r->out.core_printer_drivers) {
30388 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.core_printer_drivers, r->in.core_printer_driver_count));
30391 return NDR_ERR_SUCCESS;
30394 _PUBLIC_ void ndr_print_spoolss_GetCorePrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetCorePrinterDrivers *r)
30396 uint32_t cntr_core_printer_drivers_1;
30397 ndr_print_struct(ndr, name, "spoolss_GetCorePrinterDrivers");
30398 ndr->depth++;
30399 if (flags & NDR_SET_VALUES) {
30400 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30402 if (flags & NDR_IN) {
30403 ndr_print_struct(ndr, "in", "spoolss_GetCorePrinterDrivers");
30404 ndr->depth++;
30405 ndr_print_ptr(ndr, "servername", r->in.servername);
30406 ndr->depth++;
30407 if (r->in.servername) {
30408 ndr_print_string(ndr, "servername", r->in.servername);
30410 ndr->depth--;
30411 ndr_print_ptr(ndr, "architecture", r->in.architecture);
30412 ndr->depth++;
30413 ndr_print_string(ndr, "architecture", r->in.architecture);
30414 ndr->depth--;
30415 ndr_print_uint32(ndr, "core_driver_size", r->in.core_driver_size);
30416 ndr_print_ptr(ndr, "core_driver_dependencies", r->in.core_driver_dependencies);
30417 ndr->depth++;
30418 ndr_print_string(ndr, "core_driver_dependencies", r->in.core_driver_dependencies);
30419 ndr->depth--;
30420 ndr_print_uint32(ndr, "core_printer_driver_count", r->in.core_printer_driver_count);
30421 ndr->depth--;
30423 if (flags & NDR_OUT) {
30424 ndr_print_struct(ndr, "out", "spoolss_GetCorePrinterDrivers");
30425 ndr->depth++;
30426 ndr_print_ptr(ndr, "core_printer_drivers", r->out.core_printer_drivers);
30427 ndr->depth++;
30428 ndr->print(ndr, "%s: ARRAY(%d)", "core_printer_drivers", (int)r->in.core_printer_driver_count);
30429 ndr->depth++;
30430 for (cntr_core_printer_drivers_1=0;cntr_core_printer_drivers_1<r->in.core_printer_driver_count;cntr_core_printer_drivers_1++) {
30431 char *idx_1=NULL;
30432 if (asprintf(&idx_1, "[%d]", cntr_core_printer_drivers_1) != -1) {
30433 ndr_print_spoolss_CorePrinterDriver(ndr, "core_printer_drivers", &r->out.core_printer_drivers[cntr_core_printer_drivers_1]);
30434 free(idx_1);
30437 ndr->depth--;
30438 ndr->depth--;
30439 ndr_print_WERROR(ndr, "result", r->out.result);
30440 ndr->depth--;
30442 ndr->depth--;
30445 static enum ndr_err_code ndr_push_spoolss_67(struct ndr_push *ndr, int flags, const struct spoolss_67 *r)
30447 if (flags & NDR_IN) {
30449 if (flags & NDR_OUT) {
30450 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30452 return NDR_ERR_SUCCESS;
30455 static enum ndr_err_code ndr_pull_spoolss_67(struct ndr_pull *ndr, int flags, struct spoolss_67 *r)
30457 if (flags & NDR_IN) {
30459 if (flags & NDR_OUT) {
30460 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30462 return NDR_ERR_SUCCESS;
30465 _PUBLIC_ void ndr_print_spoolss_67(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_67 *r)
30467 ndr_print_struct(ndr, name, "spoolss_67");
30468 ndr->depth++;
30469 if (flags & NDR_SET_VALUES) {
30470 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30472 if (flags & NDR_IN) {
30473 ndr_print_struct(ndr, "in", "spoolss_67");
30474 ndr->depth++;
30475 ndr->depth--;
30477 if (flags & NDR_OUT) {
30478 ndr_print_struct(ndr, "out", "spoolss_67");
30479 ndr->depth++;
30480 ndr_print_WERROR(ndr, "result", r->out.result);
30481 ndr->depth--;
30483 ndr->depth--;
30486 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriverPackagePath(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverPackagePath *r)
30488 if (flags & NDR_IN) {
30489 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
30490 if (r->in.servername) {
30491 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
30492 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30493 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
30494 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
30496 if (r->in.architecture == NULL) {
30497 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30499 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
30500 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30501 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
30502 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
30503 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.language));
30504 if (r->in.language) {
30505 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.language, CH_UTF16)));
30506 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30507 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.language, CH_UTF16)));
30508 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.language, ndr_charset_length(r->in.language, CH_UTF16), sizeof(uint16_t), CH_UTF16));
30510 if (r->in.package_id == NULL) {
30511 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30513 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.package_id, CH_UTF16)));
30514 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30515 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.package_id, CH_UTF16)));
30516 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));
30517 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.driver_package_cab));
30518 if (r->in.driver_package_cab) {
30519 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
30520 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver_package_cab, r->in.driver_package_cab_size, sizeof(uint16_t), CH_UTF16));
30522 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
30524 if (flags & NDR_OUT) {
30525 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.driver_package_cab));
30526 if (r->out.driver_package_cab) {
30527 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
30528 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.driver_package_cab, r->in.driver_package_cab_size, sizeof(uint16_t), CH_UTF16));
30530 if (r->out.required == NULL) {
30531 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30533 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.required));
30534 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30536 return NDR_ERR_SUCCESS;
30539 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverPackagePath(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverPackagePath *r)
30541 uint32_t _ptr_servername;
30542 uint32_t _ptr_language;
30543 uint32_t _ptr_driver_package_cab;
30544 TALLOC_CTX *_mem_save_servername_0;
30545 TALLOC_CTX *_mem_save_language_0;
30546 TALLOC_CTX *_mem_save_driver_package_cab_0;
30547 TALLOC_CTX *_mem_save_required_0;
30548 if (flags & NDR_IN) {
30549 ZERO_STRUCT(r->out);
30551 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
30552 if (_ptr_servername) {
30553 NDR_PULL_ALLOC(ndr, r->in.servername);
30554 } else {
30555 r->in.servername = NULL;
30557 if (r->in.servername) {
30558 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
30559 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
30560 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
30561 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
30562 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
30563 return 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));
30565 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
30566 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
30567 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
30569 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
30570 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
30571 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
30572 return 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));
30574 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
30575 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
30576 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_language));
30577 if (_ptr_language) {
30578 NDR_PULL_ALLOC(ndr, r->in.language);
30579 } else {
30580 r->in.language = NULL;
30582 if (r->in.language) {
30583 _mem_save_language_0 = NDR_PULL_GET_MEM_CTX(ndr);
30584 NDR_PULL_SET_MEM_CTX(ndr, r->in.language, 0);
30585 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.language));
30586 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.language));
30587 if (ndr_get_array_length(ndr, &r->in.language) > ndr_get_array_size(ndr, &r->in.language)) {
30588 return 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));
30590 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.language), sizeof(uint16_t)));
30591 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.language, ndr_get_array_length(ndr, &r->in.language), sizeof(uint16_t), CH_UTF16));
30592 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_language_0, 0);
30594 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.package_id));
30595 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.package_id));
30596 if (ndr_get_array_length(ndr, &r->in.package_id) > ndr_get_array_size(ndr, &r->in.package_id)) {
30597 return 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));
30599 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.package_id), sizeof(uint16_t)));
30600 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));
30601 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_package_cab));
30602 if (_ptr_driver_package_cab) {
30603 NDR_PULL_ALLOC(ndr, r->in.driver_package_cab);
30604 } else {
30605 r->in.driver_package_cab = NULL;
30607 if (r->in.driver_package_cab) {
30608 _mem_save_driver_package_cab_0 = NDR_PULL_GET_MEM_CTX(ndr);
30609 NDR_PULL_SET_MEM_CTX(ndr, r->in.driver_package_cab, 0);
30610 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver_package_cab));
30611 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));
30612 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_package_cab_0, 0);
30614 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.driver_package_cab_size));
30615 NDR_PULL_ALLOC(ndr, r->out.required);
30616 ZERO_STRUCTP(r->out.required);
30617 if (r->in.driver_package_cab) {
30618 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.driver_package_cab, r->in.driver_package_cab_size));
30621 if (flags & NDR_OUT) {
30622 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_package_cab));
30623 if (_ptr_driver_package_cab) {
30624 NDR_PULL_ALLOC(ndr, r->out.driver_package_cab);
30625 } else {
30626 r->out.driver_package_cab = NULL;
30628 if (r->out.driver_package_cab) {
30629 _mem_save_driver_package_cab_0 = NDR_PULL_GET_MEM_CTX(ndr);
30630 NDR_PULL_SET_MEM_CTX(ndr, r->out.driver_package_cab, 0);
30631 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.driver_package_cab));
30632 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));
30633 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_package_cab_0, 0);
30635 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
30636 NDR_PULL_ALLOC(ndr, r->out.required);
30638 _mem_save_required_0 = NDR_PULL_GET_MEM_CTX(ndr);
30639 NDR_PULL_SET_MEM_CTX(ndr, r->out.required, LIBNDR_FLAG_REF_ALLOC);
30640 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.required));
30641 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_required_0, LIBNDR_FLAG_REF_ALLOC);
30642 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30643 if (r->out.driver_package_cab) {
30644 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.driver_package_cab, r->in.driver_package_cab_size));
30647 return NDR_ERR_SUCCESS;
30650 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverPackagePath(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverPackagePath *r)
30652 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverPackagePath");
30653 ndr->depth++;
30654 if (flags & NDR_SET_VALUES) {
30655 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30657 if (flags & NDR_IN) {
30658 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverPackagePath");
30659 ndr->depth++;
30660 ndr_print_ptr(ndr, "servername", r->in.servername);
30661 ndr->depth++;
30662 if (r->in.servername) {
30663 ndr_print_string(ndr, "servername", r->in.servername);
30665 ndr->depth--;
30666 ndr_print_ptr(ndr, "architecture", r->in.architecture);
30667 ndr->depth++;
30668 ndr_print_string(ndr, "architecture", r->in.architecture);
30669 ndr->depth--;
30670 ndr_print_ptr(ndr, "language", r->in.language);
30671 ndr->depth++;
30672 if (r->in.language) {
30673 ndr_print_string(ndr, "language", r->in.language);
30675 ndr->depth--;
30676 ndr_print_ptr(ndr, "package_id", r->in.package_id);
30677 ndr->depth++;
30678 ndr_print_string(ndr, "package_id", r->in.package_id);
30679 ndr->depth--;
30680 ndr_print_ptr(ndr, "driver_package_cab", r->in.driver_package_cab);
30681 ndr->depth++;
30682 if (r->in.driver_package_cab) {
30683 ndr_print_string(ndr, "driver_package_cab", r->in.driver_package_cab);
30685 ndr->depth--;
30686 ndr_print_uint32(ndr, "driver_package_cab_size", r->in.driver_package_cab_size);
30687 ndr->depth--;
30689 if (flags & NDR_OUT) {
30690 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverPackagePath");
30691 ndr->depth++;
30692 ndr_print_ptr(ndr, "driver_package_cab", r->out.driver_package_cab);
30693 ndr->depth++;
30694 if (r->out.driver_package_cab) {
30695 ndr_print_string(ndr, "driver_package_cab", r->out.driver_package_cab);
30697 ndr->depth--;
30698 ndr_print_ptr(ndr, "required", r->out.required);
30699 ndr->depth++;
30700 ndr_print_uint32(ndr, "required", *r->out.required);
30701 ndr->depth--;
30702 ndr_print_WERROR(ndr, "result", r->out.result);
30703 ndr->depth--;
30705 ndr->depth--;
30708 static enum ndr_err_code ndr_push_spoolss_69(struct ndr_push *ndr, int flags, const struct spoolss_69 *r)
30710 if (flags & NDR_IN) {
30712 if (flags & NDR_OUT) {
30713 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30715 return NDR_ERR_SUCCESS;
30718 static enum ndr_err_code ndr_pull_spoolss_69(struct ndr_pull *ndr, int flags, struct spoolss_69 *r)
30720 if (flags & NDR_IN) {
30722 if (flags & NDR_OUT) {
30723 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30725 return NDR_ERR_SUCCESS;
30728 _PUBLIC_ void ndr_print_spoolss_69(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_69 *r)
30730 ndr_print_struct(ndr, name, "spoolss_69");
30731 ndr->depth++;
30732 if (flags & NDR_SET_VALUES) {
30733 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30735 if (flags & NDR_IN) {
30736 ndr_print_struct(ndr, "in", "spoolss_69");
30737 ndr->depth++;
30738 ndr->depth--;
30740 if (flags & NDR_OUT) {
30741 ndr_print_struct(ndr, "out", "spoolss_69");
30742 ndr->depth++;
30743 ndr_print_WERROR(ndr, "result", r->out.result);
30744 ndr->depth--;
30746 ndr->depth--;
30749 static enum ndr_err_code ndr_push_spoolss_6a(struct ndr_push *ndr, int flags, const struct spoolss_6a *r)
30751 if (flags & NDR_IN) {
30753 if (flags & NDR_OUT) {
30754 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30756 return NDR_ERR_SUCCESS;
30759 static enum ndr_err_code ndr_pull_spoolss_6a(struct ndr_pull *ndr, int flags, struct spoolss_6a *r)
30761 if (flags & NDR_IN) {
30763 if (flags & NDR_OUT) {
30764 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30766 return NDR_ERR_SUCCESS;
30769 _PUBLIC_ void ndr_print_spoolss_6a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6a *r)
30771 ndr_print_struct(ndr, name, "spoolss_6a");
30772 ndr->depth++;
30773 if (flags & NDR_SET_VALUES) {
30774 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30776 if (flags & NDR_IN) {
30777 ndr_print_struct(ndr, "in", "spoolss_6a");
30778 ndr->depth++;
30779 ndr->depth--;
30781 if (flags & NDR_OUT) {
30782 ndr_print_struct(ndr, "out", "spoolss_6a");
30783 ndr->depth++;
30784 ndr_print_WERROR(ndr, "result", r->out.result);
30785 ndr->depth--;
30787 ndr->depth--;
30790 static enum ndr_err_code ndr_push_spoolss_6b(struct ndr_push *ndr, int flags, const struct spoolss_6b *r)
30792 if (flags & NDR_IN) {
30794 if (flags & NDR_OUT) {
30795 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30797 return NDR_ERR_SUCCESS;
30800 static enum ndr_err_code ndr_pull_spoolss_6b(struct ndr_pull *ndr, int flags, struct spoolss_6b *r)
30802 if (flags & NDR_IN) {
30804 if (flags & NDR_OUT) {
30805 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30807 return NDR_ERR_SUCCESS;
30810 _PUBLIC_ void ndr_print_spoolss_6b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6b *r)
30812 ndr_print_struct(ndr, name, "spoolss_6b");
30813 ndr->depth++;
30814 if (flags & NDR_SET_VALUES) {
30815 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30817 if (flags & NDR_IN) {
30818 ndr_print_struct(ndr, "in", "spoolss_6b");
30819 ndr->depth++;
30820 ndr->depth--;
30822 if (flags & NDR_OUT) {
30823 ndr_print_struct(ndr, "out", "spoolss_6b");
30824 ndr->depth++;
30825 ndr_print_WERROR(ndr, "result", r->out.result);
30826 ndr->depth--;
30828 ndr->depth--;
30831 static enum ndr_err_code ndr_push_spoolss_6c(struct ndr_push *ndr, int flags, const struct spoolss_6c *r)
30833 if (flags & NDR_IN) {
30835 if (flags & NDR_OUT) {
30836 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30838 return NDR_ERR_SUCCESS;
30841 static enum ndr_err_code ndr_pull_spoolss_6c(struct ndr_pull *ndr, int flags, struct spoolss_6c *r)
30843 if (flags & NDR_IN) {
30845 if (flags & NDR_OUT) {
30846 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30848 return NDR_ERR_SUCCESS;
30851 _PUBLIC_ void ndr_print_spoolss_6c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6c *r)
30853 ndr_print_struct(ndr, name, "spoolss_6c");
30854 ndr->depth++;
30855 if (flags & NDR_SET_VALUES) {
30856 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30858 if (flags & NDR_IN) {
30859 ndr_print_struct(ndr, "in", "spoolss_6c");
30860 ndr->depth++;
30861 ndr->depth--;
30863 if (flags & NDR_OUT) {
30864 ndr_print_struct(ndr, "out", "spoolss_6c");
30865 ndr->depth++;
30866 ndr_print_WERROR(ndr, "result", r->out.result);
30867 ndr->depth--;
30869 ndr->depth--;
30872 static enum ndr_err_code ndr_push_spoolss_6d(struct ndr_push *ndr, int flags, const struct spoolss_6d *r)
30874 if (flags & NDR_IN) {
30876 if (flags & NDR_OUT) {
30877 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30879 return NDR_ERR_SUCCESS;
30882 static enum ndr_err_code ndr_pull_spoolss_6d(struct ndr_pull *ndr, int flags, struct spoolss_6d *r)
30884 if (flags & NDR_IN) {
30886 if (flags & NDR_OUT) {
30887 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30889 return NDR_ERR_SUCCESS;
30892 _PUBLIC_ void ndr_print_spoolss_6d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6d *r)
30894 ndr_print_struct(ndr, name, "spoolss_6d");
30895 ndr->depth++;
30896 if (flags & NDR_SET_VALUES) {
30897 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30899 if (flags & NDR_IN) {
30900 ndr_print_struct(ndr, "in", "spoolss_6d");
30901 ndr->depth++;
30902 ndr->depth--;
30904 if (flags & NDR_OUT) {
30905 ndr_print_struct(ndr, "out", "spoolss_6d");
30906 ndr->depth++;
30907 ndr_print_WERROR(ndr, "result", r->out.result);
30908 ndr->depth--;
30910 ndr->depth--;
30913 static const struct ndr_interface_call spoolss_calls[] = {
30915 "spoolss_EnumPrinters",
30916 sizeof(struct spoolss_EnumPrinters),
30917 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
30918 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
30919 (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
30920 false,
30923 "spoolss_OpenPrinter",
30924 sizeof(struct spoolss_OpenPrinter),
30925 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
30926 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
30927 (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
30928 false,
30931 "spoolss_SetJob",
30932 sizeof(struct spoolss_SetJob),
30933 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
30934 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
30935 (ndr_print_function_t) ndr_print_spoolss_SetJob,
30936 false,
30939 "spoolss_GetJob",
30940 sizeof(struct spoolss_GetJob),
30941 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
30942 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
30943 (ndr_print_function_t) ndr_print_spoolss_GetJob,
30944 false,
30947 "spoolss_EnumJobs",
30948 sizeof(struct spoolss_EnumJobs),
30949 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
30950 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
30951 (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
30952 false,
30955 "spoolss_AddPrinter",
30956 sizeof(struct spoolss_AddPrinter),
30957 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
30958 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
30959 (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
30960 false,
30963 "spoolss_DeletePrinter",
30964 sizeof(struct spoolss_DeletePrinter),
30965 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
30966 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
30967 (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
30968 false,
30971 "spoolss_SetPrinter",
30972 sizeof(struct spoolss_SetPrinter),
30973 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
30974 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
30975 (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
30976 false,
30979 "spoolss_GetPrinter",
30980 sizeof(struct spoolss_GetPrinter),
30981 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
30982 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
30983 (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
30984 false,
30987 "spoolss_AddPrinterDriver",
30988 sizeof(struct spoolss_AddPrinterDriver),
30989 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
30990 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
30991 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
30992 false,
30995 "spoolss_EnumPrinterDrivers",
30996 sizeof(struct spoolss_EnumPrinterDrivers),
30997 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
30998 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
30999 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
31000 false,
31003 "spoolss_GetPrinterDriver",
31004 sizeof(struct spoolss_GetPrinterDriver),
31005 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
31006 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
31007 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
31008 false,
31011 "spoolss_GetPrinterDriverDirectory",
31012 sizeof(struct spoolss_GetPrinterDriverDirectory),
31013 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
31014 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
31015 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
31016 false,
31019 "spoolss_DeletePrinterDriver",
31020 sizeof(struct spoolss_DeletePrinterDriver),
31021 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
31022 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
31023 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
31024 false,
31027 "spoolss_AddPrintProcessor",
31028 sizeof(struct spoolss_AddPrintProcessor),
31029 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
31030 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
31031 (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
31032 false,
31035 "spoolss_EnumPrintProcessors",
31036 sizeof(struct spoolss_EnumPrintProcessors),
31037 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
31038 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
31039 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
31040 false,
31043 "spoolss_GetPrintProcessorDirectory",
31044 sizeof(struct spoolss_GetPrintProcessorDirectory),
31045 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
31046 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
31047 (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
31048 false,
31051 "spoolss_StartDocPrinter",
31052 sizeof(struct spoolss_StartDocPrinter),
31053 (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
31054 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
31055 (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
31056 false,
31059 "spoolss_StartPagePrinter",
31060 sizeof(struct spoolss_StartPagePrinter),
31061 (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
31062 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
31063 (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
31064 false,
31067 "spoolss_WritePrinter",
31068 sizeof(struct spoolss_WritePrinter),
31069 (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
31070 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
31071 (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
31072 false,
31075 "spoolss_EndPagePrinter",
31076 sizeof(struct spoolss_EndPagePrinter),
31077 (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
31078 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
31079 (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
31080 false,
31083 "spoolss_AbortPrinter",
31084 sizeof(struct spoolss_AbortPrinter),
31085 (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
31086 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
31087 (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
31088 false,
31091 "spoolss_ReadPrinter",
31092 sizeof(struct spoolss_ReadPrinter),
31093 (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
31094 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
31095 (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
31096 false,
31099 "spoolss_EndDocPrinter",
31100 sizeof(struct spoolss_EndDocPrinter),
31101 (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
31102 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
31103 (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
31104 false,
31107 "spoolss_AddJob",
31108 sizeof(struct spoolss_AddJob),
31109 (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
31110 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
31111 (ndr_print_function_t) ndr_print_spoolss_AddJob,
31112 false,
31115 "spoolss_ScheduleJob",
31116 sizeof(struct spoolss_ScheduleJob),
31117 (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
31118 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
31119 (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
31120 false,
31123 "spoolss_GetPrinterData",
31124 sizeof(struct spoolss_GetPrinterData),
31125 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
31126 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
31127 (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
31128 false,
31131 "spoolss_SetPrinterData",
31132 sizeof(struct spoolss_SetPrinterData),
31133 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
31134 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
31135 (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
31136 false,
31139 "spoolss_WaitForPrinterChange",
31140 sizeof(struct spoolss_WaitForPrinterChange),
31141 (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
31142 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
31143 (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
31144 false,
31147 "spoolss_ClosePrinter",
31148 sizeof(struct spoolss_ClosePrinter),
31149 (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
31150 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
31151 (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
31152 false,
31155 "spoolss_AddForm",
31156 sizeof(struct spoolss_AddForm),
31157 (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
31158 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
31159 (ndr_print_function_t) ndr_print_spoolss_AddForm,
31160 false,
31163 "spoolss_DeleteForm",
31164 sizeof(struct spoolss_DeleteForm),
31165 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
31166 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
31167 (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
31168 false,
31171 "spoolss_GetForm",
31172 sizeof(struct spoolss_GetForm),
31173 (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
31174 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
31175 (ndr_print_function_t) ndr_print_spoolss_GetForm,
31176 false,
31179 "spoolss_SetForm",
31180 sizeof(struct spoolss_SetForm),
31181 (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
31182 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
31183 (ndr_print_function_t) ndr_print_spoolss_SetForm,
31184 false,
31187 "spoolss_EnumForms",
31188 sizeof(struct spoolss_EnumForms),
31189 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
31190 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
31191 (ndr_print_function_t) ndr_print_spoolss_EnumForms,
31192 false,
31195 "spoolss_EnumPorts",
31196 sizeof(struct spoolss_EnumPorts),
31197 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
31198 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
31199 (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
31200 false,
31203 "spoolss_EnumMonitors",
31204 sizeof(struct spoolss_EnumMonitors),
31205 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
31206 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
31207 (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
31208 false,
31211 "spoolss_AddPort",
31212 sizeof(struct spoolss_AddPort),
31213 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
31214 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
31215 (ndr_print_function_t) ndr_print_spoolss_AddPort,
31216 false,
31219 "spoolss_ConfigurePort",
31220 sizeof(struct spoolss_ConfigurePort),
31221 (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
31222 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
31223 (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
31224 false,
31227 "spoolss_DeletePort",
31228 sizeof(struct spoolss_DeletePort),
31229 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
31230 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
31231 (ndr_print_function_t) ndr_print_spoolss_DeletePort,
31232 false,
31235 "spoolss_CreatePrinterIC",
31236 sizeof(struct spoolss_CreatePrinterIC),
31237 (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
31238 (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
31239 (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
31240 false,
31243 "spoolss_PlayGDIScriptOnPrinterIC",
31244 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
31245 (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
31246 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
31247 (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
31248 false,
31251 "spoolss_DeletePrinterIC",
31252 sizeof(struct spoolss_DeletePrinterIC),
31253 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
31254 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
31255 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
31256 false,
31259 "spoolss_AddPrinterConnection",
31260 sizeof(struct spoolss_AddPrinterConnection),
31261 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
31262 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
31263 (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
31264 false,
31267 "spoolss_DeletePrinterConnection",
31268 sizeof(struct spoolss_DeletePrinterConnection),
31269 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
31270 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
31271 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
31272 false,
31275 "spoolss_PrinterMessageBox",
31276 sizeof(struct spoolss_PrinterMessageBox),
31277 (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
31278 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
31279 (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
31280 false,
31283 "spoolss_AddMonitor",
31284 sizeof(struct spoolss_AddMonitor),
31285 (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
31286 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
31287 (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
31288 false,
31291 "spoolss_DeleteMonitor",
31292 sizeof(struct spoolss_DeleteMonitor),
31293 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
31294 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
31295 (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
31296 false,
31299 "spoolss_DeletePrintProcessor",
31300 sizeof(struct spoolss_DeletePrintProcessor),
31301 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
31302 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
31303 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
31304 false,
31307 "spoolss_AddPrintProvidor",
31308 sizeof(struct spoolss_AddPrintProvidor),
31309 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
31310 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
31311 (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
31312 false,
31315 "spoolss_DeletePrintProvidor",
31316 sizeof(struct spoolss_DeletePrintProvidor),
31317 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
31318 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
31319 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
31320 false,
31323 "spoolss_EnumPrintProcDataTypes",
31324 sizeof(struct spoolss_EnumPrintProcDataTypes),
31325 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcDataTypes,
31326 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcDataTypes,
31327 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcDataTypes,
31328 false,
31331 "spoolss_ResetPrinter",
31332 sizeof(struct spoolss_ResetPrinter),
31333 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
31334 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
31335 (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
31336 false,
31339 "spoolss_GetPrinterDriver2",
31340 sizeof(struct spoolss_GetPrinterDriver2),
31341 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
31342 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
31343 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
31344 false,
31347 "spoolss_FindFirstPrinterChangeNotification",
31348 sizeof(struct spoolss_FindFirstPrinterChangeNotification),
31349 (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
31350 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
31351 (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
31352 false,
31355 "spoolss_FindNextPrinterChangeNotification",
31356 sizeof(struct spoolss_FindNextPrinterChangeNotification),
31357 (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
31358 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
31359 (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
31360 false,
31363 "spoolss_FindClosePrinterNotify",
31364 sizeof(struct spoolss_FindClosePrinterNotify),
31365 (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
31366 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
31367 (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
31368 false,
31371 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
31372 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
31373 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
31374 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
31375 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
31376 false,
31379 "spoolss_ReplyOpenPrinter",
31380 sizeof(struct spoolss_ReplyOpenPrinter),
31381 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
31382 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
31383 (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
31384 false,
31387 "spoolss_RouterReplyPrinter",
31388 sizeof(struct spoolss_RouterReplyPrinter),
31389 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
31390 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
31391 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
31392 false,
31395 "spoolss_ReplyClosePrinter",
31396 sizeof(struct spoolss_ReplyClosePrinter),
31397 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
31398 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
31399 (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
31400 false,
31403 "spoolss_AddPortEx",
31404 sizeof(struct spoolss_AddPortEx),
31405 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
31406 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
31407 (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
31408 false,
31411 "spoolss_RouterFindFirstPrinterChangeNotification",
31412 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
31413 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
31414 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
31415 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
31416 false,
31419 "spoolss_SpoolerInit",
31420 sizeof(struct spoolss_SpoolerInit),
31421 (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
31422 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
31423 (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
31424 false,
31427 "spoolss_ResetPrinterEx",
31428 sizeof(struct spoolss_ResetPrinterEx),
31429 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
31430 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
31431 (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
31432 false,
31435 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
31436 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
31437 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
31438 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
31439 (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
31440 false,
31443 "spoolss_RouterReplyPrinterEx",
31444 sizeof(struct spoolss_RouterReplyPrinterEx),
31445 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinterEx,
31446 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinterEx,
31447 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinterEx,
31448 false,
31451 "spoolss_RouterRefreshPrinterChangeNotify",
31452 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify),
31453 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotify,
31454 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify,
31455 (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotify,
31456 false,
31459 "spoolss_44",
31460 sizeof(struct spoolss_44),
31461 (ndr_push_flags_fn_t) ndr_push_spoolss_44,
31462 (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
31463 (ndr_print_function_t) ndr_print_spoolss_44,
31464 false,
31467 "spoolss_OpenPrinterEx",
31468 sizeof(struct spoolss_OpenPrinterEx),
31469 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
31470 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
31471 (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
31472 false,
31475 "spoolss_AddPrinterEx",
31476 sizeof(struct spoolss_AddPrinterEx),
31477 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
31478 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
31479 (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
31480 false,
31483 "spoolss_47",
31484 sizeof(struct spoolss_47),
31485 (ndr_push_flags_fn_t) ndr_push_spoolss_47,
31486 (ndr_pull_flags_fn_t) ndr_pull_spoolss_47,
31487 (ndr_print_function_t) ndr_print_spoolss_47,
31488 false,
31491 "spoolss_EnumPrinterData",
31492 sizeof(struct spoolss_EnumPrinterData),
31493 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
31494 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
31495 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
31496 false,
31499 "spoolss_DeletePrinterData",
31500 sizeof(struct spoolss_DeletePrinterData),
31501 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
31502 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
31503 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
31504 false,
31507 "spoolss_4a",
31508 sizeof(struct spoolss_4a),
31509 (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
31510 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
31511 (ndr_print_function_t) ndr_print_spoolss_4a,
31512 false,
31515 "spoolss_4b",
31516 sizeof(struct spoolss_4b),
31517 (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
31518 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
31519 (ndr_print_function_t) ndr_print_spoolss_4b,
31520 false,
31523 "spoolss_4c",
31524 sizeof(struct spoolss_4c),
31525 (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
31526 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
31527 (ndr_print_function_t) ndr_print_spoolss_4c,
31528 false,
31531 "spoolss_SetPrinterDataEx",
31532 sizeof(struct spoolss_SetPrinterDataEx),
31533 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
31534 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
31535 (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
31536 false,
31539 "spoolss_GetPrinterDataEx",
31540 sizeof(struct spoolss_GetPrinterDataEx),
31541 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
31542 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
31543 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
31544 false,
31547 "spoolss_EnumPrinterDataEx",
31548 sizeof(struct spoolss_EnumPrinterDataEx),
31549 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
31550 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
31551 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
31552 false,
31555 "spoolss_EnumPrinterKey",
31556 sizeof(struct spoolss_EnumPrinterKey),
31557 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
31558 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
31559 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
31560 false,
31563 "spoolss_DeletePrinterDataEx",
31564 sizeof(struct spoolss_DeletePrinterDataEx),
31565 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
31566 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
31567 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
31568 false,
31571 "spoolss_DeletePrinterKey",
31572 sizeof(struct spoolss_DeletePrinterKey),
31573 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
31574 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
31575 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
31576 false,
31579 "spoolss_53",
31580 sizeof(struct spoolss_53),
31581 (ndr_push_flags_fn_t) ndr_push_spoolss_53,
31582 (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
31583 (ndr_print_function_t) ndr_print_spoolss_53,
31584 false,
31587 "spoolss_DeletePrinterDriverEx",
31588 sizeof(struct spoolss_DeletePrinterDriverEx),
31589 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
31590 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
31591 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
31592 false,
31595 "spoolss_55",
31596 sizeof(struct spoolss_55),
31597 (ndr_push_flags_fn_t) ndr_push_spoolss_55,
31598 (ndr_pull_flags_fn_t) ndr_pull_spoolss_55,
31599 (ndr_print_function_t) ndr_print_spoolss_55,
31600 false,
31603 "spoolss_56",
31604 sizeof(struct spoolss_56),
31605 (ndr_push_flags_fn_t) ndr_push_spoolss_56,
31606 (ndr_pull_flags_fn_t) ndr_pull_spoolss_56,
31607 (ndr_print_function_t) ndr_print_spoolss_56,
31608 false,
31611 "spoolss_57",
31612 sizeof(struct spoolss_57),
31613 (ndr_push_flags_fn_t) ndr_push_spoolss_57,
31614 (ndr_pull_flags_fn_t) ndr_pull_spoolss_57,
31615 (ndr_print_function_t) ndr_print_spoolss_57,
31616 false,
31619 "spoolss_XcvData",
31620 sizeof(struct spoolss_XcvData),
31621 (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
31622 (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
31623 (ndr_print_function_t) ndr_print_spoolss_XcvData,
31624 false,
31627 "spoolss_AddPrinterDriverEx",
31628 sizeof(struct spoolss_AddPrinterDriverEx),
31629 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
31630 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
31631 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
31632 false,
31635 "spoolss_5a",
31636 sizeof(struct spoolss_5a),
31637 (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
31638 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
31639 (ndr_print_function_t) ndr_print_spoolss_5a,
31640 false,
31643 "spoolss_5b",
31644 sizeof(struct spoolss_5b),
31645 (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
31646 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
31647 (ndr_print_function_t) ndr_print_spoolss_5b,
31648 false,
31651 "spoolss_5c",
31652 sizeof(struct spoolss_5c),
31653 (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
31654 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
31655 (ndr_print_function_t) ndr_print_spoolss_5c,
31656 false,
31659 "spoolss_5d",
31660 sizeof(struct spoolss_5d),
31661 (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
31662 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
31663 (ndr_print_function_t) ndr_print_spoolss_5d,
31664 false,
31667 "spoolss_5e",
31668 sizeof(struct spoolss_5e),
31669 (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
31670 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
31671 (ndr_print_function_t) ndr_print_spoolss_5e,
31672 false,
31675 "spoolss_5f",
31676 sizeof(struct spoolss_5f),
31677 (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
31678 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
31679 (ndr_print_function_t) ndr_print_spoolss_5f,
31680 false,
31683 "spoolss_60",
31684 sizeof(struct spoolss_60),
31685 (ndr_push_flags_fn_t) ndr_push_spoolss_60,
31686 (ndr_pull_flags_fn_t) ndr_pull_spoolss_60,
31687 (ndr_print_function_t) ndr_print_spoolss_60,
31688 false,
31691 "spoolss_61",
31692 sizeof(struct spoolss_61),
31693 (ndr_push_flags_fn_t) ndr_push_spoolss_61,
31694 (ndr_pull_flags_fn_t) ndr_pull_spoolss_61,
31695 (ndr_print_function_t) ndr_print_spoolss_61,
31696 false,
31699 "spoolss_62",
31700 sizeof(struct spoolss_62),
31701 (ndr_push_flags_fn_t) ndr_push_spoolss_62,
31702 (ndr_pull_flags_fn_t) ndr_pull_spoolss_62,
31703 (ndr_print_function_t) ndr_print_spoolss_62,
31704 false,
31707 "spoolss_63",
31708 sizeof(struct spoolss_63),
31709 (ndr_push_flags_fn_t) ndr_push_spoolss_63,
31710 (ndr_pull_flags_fn_t) ndr_pull_spoolss_63,
31711 (ndr_print_function_t) ndr_print_spoolss_63,
31712 false,
31715 "spoolss_64",
31716 sizeof(struct spoolss_64),
31717 (ndr_push_flags_fn_t) ndr_push_spoolss_64,
31718 (ndr_pull_flags_fn_t) ndr_pull_spoolss_64,
31719 (ndr_print_function_t) ndr_print_spoolss_64,
31720 false,
31723 "spoolss_65",
31724 sizeof(struct spoolss_65),
31725 (ndr_push_flags_fn_t) ndr_push_spoolss_65,
31726 (ndr_pull_flags_fn_t) ndr_pull_spoolss_65,
31727 (ndr_print_function_t) ndr_print_spoolss_65,
31728 false,
31731 "spoolss_GetCorePrinterDrivers",
31732 sizeof(struct spoolss_GetCorePrinterDrivers),
31733 (ndr_push_flags_fn_t) ndr_push_spoolss_GetCorePrinterDrivers,
31734 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetCorePrinterDrivers,
31735 (ndr_print_function_t) ndr_print_spoolss_GetCorePrinterDrivers,
31736 false,
31739 "spoolss_67",
31740 sizeof(struct spoolss_67),
31741 (ndr_push_flags_fn_t) ndr_push_spoolss_67,
31742 (ndr_pull_flags_fn_t) ndr_pull_spoolss_67,
31743 (ndr_print_function_t) ndr_print_spoolss_67,
31744 false,
31747 "spoolss_GetPrinterDriverPackagePath",
31748 sizeof(struct spoolss_GetPrinterDriverPackagePath),
31749 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverPackagePath,
31750 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverPackagePath,
31751 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverPackagePath,
31752 false,
31755 "spoolss_69",
31756 sizeof(struct spoolss_69),
31757 (ndr_push_flags_fn_t) ndr_push_spoolss_69,
31758 (ndr_pull_flags_fn_t) ndr_pull_spoolss_69,
31759 (ndr_print_function_t) ndr_print_spoolss_69,
31760 false,
31763 "spoolss_6a",
31764 sizeof(struct spoolss_6a),
31765 (ndr_push_flags_fn_t) ndr_push_spoolss_6a,
31766 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6a,
31767 (ndr_print_function_t) ndr_print_spoolss_6a,
31768 false,
31771 "spoolss_6b",
31772 sizeof(struct spoolss_6b),
31773 (ndr_push_flags_fn_t) ndr_push_spoolss_6b,
31774 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6b,
31775 (ndr_print_function_t) ndr_print_spoolss_6b,
31776 false,
31779 "spoolss_6c",
31780 sizeof(struct spoolss_6c),
31781 (ndr_push_flags_fn_t) ndr_push_spoolss_6c,
31782 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6c,
31783 (ndr_print_function_t) ndr_print_spoolss_6c,
31784 false,
31787 "spoolss_6d",
31788 sizeof(struct spoolss_6d),
31789 (ndr_push_flags_fn_t) ndr_push_spoolss_6d,
31790 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6d,
31791 (ndr_print_function_t) ndr_print_spoolss_6d,
31792 false,
31794 { NULL, 0, NULL, NULL, NULL, false }
31797 static const char * const spoolss_endpoint_strings[] = {
31798 "ncacn_np:[\\pipe\\spoolss]",
31801 static const struct ndr_interface_string_array spoolss_endpoints = {
31802 .count = 1,
31803 .names = spoolss_endpoint_strings
31806 static const char * const spoolss_authservice_strings[] = {
31807 "host",
31810 static const struct ndr_interface_string_array spoolss_authservices = {
31811 .count = 1,
31812 .names = spoolss_authservice_strings
31816 const struct ndr_interface_table ndr_table_spoolss = {
31817 .name = "spoolss",
31818 .syntax_id = {
31819 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
31820 NDR_SPOOLSS_VERSION
31822 .helpstring = NDR_SPOOLSS_HELPSTRING,
31823 .num_calls = 110,
31824 .calls = spoolss_calls,
31825 .endpoints = &spoolss_endpoints,
31826 .authservices = &spoolss_authservices