some shells are picky about ^ without quotes
[Samba.git] / librpc / gen_ndr / ndr_spoolss.c
blob31220edc6223e25ec63ecff77578c5817441dd13
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));
22 if (ndr_flags & NDR_BUFFERS) {
24 return NDR_ERR_SUCCESS;
27 static enum ndr_err_code ndr_pull_spoolss_Time(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Time *r)
29 if (ndr_flags & NDR_SCALARS) {
30 NDR_CHECK(ndr_pull_align(ndr, 2));
31 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->year));
32 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->month));
33 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->day_of_week));
34 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->day));
35 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->hour));
36 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->minute));
37 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->second));
38 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->millisecond));
40 if (ndr_flags & NDR_BUFFERS) {
42 return NDR_ERR_SUCCESS;
45 _PUBLIC_ void ndr_print_spoolss_Time(struct ndr_print *ndr, const char *name, const struct spoolss_Time *r)
47 ndr_print_struct(ndr, name, "spoolss_Time");
48 ndr->depth++;
49 ndr_print_uint16(ndr, "year", r->year);
50 ndr_print_uint16(ndr, "month", r->month);
51 ndr_print_uint16(ndr, "day_of_week", r->day_of_week);
52 ndr_print_uint16(ndr, "day", r->day);
53 ndr_print_uint16(ndr, "hour", r->hour);
54 ndr_print_uint16(ndr, "minute", r->minute);
55 ndr_print_uint16(ndr, "second", r->second);
56 ndr_print_uint16(ndr, "millisecond", r->millisecond);
57 ndr->depth--;
60 static size_t ndr_size_spoolss_Time(const struct spoolss_Time *r, struct smb_iconv_convenience *ic, int flags)
62 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_Time, ic);
65 static enum ndr_err_code ndr_push_spoolss_TimeCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_TimeCtr *r)
67 if (ndr_flags & NDR_SCALARS) {
68 NDR_CHECK(ndr_push_align(ndr, 4));
69 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_Time(r->time, ndr->iconv_convenience, ndr->flags)));
70 NDR_CHECK(ndr_push_unique_ptr(ndr, r->time));
72 if (ndr_flags & NDR_BUFFERS) {
73 if (r->time) {
74 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, r->time));
77 return NDR_ERR_SUCCESS;
80 static enum ndr_err_code ndr_pull_spoolss_TimeCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_TimeCtr *r)
82 uint32_t _ptr_time;
83 TALLOC_CTX *_mem_save_time_0;
84 if (ndr_flags & NDR_SCALARS) {
85 NDR_CHECK(ndr_pull_align(ndr, 4));
86 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
87 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_time));
88 if (_ptr_time) {
89 NDR_PULL_ALLOC(ndr, r->time);
90 } else {
91 r->time = NULL;
94 if (ndr_flags & NDR_BUFFERS) {
95 if (r->time) {
96 _mem_save_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
97 NDR_PULL_SET_MEM_CTX(ndr, r->time, 0);
98 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, r->time));
99 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_time_0, 0);
102 return NDR_ERR_SUCCESS;
105 _PUBLIC_ void ndr_print_spoolss_TimeCtr(struct ndr_print *ndr, const char *name, const struct spoolss_TimeCtr *r)
107 ndr_print_struct(ndr, name, "spoolss_TimeCtr");
108 ndr->depth++;
109 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_Time(r->time, ndr->iconv_convenience, ndr->flags):r->size);
110 ndr_print_ptr(ndr, "time", r->time);
111 ndr->depth++;
112 if (r->time) {
113 ndr_print_spoolss_Time(ndr, "time", r->time);
115 ndr->depth--;
116 ndr->depth--;
119 static enum ndr_err_code ndr_push_spoolss_ProcessorArchitecture(struct ndr_push *ndr, int ndr_flags, enum spoolss_ProcessorArchitecture r)
121 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
122 return NDR_ERR_SUCCESS;
125 static enum ndr_err_code ndr_pull_spoolss_ProcessorArchitecture(struct ndr_pull *ndr, int ndr_flags, enum spoolss_ProcessorArchitecture *r)
127 uint16_t v;
128 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
129 *r = v;
130 return NDR_ERR_SUCCESS;
133 _PUBLIC_ void ndr_print_spoolss_ProcessorArchitecture(struct ndr_print *ndr, const char *name, enum spoolss_ProcessorArchitecture r)
135 const char *val = NULL;
137 switch (r) {
138 case PROCESSOR_ARCHITECTURE_INTEL: val = "PROCESSOR_ARCHITECTURE_INTEL"; break;
139 case PROCESSOR_ARCHITECTURE_IA64: val = "PROCESSOR_ARCHITECTURE_IA64"; break;
140 case PROCESSOR_ARCHITECTURE_AMD64: val = "PROCESSOR_ARCHITECTURE_AMD64"; break;
142 ndr_print_enum(ndr, name, "ENUM", val, r);
145 static enum ndr_err_code ndr_push_spoolss_ProcessorType(struct ndr_push *ndr, int ndr_flags, enum spoolss_ProcessorType r)
147 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
148 return NDR_ERR_SUCCESS;
151 static enum ndr_err_code ndr_pull_spoolss_ProcessorType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_ProcessorType *r)
153 uint32_t v;
154 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
155 *r = v;
156 return NDR_ERR_SUCCESS;
159 _PUBLIC_ void ndr_print_spoolss_ProcessorType(struct ndr_print *ndr, const char *name, enum spoolss_ProcessorType r)
161 const char *val = NULL;
163 switch (r) {
164 case PROCESSOR_INTEL_386: val = "PROCESSOR_INTEL_386"; break;
165 case PROCESSOR_INTEL_486: val = "PROCESSOR_INTEL_486"; break;
166 case PROCESSOR_INTEL_PENTIUM: val = "PROCESSOR_INTEL_PENTIUM"; break;
167 case PROCESSOR_INTEL_IA64: val = "PROCESSOR_INTEL_IA64"; break;
168 case PROCESSOR_AMD_X8664: val = "PROCESSOR_AMD_X8664"; break;
170 ndr_print_enum(ndr, name, "ENUM", val, r);
173 static enum ndr_err_code ndr_push_spoolss_MajorVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_MajorVersion r)
175 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
176 return NDR_ERR_SUCCESS;
179 static enum ndr_err_code ndr_pull_spoolss_MajorVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_MajorVersion *r)
181 uint32_t v;
182 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
183 *r = v;
184 return NDR_ERR_SUCCESS;
187 _PUBLIC_ void ndr_print_spoolss_MajorVersion(struct ndr_print *ndr, const char *name, enum spoolss_MajorVersion r)
189 const char *val = NULL;
191 switch (r) {
192 case SPOOLSS_MAJOR_VERSION_NT4_95_98_ME: val = "SPOOLSS_MAJOR_VERSION_NT4_95_98_ME"; break;
193 case SPOOLSS_MAJOR_VERSION_2000_2003_XP: val = "SPOOLSS_MAJOR_VERSION_2000_2003_XP"; break;
194 case SPOOLSS_MAJOR_VERSION_2008_VISTA: val = "SPOOLSS_MAJOR_VERSION_2008_VISTA"; break;
196 ndr_print_enum(ndr, name, "ENUM", val, r);
199 static enum ndr_err_code ndr_push_spoolss_MinorVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_MinorVersion r)
201 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
202 return NDR_ERR_SUCCESS;
205 static enum ndr_err_code ndr_pull_spoolss_MinorVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_MinorVersion *r)
207 uint32_t v;
208 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
209 *r = v;
210 return NDR_ERR_SUCCESS;
213 _PUBLIC_ void ndr_print_spoolss_MinorVersion(struct ndr_print *ndr, const char *name, enum spoolss_MinorVersion r)
215 const char *val = NULL;
217 switch (r) {
218 case SPOOLSS_MINOR_VERSION_0: val = "SPOOLSS_MINOR_VERSION_0"; break;
219 case SPOOLSS_MINOR_VERSION_XP: val = "SPOOLSS_MINOR_VERSION_XP"; break;
220 case SPOOLSS_MINOR_VERSION_2003_XP64: val = "SPOOLSS_MINOR_VERSION_2003_XP64"; break;
221 case SPOOLSS_MINOR_VERSION_98: val = "SPOOLSS_MINOR_VERSION_98"; break;
222 case SPOOLSS_MINOR_VERSION_ME: val = "SPOOLSS_MINOR_VERSION_ME"; break;
224 ndr_print_enum(ndr, name, "ENUM", val, r);
227 static enum ndr_err_code ndr_push_spoolss_PrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo0 *r)
229 if (ndr_flags & NDR_SCALARS) {
230 NDR_CHECK(ndr_push_align(ndr, 4));
232 uint32_t _flags_save_string = ndr->flags;
233 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
234 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
235 ndr->flags = _flags_save_string;
238 uint32_t _flags_save_string = ndr->flags;
239 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
240 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
241 ndr->flags = _flags_save_string;
243 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
244 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
245 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
246 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
247 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
248 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
249 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
250 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
251 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
252 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
253 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
254 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
255 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
256 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_error));
257 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
258 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
259 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
260 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
261 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
262 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status));
263 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
264 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
265 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
266 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
267 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
268 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
269 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
271 if (ndr_flags & NDR_BUFFERS) {
273 uint32_t _flags_save_string = ndr->flags;
274 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
275 if (r->printername) {
276 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
277 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
279 ndr->flags = _flags_save_string;
282 uint32_t _flags_save_string = ndr->flags;
283 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
284 if (r->servername) {
285 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
286 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
288 ndr->flags = _flags_save_string;
291 return NDR_ERR_SUCCESS;
294 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo0 *r)
296 uint32_t _ptr_printername;
297 TALLOC_CTX *_mem_save_printername_0;
298 uint32_t _ptr_servername;
299 TALLOC_CTX *_mem_save_servername_0;
300 if (ndr_flags & NDR_SCALARS) {
301 NDR_CHECK(ndr_pull_align(ndr, 4));
303 uint32_t _flags_save_string = ndr->flags;
304 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
305 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
306 if (_ptr_printername) {
307 NDR_PULL_ALLOC(ndr, r->printername);
308 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
309 } else {
310 r->printername = NULL;
312 ndr->flags = _flags_save_string;
315 uint32_t _flags_save_string = ndr->flags;
316 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
317 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
318 if (_ptr_servername) {
319 NDR_PULL_ALLOC(ndr, r->servername);
320 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
321 } else {
322 r->servername = NULL;
324 ndr->flags = _flags_save_string;
326 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
327 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
328 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
329 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
330 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
331 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
332 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
333 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
334 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
335 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
336 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
337 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
338 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
339 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_error));
340 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
341 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
342 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
343 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
344 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
345 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status));
346 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
347 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
348 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
349 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
350 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
351 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
352 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
354 if (ndr_flags & NDR_BUFFERS) {
356 uint32_t _flags_save_string = ndr->flags;
357 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
358 if (r->printername) {
359 uint32_t _relative_save_offset;
360 _relative_save_offset = ndr->offset;
361 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
362 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
363 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
364 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
365 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
366 ndr->offset = _relative_save_offset;
368 ndr->flags = _flags_save_string;
371 uint32_t _flags_save_string = ndr->flags;
372 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
373 if (r->servername) {
374 uint32_t _relative_save_offset;
375 _relative_save_offset = ndr->offset;
376 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
377 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
378 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
379 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
380 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
381 ndr->offset = _relative_save_offset;
383 ndr->flags = _flags_save_string;
386 return NDR_ERR_SUCCESS;
389 _PUBLIC_ void ndr_print_spoolss_PrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo0 *r)
391 ndr_print_struct(ndr, name, "spoolss_PrinterInfo0");
392 ndr->depth++;
393 ndr_print_ptr(ndr, "printername", r->printername);
394 ndr->depth++;
395 if (r->printername) {
396 ndr_print_string(ndr, "printername", r->printername);
398 ndr->depth--;
399 ndr_print_ptr(ndr, "servername", r->servername);
400 ndr->depth++;
401 if (r->servername) {
402 ndr_print_string(ndr, "servername", r->servername);
404 ndr->depth--;
405 ndr_print_uint32(ndr, "cjobs", r->cjobs);
406 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
407 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
408 ndr_print_spoolss_Time(ndr, "time", &r->time);
409 ndr_print_uint32(ndr, "global_counter", r->global_counter);
410 ndr_print_uint32(ndr, "total_pages", r->total_pages);
411 ndr_print_uint32(ndr, "version", r->version);
412 ndr_print_uint32(ndr, "free_build", r->free_build);
413 ndr_print_uint32(ndr, "spooling", r->spooling);
414 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
415 ndr_print_uint32(ndr, "session_counter", r->session_counter);
416 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
417 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
418 ndr_print_uint32(ndr, "job_error", r->job_error);
419 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
420 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
421 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
422 ndr_print_uint32(ndr, "change_id", r->change_id);
423 ndr_print_WERROR(ndr, "last_error", r->last_error);
424 ndr_print_uint32(ndr, "status", r->status);
425 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
426 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
427 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
428 ndr_print_uint16(ndr, "processor_level", r->processor_level);
429 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
430 ndr_print_uint32(ndr, "reserved2", r->reserved2);
431 ndr_print_uint32(ndr, "reserved3", r->reserved3);
432 ndr->depth--;
435 static enum ndr_err_code ndr_push_spoolss_DeviceModeFields(struct ndr_push *ndr, int ndr_flags, uint32_t r)
437 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
438 return NDR_ERR_SUCCESS;
441 static enum ndr_err_code ndr_pull_spoolss_DeviceModeFields(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
443 uint32_t v;
444 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
445 *r = v;
446 return NDR_ERR_SUCCESS;
449 _PUBLIC_ void ndr_print_spoolss_DeviceModeFields(struct ndr_print *ndr, const char *name, uint32_t r)
451 ndr_print_uint32(ndr, name, r);
452 ndr->depth++;
453 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ORIENTATION", DEVMODE_ORIENTATION, r);
454 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERSIZE", DEVMODE_PAPERSIZE, r);
455 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERLENGTH", DEVMODE_PAPERLENGTH, r);
456 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERWIDTH", DEVMODE_PAPERWIDTH, r);
457 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_SCALE", DEVMODE_SCALE, r);
458 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_POSITION", DEVMODE_POSITION, r);
459 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_NUP", DEVMODE_NUP, r);
460 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COPIES", DEVMODE_COPIES, r);
461 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DEFAULTSOURCE", DEVMODE_DEFAULTSOURCE, r);
462 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PRINTQUALITY", DEVMODE_PRINTQUALITY, r);
463 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLOR", DEVMODE_COLOR, r);
464 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DUPLEX", DEVMODE_DUPLEX, r);
465 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_YRESOLUTION", DEVMODE_YRESOLUTION, r);
466 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_TTOPTION", DEVMODE_TTOPTION, r);
467 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLLATE", DEVMODE_COLLATE, r);
468 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_FORMNAME", DEVMODE_FORMNAME, r);
469 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_LOGPIXELS", DEVMODE_LOGPIXELS, r);
470 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_BITSPERPEL", DEVMODE_BITSPERPEL, r);
471 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSWIDTH", DEVMODE_PELSWIDTH, r);
472 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSHEIGHT", DEVMODE_PELSHEIGHT, r);
473 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFLAGS", DEVMODE_DISPLAYFLAGS, r);
474 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFREQUENCY", DEVMODE_DISPLAYFREQUENCY, r);
475 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMMETHOD", DEVMODE_ICMMETHOD, r);
476 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMINTENT", DEVMODE_ICMINTENT, r);
477 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_MEDIATYPE", DEVMODE_MEDIATYPE, r);
478 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DITHERTYPE", DEVMODE_DITHERTYPE, r);
479 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGWIDTH", DEVMODE_PANNINGWIDTH, r);
480 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGHEIGHT", DEVMODE_PANNINGHEIGHT, r);
481 ndr->depth--;
484 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeviceMode(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceMode *r)
486 if (ndr_flags & NDR_SCALARS) {
487 NDR_CHECK(ndr_push_align(ndr, 4));
488 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->devicename, 32, sizeof(uint16_t), CH_UTF16));
489 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->specversion));
490 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverversion));
491 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
492 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverextra_data.length));
493 NDR_CHECK(ndr_push_spoolss_DeviceModeFields(ndr, NDR_SCALARS, r->fields));
494 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->orientation));
495 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->papersize));
496 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperlength));
497 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperwidth));
498 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->scale));
499 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->copies));
500 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->defaultsource));
501 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->printquality));
502 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->color));
503 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->duplex));
504 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->yresolution));
505 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ttoption));
506 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->collate));
507 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, 32, sizeof(uint16_t), CH_UTF16));
508 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logpixels));
509 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bitsperpel));
510 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelswidth));
511 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelsheight));
512 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayflags));
513 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayfrequency));
514 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->icmmethod));
515 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->icmintent));
516 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->mediatype));
517 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dithertype));
518 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved1));
519 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
520 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningwidth));
521 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningheight));
523 uint32_t _flags_save_DATA_BLOB = ndr->flags;
524 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
526 struct ndr_push *_ndr_driverextra_data;
527 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->driverextra_data.length));
528 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, r->driverextra_data));
529 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_driverextra_data, 0, r->driverextra_data.length));
531 ndr->flags = _flags_save_DATA_BLOB;
534 if (ndr_flags & NDR_BUFFERS) {
536 return NDR_ERR_SUCCESS;
539 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeviceMode(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceMode *r)
541 if (ndr_flags & NDR_SCALARS) {
542 NDR_CHECK(ndr_pull_align(ndr, 4));
543 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->devicename, 32, sizeof(uint16_t), CH_UTF16));
544 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->specversion));
545 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->driverversion));
546 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
547 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->__driverextra_length));
548 NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr, NDR_SCALARS, &r->fields));
549 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->orientation));
550 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->papersize));
551 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperlength));
552 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperwidth));
553 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->scale));
554 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->copies));
555 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->defaultsource));
556 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->printquality));
557 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->color));
558 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->duplex));
559 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->yresolution));
560 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ttoption));
561 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->collate));
562 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, 32, sizeof(uint16_t), CH_UTF16));
563 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logpixels));
564 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bitsperpel));
565 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelswidth));
566 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelsheight));
567 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayflags));
568 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayfrequency));
569 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->icmmethod));
570 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->icmintent));
571 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->mediatype));
572 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dithertype));
573 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
574 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
575 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningwidth));
576 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningheight));
578 uint32_t _flags_save_DATA_BLOB = ndr->flags;
579 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
581 struct ndr_pull *_ndr_driverextra_data;
582 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->__driverextra_length));
583 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, &r->driverextra_data));
584 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_driverextra_data, 0, r->__driverextra_length));
586 ndr->flags = _flags_save_DATA_BLOB;
589 if (ndr_flags & NDR_BUFFERS) {
591 return NDR_ERR_SUCCESS;
594 _PUBLIC_ void ndr_print_spoolss_DeviceMode(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceMode *r)
596 ndr_print_struct(ndr, name, "spoolss_DeviceMode");
597 ndr->depth++;
598 ndr_print_string(ndr, "devicename", r->devicename);
599 ndr_print_uint16(ndr, "specversion", r->specversion);
600 ndr_print_uint16(ndr, "driverversion", r->driverversion);
601 ndr_print_uint16(ndr, "size", r->size);
602 ndr_print_uint16(ndr, "__driverextra_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->driverextra_data.length:r->__driverextra_length);
603 ndr_print_spoolss_DeviceModeFields(ndr, "fields", r->fields);
604 ndr_print_uint16(ndr, "orientation", r->orientation);
605 ndr_print_uint16(ndr, "papersize", r->papersize);
606 ndr_print_uint16(ndr, "paperlength", r->paperlength);
607 ndr_print_uint16(ndr, "paperwidth", r->paperwidth);
608 ndr_print_uint16(ndr, "scale", r->scale);
609 ndr_print_uint16(ndr, "copies", r->copies);
610 ndr_print_uint16(ndr, "defaultsource", r->defaultsource);
611 ndr_print_uint16(ndr, "printquality", r->printquality);
612 ndr_print_uint16(ndr, "color", r->color);
613 ndr_print_uint16(ndr, "duplex", r->duplex);
614 ndr_print_uint16(ndr, "yresolution", r->yresolution);
615 ndr_print_uint16(ndr, "ttoption", r->ttoption);
616 ndr_print_uint16(ndr, "collate", r->collate);
617 ndr_print_string(ndr, "formname", r->formname);
618 ndr_print_uint16(ndr, "logpixels", r->logpixels);
619 ndr_print_uint32(ndr, "bitsperpel", r->bitsperpel);
620 ndr_print_uint32(ndr, "pelswidth", r->pelswidth);
621 ndr_print_uint32(ndr, "pelsheight", r->pelsheight);
622 ndr_print_uint32(ndr, "displayflags", r->displayflags);
623 ndr_print_uint32(ndr, "displayfrequency", r->displayfrequency);
624 ndr_print_uint32(ndr, "icmmethod", r->icmmethod);
625 ndr_print_uint32(ndr, "icmintent", r->icmintent);
626 ndr_print_uint32(ndr, "mediatype", r->mediatype);
627 ndr_print_uint32(ndr, "dithertype", r->dithertype);
628 ndr_print_uint32(ndr, "reserved1", r->reserved1);
629 ndr_print_uint32(ndr, "reserved2", r->reserved2);
630 ndr_print_uint32(ndr, "panningwidth", r->panningwidth);
631 ndr_print_uint32(ndr, "panningheight", r->panningheight);
632 ndr_print_DATA_BLOB(ndr, "driverextra_data", r->driverextra_data);
633 ndr->depth--;
636 _PUBLIC_ size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode *r, struct smb_iconv_convenience *ic, int flags)
638 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DeviceMode, ic);
641 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
643 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
644 return NDR_ERR_SUCCESS;
647 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
649 uint32_t v;
650 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
651 *r = v;
652 return NDR_ERR_SUCCESS;
655 _PUBLIC_ void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print *ndr, const char *name, uint32_t r)
657 ndr_print_uint32(ndr, name, r);
658 ndr->depth++;
659 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT, r);
660 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL, r);
661 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS, r);
662 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE, r);
663 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME, r);
664 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE, r);
665 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED, r);
666 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK, r);
667 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND, r);
668 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER, r);
669 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1, r);
670 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2, r);
671 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3, r);
672 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4, r);
673 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5, r);
674 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6, r);
675 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7, r);
676 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8, r);
677 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE, r);
678 ndr->depth--;
681 static enum ndr_err_code ndr_push_spoolss_PrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo1 *r)
683 if (ndr_flags & NDR_SCALARS) {
684 NDR_CHECK(ndr_push_align(ndr, 4));
685 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->flags));
687 uint32_t _flags_save_string = ndr->flags;
688 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
689 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name));
690 ndr->flags = _flags_save_string;
693 uint32_t _flags_save_string = ndr->flags;
694 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
695 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
696 ndr->flags = _flags_save_string;
699 uint32_t _flags_save_string = ndr->flags;
700 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
701 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
702 ndr->flags = _flags_save_string;
705 if (ndr_flags & NDR_BUFFERS) {
707 uint32_t _flags_save_string = ndr->flags;
708 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
709 if (r->name) {
710 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->name));
711 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name));
713 ndr->flags = _flags_save_string;
716 uint32_t _flags_save_string = ndr->flags;
717 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
718 if (r->description) {
719 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
720 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
722 ndr->flags = _flags_save_string;
725 uint32_t _flags_save_string = ndr->flags;
726 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
727 if (r->comment) {
728 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->comment));
729 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
731 ndr->flags = _flags_save_string;
734 return NDR_ERR_SUCCESS;
737 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo1 *r)
739 uint32_t _ptr_name;
740 TALLOC_CTX *_mem_save_name_0;
741 uint32_t _ptr_description;
742 TALLOC_CTX *_mem_save_description_0;
743 uint32_t _ptr_comment;
744 TALLOC_CTX *_mem_save_comment_0;
745 if (ndr_flags & NDR_SCALARS) {
746 NDR_CHECK(ndr_pull_align(ndr, 4));
747 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->flags));
749 uint32_t _flags_save_string = ndr->flags;
750 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
751 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
752 if (_ptr_name) {
753 NDR_PULL_ALLOC(ndr, r->name);
754 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name, _ptr_name));
755 } else {
756 r->name = NULL;
758 ndr->flags = _flags_save_string;
761 uint32_t _flags_save_string = ndr->flags;
762 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
763 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
764 if (_ptr_description) {
765 NDR_PULL_ALLOC(ndr, r->description);
766 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
767 } else {
768 r->description = NULL;
770 ndr->flags = _flags_save_string;
773 uint32_t _flags_save_string = ndr->flags;
774 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
775 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
776 if (_ptr_comment) {
777 NDR_PULL_ALLOC(ndr, r->comment);
778 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
779 } else {
780 r->comment = NULL;
782 ndr->flags = _flags_save_string;
785 if (ndr_flags & NDR_BUFFERS) {
787 uint32_t _flags_save_string = ndr->flags;
788 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
789 if (r->name) {
790 uint32_t _relative_save_offset;
791 _relative_save_offset = ndr->offset;
792 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name));
793 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
794 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
795 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name));
796 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
797 ndr->offset = _relative_save_offset;
799 ndr->flags = _flags_save_string;
802 uint32_t _flags_save_string = ndr->flags;
803 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
804 if (r->description) {
805 uint32_t _relative_save_offset;
806 _relative_save_offset = ndr->offset;
807 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
808 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
809 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
810 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
811 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
812 ndr->offset = _relative_save_offset;
814 ndr->flags = _flags_save_string;
817 uint32_t _flags_save_string = ndr->flags;
818 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
819 if (r->comment) {
820 uint32_t _relative_save_offset;
821 _relative_save_offset = ndr->offset;
822 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
823 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
824 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
825 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
826 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
827 ndr->offset = _relative_save_offset;
829 ndr->flags = _flags_save_string;
832 return NDR_ERR_SUCCESS;
835 _PUBLIC_ void ndr_print_spoolss_PrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo1 *r)
837 ndr_print_struct(ndr, name, "spoolss_PrinterInfo1");
838 ndr->depth++;
839 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->flags);
840 ndr_print_ptr(ndr, "name", r->name);
841 ndr->depth++;
842 if (r->name) {
843 ndr_print_string(ndr, "name", r->name);
845 ndr->depth--;
846 ndr_print_ptr(ndr, "description", r->description);
847 ndr->depth++;
848 if (r->description) {
849 ndr_print_string(ndr, "description", r->description);
851 ndr->depth--;
852 ndr_print_ptr(ndr, "comment", r->comment);
853 ndr->depth++;
854 if (r->comment) {
855 ndr_print_string(ndr, "comment", r->comment);
857 ndr->depth--;
858 ndr->depth--;
861 static enum ndr_err_code ndr_push_spoolss_PrinterAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
863 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
864 return NDR_ERR_SUCCESS;
867 static enum ndr_err_code ndr_pull_spoolss_PrinterAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
869 uint32_t v;
870 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
871 *r = v;
872 return NDR_ERR_SUCCESS;
875 _PUBLIC_ void ndr_print_spoolss_PrinterAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
877 ndr_print_uint32(ndr, name, r);
878 ndr->depth++;
879 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED, r);
880 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT, r);
881 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT, r);
882 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED, r);
883 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK, r);
884 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN, r);
885 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL, r);
886 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ, r);
887 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS, r);
888 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST, r);
889 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE, r);
890 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI, r);
891 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY, r);
892 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED, r);
893 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX, r);
894 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS, r);
895 ndr->depth--;
898 static enum ndr_err_code ndr_push_spoolss_PrinterStatus(struct ndr_push *ndr, int ndr_flags, uint32_t r)
900 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
901 return NDR_ERR_SUCCESS;
904 static enum ndr_err_code ndr_pull_spoolss_PrinterStatus(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
906 uint32_t v;
907 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
908 *r = v;
909 return NDR_ERR_SUCCESS;
912 _PUBLIC_ void ndr_print_spoolss_PrinterStatus(struct ndr_print *ndr, const char *name, uint32_t r)
914 ndr_print_uint32(ndr, name, r);
915 ndr->depth++;
916 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAUSED", PRINTER_STATUS_PAUSED, r);
917 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_ERROR", PRINTER_STATUS_ERROR, r);
918 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PENDING_DELETION", PRINTER_STATUS_PENDING_DELETION, r);
919 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_JAM", PRINTER_STATUS_PAPER_JAM, r);
920 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_OUT", PRINTER_STATUS_PAPER_OUT, r);
921 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_MANUAL_FEED", PRINTER_STATUS_MANUAL_FEED, r);
922 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_PROBLEM", PRINTER_STATUS_PAPER_PROBLEM, r);
923 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OFFLINE", PRINTER_STATUS_OFFLINE, r);
924 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_IO_ACTIVE", PRINTER_STATUS_IO_ACTIVE, r);
925 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_BUSY", PRINTER_STATUS_BUSY, r);
926 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PRINTING", PRINTER_STATUS_PRINTING, r);
927 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUTPUT_BIN_FULL", PRINTER_STATUS_OUTPUT_BIN_FULL, r);
928 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NOT_AVAILABLE", PRINTER_STATUS_NOT_AVAILABLE, r);
929 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WAITING", PRINTER_STATUS_WAITING, r);
930 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PROCESSING", PRINTER_STATUS_PROCESSING, r);
931 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_INITIALIZING", PRINTER_STATUS_INITIALIZING, r);
932 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WARMING_UP", PRINTER_STATUS_WARMING_UP, r);
933 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_TONER_LOW", PRINTER_STATUS_TONER_LOW, r);
934 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NO_TONER", PRINTER_STATUS_NO_TONER, r);
935 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAGE_PUNT", PRINTER_STATUS_PAGE_PUNT, r);
936 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_USER_INTERVENTION", PRINTER_STATUS_USER_INTERVENTION, r);
937 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUT_OF_MEMORY", PRINTER_STATUS_OUT_OF_MEMORY, r);
938 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_DOOR_OPEN", PRINTER_STATUS_DOOR_OPEN, r);
939 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_SERVER_UNKNOWN", PRINTER_STATUS_SERVER_UNKNOWN, r);
940 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_POWER_SAVE", PRINTER_STATUS_POWER_SAVE, r);
941 ndr->depth--;
944 static enum ndr_err_code ndr_push_spoolss_PrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo2 *r)
946 if (ndr_flags & NDR_SCALARS) {
947 NDR_CHECK(ndr_push_align(ndr, 4));
949 uint32_t _flags_save_string = ndr->flags;
950 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
951 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
952 ndr->flags = _flags_save_string;
955 uint32_t _flags_save_string = ndr->flags;
956 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
957 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
958 ndr->flags = _flags_save_string;
961 uint32_t _flags_save_string = ndr->flags;
962 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
963 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sharename));
964 ndr->flags = _flags_save_string;
967 uint32_t _flags_save_string = ndr->flags;
968 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
969 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
970 ndr->flags = _flags_save_string;
973 uint32_t _flags_save_string = ndr->flags;
974 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
975 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->drivername));
976 ndr->flags = _flags_save_string;
979 uint32_t _flags_save_string = ndr->flags;
980 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
981 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
982 ndr->flags = _flags_save_string;
985 uint32_t _flags_save_string = ndr->flags;
986 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
987 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->location));
988 ndr->flags = _flags_save_string;
990 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
992 uint32_t _flags_save_string = ndr->flags;
993 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
994 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sepfile));
995 ndr->flags = _flags_save_string;
998 uint32_t _flags_save_string = ndr->flags;
999 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1000 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printprocessor));
1001 ndr->flags = _flags_save_string;
1004 uint32_t _flags_save_string = ndr->flags;
1005 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1006 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->datatype));
1007 ndr->flags = _flags_save_string;
1010 uint32_t _flags_save_string = ndr->flags;
1011 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1012 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
1013 ndr->flags = _flags_save_string;
1015 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
1016 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1017 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
1018 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
1019 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
1020 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
1021 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
1022 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
1023 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
1025 if (ndr_flags & NDR_BUFFERS) {
1027 uint32_t _flags_save_string = ndr->flags;
1028 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1029 if (r->servername) {
1030 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
1031 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
1033 ndr->flags = _flags_save_string;
1036 uint32_t _flags_save_string = ndr->flags;
1037 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1038 if (r->printername) {
1039 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1040 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1042 ndr->flags = _flags_save_string;
1045 uint32_t _flags_save_string = ndr->flags;
1046 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1047 if (r->sharename) {
1048 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->sharename));
1049 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sharename));
1051 ndr->flags = _flags_save_string;
1054 uint32_t _flags_save_string = ndr->flags;
1055 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1056 if (r->portname) {
1057 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->portname));
1058 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
1060 ndr->flags = _flags_save_string;
1063 uint32_t _flags_save_string = ndr->flags;
1064 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1065 if (r->drivername) {
1066 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->drivername));
1067 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->drivername));
1069 ndr->flags = _flags_save_string;
1072 uint32_t _flags_save_string = ndr->flags;
1073 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1074 if (r->comment) {
1075 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->comment));
1076 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
1078 ndr->flags = _flags_save_string;
1081 uint32_t _flags_save_string = ndr->flags;
1082 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1083 if (r->location) {
1084 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->location));
1085 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->location));
1087 ndr->flags = _flags_save_string;
1089 if (r->devmode) {
1090 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
1092 struct ndr_push *_ndr_devmode;
1093 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1094 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1095 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
1099 uint32_t _flags_save_string = ndr->flags;
1100 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1101 if (r->sepfile) {
1102 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->sepfile));
1103 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sepfile));
1105 ndr->flags = _flags_save_string;
1108 uint32_t _flags_save_string = ndr->flags;
1109 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1110 if (r->printprocessor) {
1111 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printprocessor));
1112 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printprocessor));
1114 ndr->flags = _flags_save_string;
1117 uint32_t _flags_save_string = ndr->flags;
1118 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1119 if (r->datatype) {
1120 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->datatype));
1121 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->datatype));
1123 ndr->flags = _flags_save_string;
1126 uint32_t _flags_save_string = ndr->flags;
1127 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1128 if (r->parameters) {
1129 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
1130 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
1132 ndr->flags = _flags_save_string;
1134 if (r->secdesc) {
1135 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
1137 struct ndr_push *_ndr_secdesc;
1138 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1139 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1140 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1144 return NDR_ERR_SUCCESS;
1147 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo2 *r)
1149 uint32_t _ptr_servername;
1150 TALLOC_CTX *_mem_save_servername_0;
1151 uint32_t _ptr_printername;
1152 TALLOC_CTX *_mem_save_printername_0;
1153 uint32_t _ptr_sharename;
1154 TALLOC_CTX *_mem_save_sharename_0;
1155 uint32_t _ptr_portname;
1156 TALLOC_CTX *_mem_save_portname_0;
1157 uint32_t _ptr_drivername;
1158 TALLOC_CTX *_mem_save_drivername_0;
1159 uint32_t _ptr_comment;
1160 TALLOC_CTX *_mem_save_comment_0;
1161 uint32_t _ptr_location;
1162 TALLOC_CTX *_mem_save_location_0;
1163 uint32_t _ptr_devmode;
1164 TALLOC_CTX *_mem_save_devmode_0;
1165 uint32_t _ptr_sepfile;
1166 TALLOC_CTX *_mem_save_sepfile_0;
1167 uint32_t _ptr_printprocessor;
1168 TALLOC_CTX *_mem_save_printprocessor_0;
1169 uint32_t _ptr_datatype;
1170 TALLOC_CTX *_mem_save_datatype_0;
1171 uint32_t _ptr_parameters;
1172 TALLOC_CTX *_mem_save_parameters_0;
1173 uint32_t _ptr_secdesc;
1174 TALLOC_CTX *_mem_save_secdesc_0;
1175 if (ndr_flags & NDR_SCALARS) {
1176 NDR_CHECK(ndr_pull_align(ndr, 4));
1178 uint32_t _flags_save_string = ndr->flags;
1179 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1180 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1181 if (_ptr_servername) {
1182 NDR_PULL_ALLOC(ndr, r->servername);
1183 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1184 } else {
1185 r->servername = NULL;
1187 ndr->flags = _flags_save_string;
1190 uint32_t _flags_save_string = ndr->flags;
1191 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1192 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1193 if (_ptr_printername) {
1194 NDR_PULL_ALLOC(ndr, r->printername);
1195 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1196 } else {
1197 r->printername = NULL;
1199 ndr->flags = _flags_save_string;
1202 uint32_t _flags_save_string = ndr->flags;
1203 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1204 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
1205 if (_ptr_sharename) {
1206 NDR_PULL_ALLOC(ndr, r->sharename);
1207 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sharename, _ptr_sharename));
1208 } else {
1209 r->sharename = NULL;
1211 ndr->flags = _flags_save_string;
1214 uint32_t _flags_save_string = ndr->flags;
1215 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1216 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1217 if (_ptr_portname) {
1218 NDR_PULL_ALLOC(ndr, r->portname);
1219 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1220 } else {
1221 r->portname = NULL;
1223 ndr->flags = _flags_save_string;
1226 uint32_t _flags_save_string = ndr->flags;
1227 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1228 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
1229 if (_ptr_drivername) {
1230 NDR_PULL_ALLOC(ndr, r->drivername);
1231 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->drivername, _ptr_drivername));
1232 } else {
1233 r->drivername = NULL;
1235 ndr->flags = _flags_save_string;
1238 uint32_t _flags_save_string = ndr->flags;
1239 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1240 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1241 if (_ptr_comment) {
1242 NDR_PULL_ALLOC(ndr, r->comment);
1243 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1244 } else {
1245 r->comment = NULL;
1247 ndr->flags = _flags_save_string;
1250 uint32_t _flags_save_string = ndr->flags;
1251 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1252 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
1253 if (_ptr_location) {
1254 NDR_PULL_ALLOC(ndr, r->location);
1255 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->location, _ptr_location));
1256 } else {
1257 r->location = NULL;
1259 ndr->flags = _flags_save_string;
1261 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
1262 if (_ptr_devmode) {
1263 NDR_PULL_ALLOC(ndr, r->devmode);
1264 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
1265 } else {
1266 r->devmode = NULL;
1269 uint32_t _flags_save_string = ndr->flags;
1270 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1271 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
1272 if (_ptr_sepfile) {
1273 NDR_PULL_ALLOC(ndr, r->sepfile);
1274 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sepfile, _ptr_sepfile));
1275 } else {
1276 r->sepfile = NULL;
1278 ndr->flags = _flags_save_string;
1281 uint32_t _flags_save_string = ndr->flags;
1282 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1283 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
1284 if (_ptr_printprocessor) {
1285 NDR_PULL_ALLOC(ndr, r->printprocessor);
1286 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printprocessor, _ptr_printprocessor));
1287 } else {
1288 r->printprocessor = NULL;
1290 ndr->flags = _flags_save_string;
1293 uint32_t _flags_save_string = ndr->flags;
1294 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1295 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
1296 if (_ptr_datatype) {
1297 NDR_PULL_ALLOC(ndr, r->datatype);
1298 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->datatype, _ptr_datatype));
1299 } else {
1300 r->datatype = NULL;
1302 ndr->flags = _flags_save_string;
1305 uint32_t _flags_save_string = ndr->flags;
1306 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1307 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
1308 if (_ptr_parameters) {
1309 NDR_PULL_ALLOC(ndr, r->parameters);
1310 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
1311 } else {
1312 r->parameters = NULL;
1314 ndr->flags = _flags_save_string;
1316 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1317 if (_ptr_secdesc) {
1318 NDR_PULL_ALLOC(ndr, r->secdesc);
1319 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1320 } else {
1321 r->secdesc = NULL;
1323 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1324 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
1325 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
1326 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
1327 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
1328 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
1329 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
1330 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
1332 if (ndr_flags & NDR_BUFFERS) {
1334 uint32_t _flags_save_string = ndr->flags;
1335 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1336 if (r->servername) {
1337 uint32_t _relative_save_offset;
1338 _relative_save_offset = ndr->offset;
1339 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1340 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1341 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1342 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1343 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
1344 ndr->offset = _relative_save_offset;
1346 ndr->flags = _flags_save_string;
1349 uint32_t _flags_save_string = ndr->flags;
1350 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1351 if (r->printername) {
1352 uint32_t _relative_save_offset;
1353 _relative_save_offset = ndr->offset;
1354 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1355 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1356 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1357 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1358 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1359 ndr->offset = _relative_save_offset;
1361 ndr->flags = _flags_save_string;
1364 uint32_t _flags_save_string = ndr->flags;
1365 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1366 if (r->sharename) {
1367 uint32_t _relative_save_offset;
1368 _relative_save_offset = ndr->offset;
1369 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sharename));
1370 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
1371 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
1372 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sharename));
1373 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
1374 ndr->offset = _relative_save_offset;
1376 ndr->flags = _flags_save_string;
1379 uint32_t _flags_save_string = ndr->flags;
1380 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1381 if (r->portname) {
1382 uint32_t _relative_save_offset;
1383 _relative_save_offset = ndr->offset;
1384 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
1385 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1386 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
1387 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
1388 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
1389 ndr->offset = _relative_save_offset;
1391 ndr->flags = _flags_save_string;
1394 uint32_t _flags_save_string = ndr->flags;
1395 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1396 if (r->drivername) {
1397 uint32_t _relative_save_offset;
1398 _relative_save_offset = ndr->offset;
1399 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->drivername));
1400 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1401 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
1402 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->drivername));
1403 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
1404 ndr->offset = _relative_save_offset;
1406 ndr->flags = _flags_save_string;
1409 uint32_t _flags_save_string = ndr->flags;
1410 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1411 if (r->comment) {
1412 uint32_t _relative_save_offset;
1413 _relative_save_offset = ndr->offset;
1414 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
1415 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
1416 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
1417 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
1418 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
1419 ndr->offset = _relative_save_offset;
1421 ndr->flags = _flags_save_string;
1424 uint32_t _flags_save_string = ndr->flags;
1425 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1426 if (r->location) {
1427 uint32_t _relative_save_offset;
1428 _relative_save_offset = ndr->offset;
1429 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->location));
1430 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
1431 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
1432 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->location));
1433 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
1434 ndr->offset = _relative_save_offset;
1436 ndr->flags = _flags_save_string;
1438 if (r->devmode) {
1439 uint32_t _relative_save_offset;
1440 _relative_save_offset = ndr->offset;
1441 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
1442 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
1443 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
1445 struct ndr_pull *_ndr_devmode;
1446 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1447 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1448 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
1450 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
1451 ndr->offset = _relative_save_offset;
1454 uint32_t _flags_save_string = ndr->flags;
1455 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1456 if (r->sepfile) {
1457 uint32_t _relative_save_offset;
1458 _relative_save_offset = ndr->offset;
1459 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sepfile));
1460 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
1461 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
1462 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sepfile));
1463 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
1464 ndr->offset = _relative_save_offset;
1466 ndr->flags = _flags_save_string;
1469 uint32_t _flags_save_string = ndr->flags;
1470 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1471 if (r->printprocessor) {
1472 uint32_t _relative_save_offset;
1473 _relative_save_offset = ndr->offset;
1474 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printprocessor));
1475 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
1476 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
1477 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printprocessor));
1478 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
1479 ndr->offset = _relative_save_offset;
1481 ndr->flags = _flags_save_string;
1484 uint32_t _flags_save_string = ndr->flags;
1485 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1486 if (r->datatype) {
1487 uint32_t _relative_save_offset;
1488 _relative_save_offset = ndr->offset;
1489 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->datatype));
1490 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
1491 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
1492 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->datatype));
1493 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
1494 ndr->offset = _relative_save_offset;
1496 ndr->flags = _flags_save_string;
1499 uint32_t _flags_save_string = ndr->flags;
1500 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1501 if (r->parameters) {
1502 uint32_t _relative_save_offset;
1503 _relative_save_offset = ndr->offset;
1504 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
1505 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
1506 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
1507 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
1508 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
1509 ndr->offset = _relative_save_offset;
1511 ndr->flags = _flags_save_string;
1513 if (r->secdesc) {
1514 uint32_t _relative_save_offset;
1515 _relative_save_offset = ndr->offset;
1516 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
1517 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
1518 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
1520 struct ndr_pull *_ndr_secdesc;
1521 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1522 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1523 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1525 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
1526 ndr->offset = _relative_save_offset;
1529 return NDR_ERR_SUCCESS;
1532 _PUBLIC_ void ndr_print_spoolss_PrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo2 *r)
1534 ndr_print_struct(ndr, name, "spoolss_PrinterInfo2");
1535 ndr->depth++;
1536 ndr_print_ptr(ndr, "servername", r->servername);
1537 ndr->depth++;
1538 if (r->servername) {
1539 ndr_print_string(ndr, "servername", r->servername);
1541 ndr->depth--;
1542 ndr_print_ptr(ndr, "printername", r->printername);
1543 ndr->depth++;
1544 if (r->printername) {
1545 ndr_print_string(ndr, "printername", r->printername);
1547 ndr->depth--;
1548 ndr_print_ptr(ndr, "sharename", r->sharename);
1549 ndr->depth++;
1550 if (r->sharename) {
1551 ndr_print_string(ndr, "sharename", r->sharename);
1553 ndr->depth--;
1554 ndr_print_ptr(ndr, "portname", r->portname);
1555 ndr->depth++;
1556 if (r->portname) {
1557 ndr_print_string(ndr, "portname", r->portname);
1559 ndr->depth--;
1560 ndr_print_ptr(ndr, "drivername", r->drivername);
1561 ndr->depth++;
1562 if (r->drivername) {
1563 ndr_print_string(ndr, "drivername", r->drivername);
1565 ndr->depth--;
1566 ndr_print_ptr(ndr, "comment", r->comment);
1567 ndr->depth++;
1568 if (r->comment) {
1569 ndr_print_string(ndr, "comment", r->comment);
1571 ndr->depth--;
1572 ndr_print_ptr(ndr, "location", r->location);
1573 ndr->depth++;
1574 if (r->location) {
1575 ndr_print_string(ndr, "location", r->location);
1577 ndr->depth--;
1578 ndr_print_ptr(ndr, "devmode", r->devmode);
1579 ndr->depth++;
1580 if (r->devmode) {
1581 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
1583 ndr->depth--;
1584 ndr_print_ptr(ndr, "sepfile", r->sepfile);
1585 ndr->depth++;
1586 if (r->sepfile) {
1587 ndr_print_string(ndr, "sepfile", r->sepfile);
1589 ndr->depth--;
1590 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
1591 ndr->depth++;
1592 if (r->printprocessor) {
1593 ndr_print_string(ndr, "printprocessor", r->printprocessor);
1595 ndr->depth--;
1596 ndr_print_ptr(ndr, "datatype", r->datatype);
1597 ndr->depth++;
1598 if (r->datatype) {
1599 ndr_print_string(ndr, "datatype", r->datatype);
1601 ndr->depth--;
1602 ndr_print_ptr(ndr, "parameters", r->parameters);
1603 ndr->depth++;
1604 if (r->parameters) {
1605 ndr_print_string(ndr, "parameters", r->parameters);
1607 ndr->depth--;
1608 ndr_print_ptr(ndr, "secdesc", r->secdesc);
1609 ndr->depth++;
1610 if (r->secdesc) {
1611 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
1613 ndr->depth--;
1614 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1615 ndr_print_uint32(ndr, "priority", r->priority);
1616 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
1617 ndr_print_uint32(ndr, "starttime", r->starttime);
1618 ndr_print_uint32(ndr, "untiltime", r->untiltime);
1619 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
1620 ndr_print_uint32(ndr, "cjobs", r->cjobs);
1621 ndr_print_uint32(ndr, "averageppm", r->averageppm);
1622 ndr->depth--;
1625 static enum ndr_err_code ndr_push_spoolss_PrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo3 *r)
1627 if (ndr_flags & NDR_SCALARS) {
1628 NDR_CHECK(ndr_push_align(ndr, 4));
1629 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
1631 if (ndr_flags & NDR_BUFFERS) {
1632 if (r->secdesc) {
1633 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
1635 struct ndr_push *_ndr_secdesc;
1636 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1637 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1638 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1642 return NDR_ERR_SUCCESS;
1645 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo3 *r)
1647 uint32_t _ptr_secdesc;
1648 TALLOC_CTX *_mem_save_secdesc_0;
1649 if (ndr_flags & NDR_SCALARS) {
1650 NDR_CHECK(ndr_pull_align(ndr, 4));
1651 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1652 if (_ptr_secdesc) {
1653 NDR_PULL_ALLOC(ndr, r->secdesc);
1654 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1655 } else {
1656 r->secdesc = NULL;
1659 if (ndr_flags & NDR_BUFFERS) {
1660 if (r->secdesc) {
1661 uint32_t _relative_save_offset;
1662 _relative_save_offset = ndr->offset;
1663 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
1664 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
1665 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
1667 struct ndr_pull *_ndr_secdesc;
1668 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1669 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1670 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1672 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
1673 ndr->offset = _relative_save_offset;
1676 return NDR_ERR_SUCCESS;
1679 _PUBLIC_ void ndr_print_spoolss_PrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo3 *r)
1681 ndr_print_struct(ndr, name, "spoolss_PrinterInfo3");
1682 ndr->depth++;
1683 ndr_print_ptr(ndr, "secdesc", r->secdesc);
1684 ndr->depth++;
1685 if (r->secdesc) {
1686 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
1688 ndr->depth--;
1689 ndr->depth--;
1692 static enum ndr_err_code ndr_push_spoolss_PrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo4 *r)
1694 if (ndr_flags & NDR_SCALARS) {
1695 NDR_CHECK(ndr_push_align(ndr, 4));
1697 uint32_t _flags_save_string = ndr->flags;
1698 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1699 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1700 ndr->flags = _flags_save_string;
1703 uint32_t _flags_save_string = ndr->flags;
1704 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1705 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
1706 ndr->flags = _flags_save_string;
1708 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1710 if (ndr_flags & NDR_BUFFERS) {
1712 uint32_t _flags_save_string = ndr->flags;
1713 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1714 if (r->printername) {
1715 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1716 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1718 ndr->flags = _flags_save_string;
1721 uint32_t _flags_save_string = ndr->flags;
1722 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1723 if (r->servername) {
1724 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
1725 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
1727 ndr->flags = _flags_save_string;
1730 return NDR_ERR_SUCCESS;
1733 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo4 *r)
1735 uint32_t _ptr_printername;
1736 TALLOC_CTX *_mem_save_printername_0;
1737 uint32_t _ptr_servername;
1738 TALLOC_CTX *_mem_save_servername_0;
1739 if (ndr_flags & NDR_SCALARS) {
1740 NDR_CHECK(ndr_pull_align(ndr, 4));
1742 uint32_t _flags_save_string = ndr->flags;
1743 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1744 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1745 if (_ptr_printername) {
1746 NDR_PULL_ALLOC(ndr, r->printername);
1747 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1748 } else {
1749 r->printername = NULL;
1751 ndr->flags = _flags_save_string;
1754 uint32_t _flags_save_string = ndr->flags;
1755 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1756 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1757 if (_ptr_servername) {
1758 NDR_PULL_ALLOC(ndr, r->servername);
1759 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1760 } else {
1761 r->servername = NULL;
1763 ndr->flags = _flags_save_string;
1765 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1767 if (ndr_flags & NDR_BUFFERS) {
1769 uint32_t _flags_save_string = ndr->flags;
1770 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1771 if (r->printername) {
1772 uint32_t _relative_save_offset;
1773 _relative_save_offset = ndr->offset;
1774 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1775 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1776 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1777 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1778 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1779 ndr->offset = _relative_save_offset;
1781 ndr->flags = _flags_save_string;
1784 uint32_t _flags_save_string = ndr->flags;
1785 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1786 if (r->servername) {
1787 uint32_t _relative_save_offset;
1788 _relative_save_offset = ndr->offset;
1789 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1790 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1791 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1792 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1793 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
1794 ndr->offset = _relative_save_offset;
1796 ndr->flags = _flags_save_string;
1799 return NDR_ERR_SUCCESS;
1802 _PUBLIC_ void ndr_print_spoolss_PrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo4 *r)
1804 ndr_print_struct(ndr, name, "spoolss_PrinterInfo4");
1805 ndr->depth++;
1806 ndr_print_ptr(ndr, "printername", r->printername);
1807 ndr->depth++;
1808 if (r->printername) {
1809 ndr_print_string(ndr, "printername", r->printername);
1811 ndr->depth--;
1812 ndr_print_ptr(ndr, "servername", r->servername);
1813 ndr->depth++;
1814 if (r->servername) {
1815 ndr_print_string(ndr, "servername", r->servername);
1817 ndr->depth--;
1818 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1819 ndr->depth--;
1822 static enum ndr_err_code ndr_push_spoolss_PrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo5 *r)
1824 if (ndr_flags & NDR_SCALARS) {
1825 NDR_CHECK(ndr_push_align(ndr, 4));
1827 uint32_t _flags_save_string = ndr->flags;
1828 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1829 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1830 ndr->flags = _flags_save_string;
1833 uint32_t _flags_save_string = ndr->flags;
1834 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1835 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
1836 ndr->flags = _flags_save_string;
1838 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1839 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
1840 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
1842 if (ndr_flags & NDR_BUFFERS) {
1844 uint32_t _flags_save_string = ndr->flags;
1845 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1846 if (r->printername) {
1847 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1848 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1850 ndr->flags = _flags_save_string;
1853 uint32_t _flags_save_string = ndr->flags;
1854 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1855 if (r->portname) {
1856 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->portname));
1857 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
1859 ndr->flags = _flags_save_string;
1862 return NDR_ERR_SUCCESS;
1865 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo5 *r)
1867 uint32_t _ptr_printername;
1868 TALLOC_CTX *_mem_save_printername_0;
1869 uint32_t _ptr_portname;
1870 TALLOC_CTX *_mem_save_portname_0;
1871 if (ndr_flags & NDR_SCALARS) {
1872 NDR_CHECK(ndr_pull_align(ndr, 4));
1874 uint32_t _flags_save_string = ndr->flags;
1875 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1876 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1877 if (_ptr_printername) {
1878 NDR_PULL_ALLOC(ndr, r->printername);
1879 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1880 } else {
1881 r->printername = NULL;
1883 ndr->flags = _flags_save_string;
1886 uint32_t _flags_save_string = ndr->flags;
1887 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1888 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1889 if (_ptr_portname) {
1890 NDR_PULL_ALLOC(ndr, r->portname);
1891 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1892 } else {
1893 r->portname = NULL;
1895 ndr->flags = _flags_save_string;
1897 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1898 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
1899 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
1901 if (ndr_flags & NDR_BUFFERS) {
1903 uint32_t _flags_save_string = ndr->flags;
1904 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1905 if (r->printername) {
1906 uint32_t _relative_save_offset;
1907 _relative_save_offset = ndr->offset;
1908 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1909 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1910 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1911 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1912 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1913 ndr->offset = _relative_save_offset;
1915 ndr->flags = _flags_save_string;
1918 uint32_t _flags_save_string = ndr->flags;
1919 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1920 if (r->portname) {
1921 uint32_t _relative_save_offset;
1922 _relative_save_offset = ndr->offset;
1923 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
1924 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1925 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
1926 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
1927 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
1928 ndr->offset = _relative_save_offset;
1930 ndr->flags = _flags_save_string;
1933 return NDR_ERR_SUCCESS;
1936 _PUBLIC_ void ndr_print_spoolss_PrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo5 *r)
1938 ndr_print_struct(ndr, name, "spoolss_PrinterInfo5");
1939 ndr->depth++;
1940 ndr_print_ptr(ndr, "printername", r->printername);
1941 ndr->depth++;
1942 if (r->printername) {
1943 ndr_print_string(ndr, "printername", r->printername);
1945 ndr->depth--;
1946 ndr_print_ptr(ndr, "portname", r->portname);
1947 ndr->depth++;
1948 if (r->portname) {
1949 ndr_print_string(ndr, "portname", r->portname);
1951 ndr->depth--;
1952 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1953 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
1954 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
1955 ndr->depth--;
1958 static enum ndr_err_code ndr_push_spoolss_PrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo6 *r)
1960 if (ndr_flags & NDR_SCALARS) {
1961 NDR_CHECK(ndr_push_align(ndr, 4));
1962 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
1964 if (ndr_flags & NDR_BUFFERS) {
1966 return NDR_ERR_SUCCESS;
1969 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo6 *r)
1971 if (ndr_flags & NDR_SCALARS) {
1972 NDR_CHECK(ndr_pull_align(ndr, 4));
1973 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
1975 if (ndr_flags & NDR_BUFFERS) {
1977 return NDR_ERR_SUCCESS;
1980 _PUBLIC_ void ndr_print_spoolss_PrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo6 *r)
1982 ndr_print_struct(ndr, name, "spoolss_PrinterInfo6");
1983 ndr->depth++;
1984 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
1985 ndr->depth--;
1988 static enum ndr_err_code ndr_push_spoolss_DsPrintAction(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1990 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1991 return NDR_ERR_SUCCESS;
1994 static enum ndr_err_code ndr_pull_spoolss_DsPrintAction(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1996 uint32_t v;
1997 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1998 *r = v;
1999 return NDR_ERR_SUCCESS;
2002 _PUBLIC_ void ndr_print_spoolss_DsPrintAction(struct ndr_print *ndr, const char *name, uint32_t r)
2004 ndr_print_uint32(ndr, name, r);
2005 ndr->depth++;
2006 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH, r);
2007 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE, r);
2008 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH, r);
2009 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH, r);
2010 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING, r);
2011 ndr->depth--;
2014 static enum ndr_err_code ndr_push_spoolss_PrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo7 *r)
2016 if (ndr_flags & NDR_SCALARS) {
2017 NDR_CHECK(ndr_push_align(ndr, 4));
2019 uint32_t _flags_save_string = ndr->flags;
2020 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2021 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->guid));
2022 ndr->flags = _flags_save_string;
2024 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
2026 if (ndr_flags & NDR_BUFFERS) {
2028 uint32_t _flags_save_string = ndr->flags;
2029 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2030 if (r->guid) {
2031 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->guid));
2032 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->guid));
2034 ndr->flags = _flags_save_string;
2037 return NDR_ERR_SUCCESS;
2040 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo7 *r)
2042 uint32_t _ptr_guid;
2043 TALLOC_CTX *_mem_save_guid_0;
2044 if (ndr_flags & NDR_SCALARS) {
2045 NDR_CHECK(ndr_pull_align(ndr, 4));
2047 uint32_t _flags_save_string = ndr->flags;
2048 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2049 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
2050 if (_ptr_guid) {
2051 NDR_PULL_ALLOC(ndr, r->guid);
2052 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->guid, _ptr_guid));
2053 } else {
2054 r->guid = NULL;
2056 ndr->flags = _flags_save_string;
2058 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
2060 if (ndr_flags & NDR_BUFFERS) {
2062 uint32_t _flags_save_string = ndr->flags;
2063 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2064 if (r->guid) {
2065 uint32_t _relative_save_offset;
2066 _relative_save_offset = ndr->offset;
2067 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->guid));
2068 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
2069 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
2070 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->guid));
2071 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
2072 ndr->offset = _relative_save_offset;
2074 ndr->flags = _flags_save_string;
2077 return NDR_ERR_SUCCESS;
2080 _PUBLIC_ void ndr_print_spoolss_PrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo7 *r)
2082 ndr_print_struct(ndr, name, "spoolss_PrinterInfo7");
2083 ndr->depth++;
2084 ndr_print_ptr(ndr, "guid", r->guid);
2085 ndr->depth++;
2086 if (r->guid) {
2087 ndr_print_string(ndr, "guid", r->guid);
2089 ndr->depth--;
2090 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
2091 ndr->depth--;
2094 static enum ndr_err_code ndr_push_spoolss_DeviceModeInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceModeInfo *r)
2096 if (ndr_flags & NDR_SCALARS) {
2097 NDR_CHECK(ndr_push_align(ndr, 4));
2098 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
2100 if (ndr_flags & NDR_BUFFERS) {
2101 if (r->devmode) {
2102 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
2104 struct ndr_push *_ndr_devmode;
2105 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2106 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2107 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
2111 return NDR_ERR_SUCCESS;
2114 static enum ndr_err_code ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceModeInfo *r)
2116 uint32_t _ptr_devmode;
2117 TALLOC_CTX *_mem_save_devmode_0;
2118 if (ndr_flags & NDR_SCALARS) {
2119 NDR_CHECK(ndr_pull_align(ndr, 4));
2120 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2121 if (_ptr_devmode) {
2122 NDR_PULL_ALLOC(ndr, r->devmode);
2123 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
2124 } else {
2125 r->devmode = NULL;
2128 if (ndr_flags & NDR_BUFFERS) {
2129 if (r->devmode) {
2130 uint32_t _relative_save_offset;
2131 _relative_save_offset = ndr->offset;
2132 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
2133 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2134 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2136 struct ndr_pull *_ndr_devmode;
2137 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2138 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2139 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
2141 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2142 ndr->offset = _relative_save_offset;
2145 return NDR_ERR_SUCCESS;
2148 _PUBLIC_ void ndr_print_spoolss_DeviceModeInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceModeInfo *r)
2150 ndr_print_struct(ndr, name, "spoolss_DeviceModeInfo");
2151 ndr->depth++;
2152 ndr_print_ptr(ndr, "devmode", r->devmode);
2153 ndr->depth++;
2154 if (r->devmode) {
2155 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2157 ndr->depth--;
2158 ndr->depth--;
2161 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterInfo *r)
2163 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
2164 if (ndr_flags & NDR_SCALARS) {
2165 int level = ndr_push_get_switch_value(ndr, r);
2166 switch (level) {
2167 case 0: {
2168 NDR_CHECK(ndr_push_align(ndr, 4));
2169 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2170 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2171 break; }
2173 case 1: {
2174 NDR_CHECK(ndr_push_align(ndr, 4));
2175 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2176 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2177 break; }
2179 case 2: {
2180 NDR_CHECK(ndr_push_align(ndr, 4));
2181 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2182 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2183 break; }
2185 case 3: {
2186 NDR_CHECK(ndr_push_align(ndr, 4));
2187 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2188 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2189 break; }
2191 case 4: {
2192 NDR_CHECK(ndr_push_align(ndr, 4));
2193 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2194 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2195 break; }
2197 case 5: {
2198 NDR_CHECK(ndr_push_align(ndr, 4));
2199 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2200 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2201 break; }
2203 case 6: {
2204 NDR_CHECK(ndr_push_align(ndr, 4));
2205 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2206 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2207 break; }
2209 case 7: {
2210 NDR_CHECK(ndr_push_align(ndr, 4));
2211 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2212 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2213 break; }
2215 case 8: {
2216 NDR_CHECK(ndr_push_align(ndr, 4));
2217 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2218 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2219 break; }
2221 case 9: {
2222 NDR_CHECK(ndr_push_align(ndr, 4));
2223 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2224 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2225 break; }
2227 default: {
2228 break; }
2232 if (ndr_flags & NDR_BUFFERS) {
2233 int level = ndr_push_get_switch_value(ndr, r);
2234 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
2235 switch (level) {
2236 case 0:
2237 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2238 break;
2240 case 1:
2241 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2242 break;
2244 case 2:
2245 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2246 break;
2248 case 3:
2249 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2250 break;
2252 case 4:
2253 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2254 break;
2256 case 5:
2257 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2258 break;
2260 case 6:
2261 break;
2263 case 7:
2264 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2265 break;
2267 case 8:
2268 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2269 break;
2271 case 9:
2272 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2273 break;
2275 default:
2276 break;
2280 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
2281 return NDR_ERR_SUCCESS;
2284 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterInfo *r)
2286 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
2287 int level;
2288 level = ndr_pull_get_switch_value(ndr, r);
2289 if (ndr_flags & NDR_SCALARS) {
2290 switch (level) {
2291 case 0: {
2292 NDR_CHECK(ndr_pull_align(ndr, 4));
2293 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2294 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2295 break; }
2297 case 1: {
2298 NDR_CHECK(ndr_pull_align(ndr, 4));
2299 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2300 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2301 break; }
2303 case 2: {
2304 NDR_CHECK(ndr_pull_align(ndr, 4));
2305 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2306 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2307 break; }
2309 case 3: {
2310 NDR_CHECK(ndr_pull_align(ndr, 4));
2311 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2312 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2313 break; }
2315 case 4: {
2316 NDR_CHECK(ndr_pull_align(ndr, 4));
2317 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2318 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2319 break; }
2321 case 5: {
2322 NDR_CHECK(ndr_pull_align(ndr, 4));
2323 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2324 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2325 break; }
2327 case 6: {
2328 NDR_CHECK(ndr_pull_align(ndr, 4));
2329 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2330 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2331 break; }
2333 case 7: {
2334 NDR_CHECK(ndr_pull_align(ndr, 4));
2335 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2336 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2337 break; }
2339 case 8: {
2340 NDR_CHECK(ndr_pull_align(ndr, 4));
2341 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2342 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2343 break; }
2345 case 9: {
2346 NDR_CHECK(ndr_pull_align(ndr, 4));
2347 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2348 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2349 break; }
2351 default: {
2352 break; }
2356 if (ndr_flags & NDR_BUFFERS) {
2357 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
2358 switch (level) {
2359 case 0:
2360 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2361 break;
2363 case 1:
2364 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2365 break;
2367 case 2:
2368 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2369 break;
2371 case 3:
2372 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2373 break;
2375 case 4:
2376 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2377 break;
2379 case 5:
2380 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2381 break;
2383 case 6:
2384 break;
2386 case 7:
2387 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2388 break;
2390 case 8:
2391 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2392 break;
2394 case 9:
2395 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2396 break;
2398 default:
2399 break;
2403 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
2404 return NDR_ERR_SUCCESS;
2407 _PUBLIC_ void ndr_print_spoolss_PrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrinterInfo *r)
2409 int level;
2410 level = ndr_print_get_switch_value(ndr, r);
2411 ndr_print_union(ndr, name, level, "spoolss_PrinterInfo");
2412 switch (level) {
2413 case 0:
2414 ndr_print_spoolss_PrinterInfo0(ndr, "info0", &r->info0);
2415 break;
2417 case 1:
2418 ndr_print_spoolss_PrinterInfo1(ndr, "info1", &r->info1);
2419 break;
2421 case 2:
2422 ndr_print_spoolss_PrinterInfo2(ndr, "info2", &r->info2);
2423 break;
2425 case 3:
2426 ndr_print_spoolss_PrinterInfo3(ndr, "info3", &r->info3);
2427 break;
2429 case 4:
2430 ndr_print_spoolss_PrinterInfo4(ndr, "info4", &r->info4);
2431 break;
2433 case 5:
2434 ndr_print_spoolss_PrinterInfo5(ndr, "info5", &r->info5);
2435 break;
2437 case 6:
2438 ndr_print_spoolss_PrinterInfo6(ndr, "info6", &r->info6);
2439 break;
2441 case 7:
2442 ndr_print_spoolss_PrinterInfo7(ndr, "info7", &r->info7);
2443 break;
2445 case 8:
2446 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", &r->info8);
2447 break;
2449 case 9:
2450 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", &r->info9);
2451 break;
2453 default:
2454 break;
2459 static enum ndr_err_code ndr_push_spoolss_DevmodeContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DevmodeContainer *r)
2461 if (ndr_flags & NDR_SCALARS) {
2462 NDR_CHECK(ndr_push_align(ndr, 4));
2463 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2464 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
2466 if (ndr_flags & NDR_BUFFERS) {
2467 if (r->devmode) {
2469 struct ndr_push *_ndr_devmode;
2470 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2471 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2472 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2476 return NDR_ERR_SUCCESS;
2479 static enum ndr_err_code ndr_pull_spoolss_DevmodeContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DevmodeContainer *r)
2481 uint32_t _ptr_devmode;
2482 TALLOC_CTX *_mem_save_devmode_0;
2483 if (ndr_flags & NDR_SCALARS) {
2484 NDR_CHECK(ndr_pull_align(ndr, 4));
2485 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
2486 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2487 if (_ptr_devmode) {
2488 NDR_PULL_ALLOC(ndr, r->devmode);
2489 } else {
2490 r->devmode = NULL;
2493 if (ndr_flags & NDR_BUFFERS) {
2494 if (r->devmode) {
2495 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2496 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2498 struct ndr_pull *_ndr_devmode;
2499 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 4, r->_ndr_size));
2500 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2501 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 4, r->_ndr_size));
2503 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2506 return NDR_ERR_SUCCESS;
2509 _PUBLIC_ void ndr_print_spoolss_DevmodeContainer(struct ndr_print *ndr, const char *name, const struct spoolss_DevmodeContainer *r)
2511 ndr_print_struct(ndr, name, "spoolss_DevmodeContainer");
2512 ndr->depth++;
2513 ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?_ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags):r->_ndr_size);
2514 ndr_print_ptr(ndr, "devmode", r->devmode);
2515 ndr->depth++;
2516 if (r->devmode) {
2517 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2519 ndr->depth--;
2520 ndr->depth--;
2523 static enum ndr_err_code ndr_push_spoolss_JobStatus(struct ndr_push *ndr, int ndr_flags, uint32_t r)
2525 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
2526 return NDR_ERR_SUCCESS;
2529 static enum ndr_err_code ndr_pull_spoolss_JobStatus(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
2531 uint32_t v;
2532 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
2533 *r = v;
2534 return NDR_ERR_SUCCESS;
2537 _PUBLIC_ void ndr_print_spoolss_JobStatus(struct ndr_print *ndr, const char *name, uint32_t r)
2539 ndr_print_uint32(ndr, name, r);
2540 ndr->depth++;
2541 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PAUSED", JOB_STATUS_PAUSED, r);
2542 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_ERROR", JOB_STATUS_ERROR, r);
2543 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_DELETING", JOB_STATUS_DELETING, r);
2544 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_SPOOLING", JOB_STATUS_SPOOLING, r);
2545 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PRINTING", JOB_STATUS_PRINTING, r);
2546 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_OFFLINE", JOB_STATUS_OFFLINE, r);
2547 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PAPEROUT", JOB_STATUS_PAPEROUT, r);
2548 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PRINTED", JOB_STATUS_PRINTED, r);
2549 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_DELETED", JOB_STATUS_DELETED, r);
2550 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_BLOCKED_DEVQ", JOB_STATUS_BLOCKED_DEVQ, r);
2551 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_USER_INTERVENTION", JOB_STATUS_USER_INTERVENTION, r);
2552 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_RESTART", JOB_STATUS_RESTART, r);
2553 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_COMPLETE", JOB_STATUS_COMPLETE, r);
2554 ndr->depth--;
2557 static enum ndr_err_code ndr_push_spoolss_JobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo1 *r)
2559 if (ndr_flags & NDR_SCALARS) {
2560 NDR_CHECK(ndr_push_align(ndr, 4));
2561 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
2563 uint32_t _flags_save_string = ndr->flags;
2564 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2565 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
2566 ndr->flags = _flags_save_string;
2569 uint32_t _flags_save_string = ndr->flags;
2570 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2571 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
2572 ndr->flags = _flags_save_string;
2575 uint32_t _flags_save_string = ndr->flags;
2576 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2577 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
2578 ndr->flags = _flags_save_string;
2581 uint32_t _flags_save_string = ndr->flags;
2582 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2583 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
2584 ndr->flags = _flags_save_string;
2587 uint32_t _flags_save_string = ndr->flags;
2588 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2589 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
2590 ndr->flags = _flags_save_string;
2593 uint32_t _flags_save_string = ndr->flags;
2594 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2595 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
2596 ndr->flags = _flags_save_string;
2598 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
2599 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
2600 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
2601 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
2602 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
2603 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
2605 if (ndr_flags & NDR_BUFFERS) {
2607 uint32_t _flags_save_string = ndr->flags;
2608 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2609 if (r->printer_name) {
2610 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
2611 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
2613 ndr->flags = _flags_save_string;
2616 uint32_t _flags_save_string = ndr->flags;
2617 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2618 if (r->server_name) {
2619 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
2620 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
2622 ndr->flags = _flags_save_string;
2625 uint32_t _flags_save_string = ndr->flags;
2626 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2627 if (r->user_name) {
2628 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
2629 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
2631 ndr->flags = _flags_save_string;
2634 uint32_t _flags_save_string = ndr->flags;
2635 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2636 if (r->document_name) {
2637 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
2638 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
2640 ndr->flags = _flags_save_string;
2643 uint32_t _flags_save_string = ndr->flags;
2644 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2645 if (r->data_type) {
2646 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
2647 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
2649 ndr->flags = _flags_save_string;
2652 uint32_t _flags_save_string = ndr->flags;
2653 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2654 if (r->text_status) {
2655 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
2656 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
2658 ndr->flags = _flags_save_string;
2661 return NDR_ERR_SUCCESS;
2664 static enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo1 *r)
2666 uint32_t _ptr_printer_name;
2667 TALLOC_CTX *_mem_save_printer_name_0;
2668 uint32_t _ptr_server_name;
2669 TALLOC_CTX *_mem_save_server_name_0;
2670 uint32_t _ptr_user_name;
2671 TALLOC_CTX *_mem_save_user_name_0;
2672 uint32_t _ptr_document_name;
2673 TALLOC_CTX *_mem_save_document_name_0;
2674 uint32_t _ptr_data_type;
2675 TALLOC_CTX *_mem_save_data_type_0;
2676 uint32_t _ptr_text_status;
2677 TALLOC_CTX *_mem_save_text_status_0;
2678 if (ndr_flags & NDR_SCALARS) {
2679 NDR_CHECK(ndr_pull_align(ndr, 4));
2680 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
2682 uint32_t _flags_save_string = ndr->flags;
2683 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2684 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
2685 if (_ptr_printer_name) {
2686 NDR_PULL_ALLOC(ndr, r->printer_name);
2687 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
2688 } else {
2689 r->printer_name = NULL;
2691 ndr->flags = _flags_save_string;
2694 uint32_t _flags_save_string = ndr->flags;
2695 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2696 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
2697 if (_ptr_server_name) {
2698 NDR_PULL_ALLOC(ndr, r->server_name);
2699 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
2700 } else {
2701 r->server_name = NULL;
2703 ndr->flags = _flags_save_string;
2706 uint32_t _flags_save_string = ndr->flags;
2707 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2708 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
2709 if (_ptr_user_name) {
2710 NDR_PULL_ALLOC(ndr, r->user_name);
2711 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
2712 } else {
2713 r->user_name = NULL;
2715 ndr->flags = _flags_save_string;
2718 uint32_t _flags_save_string = ndr->flags;
2719 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2720 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
2721 if (_ptr_document_name) {
2722 NDR_PULL_ALLOC(ndr, r->document_name);
2723 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
2724 } else {
2725 r->document_name = NULL;
2727 ndr->flags = _flags_save_string;
2730 uint32_t _flags_save_string = ndr->flags;
2731 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2732 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
2733 if (_ptr_data_type) {
2734 NDR_PULL_ALLOC(ndr, r->data_type);
2735 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
2736 } else {
2737 r->data_type = NULL;
2739 ndr->flags = _flags_save_string;
2742 uint32_t _flags_save_string = ndr->flags;
2743 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2744 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
2745 if (_ptr_text_status) {
2746 NDR_PULL_ALLOC(ndr, r->text_status);
2747 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
2748 } else {
2749 r->text_status = NULL;
2751 ndr->flags = _flags_save_string;
2753 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
2754 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
2755 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
2756 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
2757 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
2758 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
2760 if (ndr_flags & NDR_BUFFERS) {
2762 uint32_t _flags_save_string = ndr->flags;
2763 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2764 if (r->printer_name) {
2765 uint32_t _relative_save_offset;
2766 _relative_save_offset = ndr->offset;
2767 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
2768 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2769 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
2770 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
2771 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
2772 ndr->offset = _relative_save_offset;
2774 ndr->flags = _flags_save_string;
2777 uint32_t _flags_save_string = ndr->flags;
2778 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2779 if (r->server_name) {
2780 uint32_t _relative_save_offset;
2781 _relative_save_offset = ndr->offset;
2782 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
2783 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2784 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
2785 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
2786 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
2787 ndr->offset = _relative_save_offset;
2789 ndr->flags = _flags_save_string;
2792 uint32_t _flags_save_string = ndr->flags;
2793 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2794 if (r->user_name) {
2795 uint32_t _relative_save_offset;
2796 _relative_save_offset = ndr->offset;
2797 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
2798 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2799 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
2800 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
2801 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
2802 ndr->offset = _relative_save_offset;
2804 ndr->flags = _flags_save_string;
2807 uint32_t _flags_save_string = ndr->flags;
2808 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2809 if (r->document_name) {
2810 uint32_t _relative_save_offset;
2811 _relative_save_offset = ndr->offset;
2812 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
2813 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2814 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
2815 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
2816 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
2817 ndr->offset = _relative_save_offset;
2819 ndr->flags = _flags_save_string;
2822 uint32_t _flags_save_string = ndr->flags;
2823 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2824 if (r->data_type) {
2825 uint32_t _relative_save_offset;
2826 _relative_save_offset = ndr->offset;
2827 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
2828 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
2829 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
2830 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
2831 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
2832 ndr->offset = _relative_save_offset;
2834 ndr->flags = _flags_save_string;
2837 uint32_t _flags_save_string = ndr->flags;
2838 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2839 if (r->text_status) {
2840 uint32_t _relative_save_offset;
2841 _relative_save_offset = ndr->offset;
2842 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
2843 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
2844 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
2845 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
2846 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
2847 ndr->offset = _relative_save_offset;
2849 ndr->flags = _flags_save_string;
2852 return NDR_ERR_SUCCESS;
2855 _PUBLIC_ void ndr_print_spoolss_JobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo1 *r)
2857 ndr_print_struct(ndr, name, "spoolss_JobInfo1");
2858 ndr->depth++;
2859 ndr_print_uint32(ndr, "job_id", r->job_id);
2860 ndr_print_ptr(ndr, "printer_name", r->printer_name);
2861 ndr->depth++;
2862 if (r->printer_name) {
2863 ndr_print_string(ndr, "printer_name", r->printer_name);
2865 ndr->depth--;
2866 ndr_print_ptr(ndr, "server_name", r->server_name);
2867 ndr->depth++;
2868 if (r->server_name) {
2869 ndr_print_string(ndr, "server_name", r->server_name);
2871 ndr->depth--;
2872 ndr_print_ptr(ndr, "user_name", r->user_name);
2873 ndr->depth++;
2874 if (r->user_name) {
2875 ndr_print_string(ndr, "user_name", r->user_name);
2877 ndr->depth--;
2878 ndr_print_ptr(ndr, "document_name", r->document_name);
2879 ndr->depth++;
2880 if (r->document_name) {
2881 ndr_print_string(ndr, "document_name", r->document_name);
2883 ndr->depth--;
2884 ndr_print_ptr(ndr, "data_type", r->data_type);
2885 ndr->depth++;
2886 if (r->data_type) {
2887 ndr_print_string(ndr, "data_type", r->data_type);
2889 ndr->depth--;
2890 ndr_print_ptr(ndr, "text_status", r->text_status);
2891 ndr->depth++;
2892 if (r->text_status) {
2893 ndr_print_string(ndr, "text_status", r->text_status);
2895 ndr->depth--;
2896 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
2897 ndr_print_uint32(ndr, "priority", r->priority);
2898 ndr_print_uint32(ndr, "position", r->position);
2899 ndr_print_uint32(ndr, "total_pages", r->total_pages);
2900 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
2901 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
2902 ndr->depth--;
2905 static enum ndr_err_code ndr_push_spoolss_JobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo2 *r)
2907 if (ndr_flags & NDR_SCALARS) {
2908 NDR_CHECK(ndr_push_align(ndr, 4));
2909 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
2911 uint32_t _flags_save_string = ndr->flags;
2912 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2913 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
2914 ndr->flags = _flags_save_string;
2917 uint32_t _flags_save_string = ndr->flags;
2918 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2919 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
2920 ndr->flags = _flags_save_string;
2923 uint32_t _flags_save_string = ndr->flags;
2924 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2925 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
2926 ndr->flags = _flags_save_string;
2929 uint32_t _flags_save_string = ndr->flags;
2930 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2931 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
2932 ndr->flags = _flags_save_string;
2935 uint32_t _flags_save_string = ndr->flags;
2936 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2937 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
2938 ndr->flags = _flags_save_string;
2941 uint32_t _flags_save_string = ndr->flags;
2942 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2943 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
2944 ndr->flags = _flags_save_string;
2947 uint32_t _flags_save_string = ndr->flags;
2948 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2949 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
2950 ndr->flags = _flags_save_string;
2953 uint32_t _flags_save_string = ndr->flags;
2954 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2955 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
2956 ndr->flags = _flags_save_string;
2959 uint32_t _flags_save_string = ndr->flags;
2960 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2961 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
2962 ndr->flags = _flags_save_string;
2964 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
2966 uint32_t _flags_save_string = ndr->flags;
2967 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2968 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
2969 ndr->flags = _flags_save_string;
2971 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
2972 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
2973 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
2974 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
2975 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
2976 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
2977 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
2978 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
2979 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
2980 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
2981 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
2983 if (ndr_flags & NDR_BUFFERS) {
2985 uint32_t _flags_save_string = ndr->flags;
2986 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2987 if (r->printer_name) {
2988 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
2989 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
2991 ndr->flags = _flags_save_string;
2994 uint32_t _flags_save_string = ndr->flags;
2995 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2996 if (r->server_name) {
2997 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
2998 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3000 ndr->flags = _flags_save_string;
3003 uint32_t _flags_save_string = ndr->flags;
3004 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3005 if (r->user_name) {
3006 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
3007 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3009 ndr->flags = _flags_save_string;
3012 uint32_t _flags_save_string = ndr->flags;
3013 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3014 if (r->document_name) {
3015 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
3016 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3018 ndr->flags = _flags_save_string;
3021 uint32_t _flags_save_string = ndr->flags;
3022 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3023 if (r->notify_name) {
3024 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->notify_name));
3025 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
3027 ndr->flags = _flags_save_string;
3030 uint32_t _flags_save_string = ndr->flags;
3031 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3032 if (r->data_type) {
3033 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
3034 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3036 ndr->flags = _flags_save_string;
3039 uint32_t _flags_save_string = ndr->flags;
3040 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3041 if (r->print_processor) {
3042 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
3043 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
3045 ndr->flags = _flags_save_string;
3048 uint32_t _flags_save_string = ndr->flags;
3049 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3050 if (r->parameters) {
3051 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
3052 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
3054 ndr->flags = _flags_save_string;
3057 uint32_t _flags_save_string = ndr->flags;
3058 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3059 if (r->driver_name) {
3060 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
3061 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
3063 ndr->flags = _flags_save_string;
3065 if (r->devmode) {
3066 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
3067 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
3070 uint32_t _flags_save_string = ndr->flags;
3071 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3072 if (r->text_status) {
3073 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
3074 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3076 ndr->flags = _flags_save_string;
3078 if (r->secdesc) {
3079 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
3080 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3083 return NDR_ERR_SUCCESS;
3086 static enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo2 *r)
3088 uint32_t _ptr_printer_name;
3089 TALLOC_CTX *_mem_save_printer_name_0;
3090 uint32_t _ptr_server_name;
3091 TALLOC_CTX *_mem_save_server_name_0;
3092 uint32_t _ptr_user_name;
3093 TALLOC_CTX *_mem_save_user_name_0;
3094 uint32_t _ptr_document_name;
3095 TALLOC_CTX *_mem_save_document_name_0;
3096 uint32_t _ptr_notify_name;
3097 TALLOC_CTX *_mem_save_notify_name_0;
3098 uint32_t _ptr_data_type;
3099 TALLOC_CTX *_mem_save_data_type_0;
3100 uint32_t _ptr_print_processor;
3101 TALLOC_CTX *_mem_save_print_processor_0;
3102 uint32_t _ptr_parameters;
3103 TALLOC_CTX *_mem_save_parameters_0;
3104 uint32_t _ptr_driver_name;
3105 TALLOC_CTX *_mem_save_driver_name_0;
3106 uint32_t _ptr_devmode;
3107 TALLOC_CTX *_mem_save_devmode_0;
3108 uint32_t _ptr_text_status;
3109 TALLOC_CTX *_mem_save_text_status_0;
3110 uint32_t _ptr_secdesc;
3111 TALLOC_CTX *_mem_save_secdesc_0;
3112 if (ndr_flags & NDR_SCALARS) {
3113 NDR_CHECK(ndr_pull_align(ndr, 4));
3114 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3116 uint32_t _flags_save_string = ndr->flags;
3117 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3118 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
3119 if (_ptr_printer_name) {
3120 NDR_PULL_ALLOC(ndr, r->printer_name);
3121 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
3122 } else {
3123 r->printer_name = NULL;
3125 ndr->flags = _flags_save_string;
3128 uint32_t _flags_save_string = ndr->flags;
3129 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3130 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
3131 if (_ptr_server_name) {
3132 NDR_PULL_ALLOC(ndr, r->server_name);
3133 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
3134 } else {
3135 r->server_name = NULL;
3137 ndr->flags = _flags_save_string;
3140 uint32_t _flags_save_string = ndr->flags;
3141 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3142 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
3143 if (_ptr_user_name) {
3144 NDR_PULL_ALLOC(ndr, r->user_name);
3145 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
3146 } else {
3147 r->user_name = NULL;
3149 ndr->flags = _flags_save_string;
3152 uint32_t _flags_save_string = ndr->flags;
3153 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3154 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
3155 if (_ptr_document_name) {
3156 NDR_PULL_ALLOC(ndr, r->document_name);
3157 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
3158 } else {
3159 r->document_name = NULL;
3161 ndr->flags = _flags_save_string;
3164 uint32_t _flags_save_string = ndr->flags;
3165 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3166 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
3167 if (_ptr_notify_name) {
3168 NDR_PULL_ALLOC(ndr, r->notify_name);
3169 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
3170 } else {
3171 r->notify_name = NULL;
3173 ndr->flags = _flags_save_string;
3176 uint32_t _flags_save_string = ndr->flags;
3177 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3178 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
3179 if (_ptr_data_type) {
3180 NDR_PULL_ALLOC(ndr, r->data_type);
3181 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
3182 } else {
3183 r->data_type = NULL;
3185 ndr->flags = _flags_save_string;
3188 uint32_t _flags_save_string = ndr->flags;
3189 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3190 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
3191 if (_ptr_print_processor) {
3192 NDR_PULL_ALLOC(ndr, r->print_processor);
3193 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
3194 } else {
3195 r->print_processor = NULL;
3197 ndr->flags = _flags_save_string;
3200 uint32_t _flags_save_string = ndr->flags;
3201 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3202 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
3203 if (_ptr_parameters) {
3204 NDR_PULL_ALLOC(ndr, r->parameters);
3205 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
3206 } else {
3207 r->parameters = NULL;
3209 ndr->flags = _flags_save_string;
3212 uint32_t _flags_save_string = ndr->flags;
3213 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3214 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
3215 if (_ptr_driver_name) {
3216 NDR_PULL_ALLOC(ndr, r->driver_name);
3217 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
3218 } else {
3219 r->driver_name = NULL;
3221 ndr->flags = _flags_save_string;
3223 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3224 if (_ptr_devmode) {
3225 NDR_PULL_ALLOC(ndr, r->devmode);
3226 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
3227 } else {
3228 r->devmode = NULL;
3231 uint32_t _flags_save_string = ndr->flags;
3232 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3233 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
3234 if (_ptr_text_status) {
3235 NDR_PULL_ALLOC(ndr, r->text_status);
3236 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
3237 } else {
3238 r->text_status = NULL;
3240 ndr->flags = _flags_save_string;
3242 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
3243 if (_ptr_secdesc) {
3244 NDR_PULL_ALLOC(ndr, r->secdesc);
3245 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
3246 } else {
3247 r->secdesc = NULL;
3249 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
3250 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3251 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
3252 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
3253 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
3254 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3255 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
3256 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3257 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
3258 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
3260 if (ndr_flags & NDR_BUFFERS) {
3262 uint32_t _flags_save_string = ndr->flags;
3263 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3264 if (r->printer_name) {
3265 uint32_t _relative_save_offset;
3266 _relative_save_offset = ndr->offset;
3267 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
3268 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3269 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
3270 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
3271 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
3272 ndr->offset = _relative_save_offset;
3274 ndr->flags = _flags_save_string;
3277 uint32_t _flags_save_string = ndr->flags;
3278 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3279 if (r->server_name) {
3280 uint32_t _relative_save_offset;
3281 _relative_save_offset = ndr->offset;
3282 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
3283 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3284 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
3285 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
3286 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
3287 ndr->offset = _relative_save_offset;
3289 ndr->flags = _flags_save_string;
3292 uint32_t _flags_save_string = ndr->flags;
3293 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3294 if (r->user_name) {
3295 uint32_t _relative_save_offset;
3296 _relative_save_offset = ndr->offset;
3297 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
3298 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3299 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
3300 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
3301 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
3302 ndr->offset = _relative_save_offset;
3304 ndr->flags = _flags_save_string;
3307 uint32_t _flags_save_string = ndr->flags;
3308 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3309 if (r->document_name) {
3310 uint32_t _relative_save_offset;
3311 _relative_save_offset = ndr->offset;
3312 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
3313 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3314 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
3315 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
3316 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
3317 ndr->offset = _relative_save_offset;
3319 ndr->flags = _flags_save_string;
3322 uint32_t _flags_save_string = ndr->flags;
3323 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3324 if (r->notify_name) {
3325 uint32_t _relative_save_offset;
3326 _relative_save_offset = ndr->offset;
3327 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
3328 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3329 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
3330 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
3331 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
3332 ndr->offset = _relative_save_offset;
3334 ndr->flags = _flags_save_string;
3337 uint32_t _flags_save_string = ndr->flags;
3338 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3339 if (r->data_type) {
3340 uint32_t _relative_save_offset;
3341 _relative_save_offset = ndr->offset;
3342 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
3343 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
3344 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
3345 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
3346 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
3347 ndr->offset = _relative_save_offset;
3349 ndr->flags = _flags_save_string;
3352 uint32_t _flags_save_string = ndr->flags;
3353 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3354 if (r->print_processor) {
3355 uint32_t _relative_save_offset;
3356 _relative_save_offset = ndr->offset;
3357 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
3358 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
3359 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
3360 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
3361 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
3362 ndr->offset = _relative_save_offset;
3364 ndr->flags = _flags_save_string;
3367 uint32_t _flags_save_string = ndr->flags;
3368 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3369 if (r->parameters) {
3370 uint32_t _relative_save_offset;
3371 _relative_save_offset = ndr->offset;
3372 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
3373 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
3374 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
3375 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
3376 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
3377 ndr->offset = _relative_save_offset;
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 if (r->driver_name) {
3385 uint32_t _relative_save_offset;
3386 _relative_save_offset = ndr->offset;
3387 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
3388 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3389 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
3390 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
3391 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
3392 ndr->offset = _relative_save_offset;
3394 ndr->flags = _flags_save_string;
3396 if (r->devmode) {
3397 uint32_t _relative_save_offset;
3398 _relative_save_offset = ndr->offset;
3399 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
3400 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
3401 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
3402 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
3403 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
3404 ndr->offset = _relative_save_offset;
3407 uint32_t _flags_save_string = ndr->flags;
3408 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3409 if (r->text_status) {
3410 uint32_t _relative_save_offset;
3411 _relative_save_offset = ndr->offset;
3412 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
3413 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
3414 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
3415 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
3416 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
3417 ndr->offset = _relative_save_offset;
3419 ndr->flags = _flags_save_string;
3421 if (r->secdesc) {
3422 uint32_t _relative_save_offset;
3423 _relative_save_offset = ndr->offset;
3424 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
3425 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
3426 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
3427 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3428 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
3429 ndr->offset = _relative_save_offset;
3432 return NDR_ERR_SUCCESS;
3435 _PUBLIC_ void ndr_print_spoolss_JobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo2 *r)
3437 ndr_print_struct(ndr, name, "spoolss_JobInfo2");
3438 ndr->depth++;
3439 ndr_print_uint32(ndr, "job_id", r->job_id);
3440 ndr_print_ptr(ndr, "printer_name", r->printer_name);
3441 ndr->depth++;
3442 if (r->printer_name) {
3443 ndr_print_string(ndr, "printer_name", r->printer_name);
3445 ndr->depth--;
3446 ndr_print_ptr(ndr, "server_name", r->server_name);
3447 ndr->depth++;
3448 if (r->server_name) {
3449 ndr_print_string(ndr, "server_name", r->server_name);
3451 ndr->depth--;
3452 ndr_print_ptr(ndr, "user_name", r->user_name);
3453 ndr->depth++;
3454 if (r->user_name) {
3455 ndr_print_string(ndr, "user_name", r->user_name);
3457 ndr->depth--;
3458 ndr_print_ptr(ndr, "document_name", r->document_name);
3459 ndr->depth++;
3460 if (r->document_name) {
3461 ndr_print_string(ndr, "document_name", r->document_name);
3463 ndr->depth--;
3464 ndr_print_ptr(ndr, "notify_name", r->notify_name);
3465 ndr->depth++;
3466 if (r->notify_name) {
3467 ndr_print_string(ndr, "notify_name", r->notify_name);
3469 ndr->depth--;
3470 ndr_print_ptr(ndr, "data_type", r->data_type);
3471 ndr->depth++;
3472 if (r->data_type) {
3473 ndr_print_string(ndr, "data_type", r->data_type);
3475 ndr->depth--;
3476 ndr_print_ptr(ndr, "print_processor", r->print_processor);
3477 ndr->depth++;
3478 if (r->print_processor) {
3479 ndr_print_string(ndr, "print_processor", r->print_processor);
3481 ndr->depth--;
3482 ndr_print_ptr(ndr, "parameters", r->parameters);
3483 ndr->depth++;
3484 if (r->parameters) {
3485 ndr_print_string(ndr, "parameters", r->parameters);
3487 ndr->depth--;
3488 ndr_print_ptr(ndr, "driver_name", r->driver_name);
3489 ndr->depth++;
3490 if (r->driver_name) {
3491 ndr_print_string(ndr, "driver_name", r->driver_name);
3493 ndr->depth--;
3494 ndr_print_ptr(ndr, "devmode", r->devmode);
3495 ndr->depth++;
3496 if (r->devmode) {
3497 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
3499 ndr->depth--;
3500 ndr_print_ptr(ndr, "text_status", r->text_status);
3501 ndr->depth++;
3502 if (r->text_status) {
3503 ndr_print_string(ndr, "text_status", r->text_status);
3505 ndr->depth--;
3506 ndr_print_ptr(ndr, "secdesc", r->secdesc);
3507 ndr->depth++;
3508 if (r->secdesc) {
3509 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
3511 ndr->depth--;
3512 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
3513 ndr_print_uint32(ndr, "priority", r->priority);
3514 ndr_print_uint32(ndr, "position", r->position);
3515 ndr_print_uint32(ndr, "start_time", r->start_time);
3516 ndr_print_uint32(ndr, "until_time", r->until_time);
3517 ndr_print_uint32(ndr, "total_pages", r->total_pages);
3518 ndr_print_uint32(ndr, "size", r->size);
3519 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
3520 ndr_print_uint32(ndr, "time", r->time);
3521 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
3522 ndr->depth--;
3525 static enum ndr_err_code ndr_push_spoolss_JobInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo3 *r)
3527 if (ndr_flags & NDR_SCALARS) {
3528 NDR_CHECK(ndr_push_align(ndr, 4));
3529 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3530 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->next_job_id));
3531 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
3533 if (ndr_flags & NDR_BUFFERS) {
3535 return NDR_ERR_SUCCESS;
3538 static enum ndr_err_code ndr_pull_spoolss_JobInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo3 *r)
3540 if (ndr_flags & NDR_SCALARS) {
3541 NDR_CHECK(ndr_pull_align(ndr, 4));
3542 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3543 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->next_job_id));
3544 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
3546 if (ndr_flags & NDR_BUFFERS) {
3548 return NDR_ERR_SUCCESS;
3551 _PUBLIC_ void ndr_print_spoolss_JobInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo3 *r)
3553 ndr_print_struct(ndr, name, "spoolss_JobInfo3");
3554 ndr->depth++;
3555 ndr_print_uint32(ndr, "job_id", r->job_id);
3556 ndr_print_uint32(ndr, "next_job_id", r->next_job_id);
3557 ndr_print_uint32(ndr, "reserved", r->reserved);
3558 ndr->depth--;
3561 static enum ndr_err_code ndr_push_spoolss_JobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo4 *r)
3563 if (ndr_flags & NDR_SCALARS) {
3564 NDR_CHECK(ndr_push_align(ndr, 4));
3565 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3567 uint32_t _flags_save_string = ndr->flags;
3568 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3569 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
3570 ndr->flags = _flags_save_string;
3573 uint32_t _flags_save_string = ndr->flags;
3574 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3575 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
3576 ndr->flags = _flags_save_string;
3579 uint32_t _flags_save_string = ndr->flags;
3580 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3581 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
3582 ndr->flags = _flags_save_string;
3585 uint32_t _flags_save_string = ndr->flags;
3586 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3587 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
3588 ndr->flags = _flags_save_string;
3591 uint32_t _flags_save_string = ndr->flags;
3592 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3593 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
3594 ndr->flags = _flags_save_string;
3597 uint32_t _flags_save_string = ndr->flags;
3598 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3599 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
3600 ndr->flags = _flags_save_string;
3603 uint32_t _flags_save_string = ndr->flags;
3604 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3605 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
3606 ndr->flags = _flags_save_string;
3609 uint32_t _flags_save_string = ndr->flags;
3610 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3611 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
3612 ndr->flags = _flags_save_string;
3615 uint32_t _flags_save_string = ndr->flags;
3616 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3617 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
3618 ndr->flags = _flags_save_string;
3620 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
3622 uint32_t _flags_save_string = ndr->flags;
3623 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3624 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
3625 ndr->flags = _flags_save_string;
3627 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
3628 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
3629 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3630 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
3631 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
3632 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
3633 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3634 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
3635 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3636 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
3637 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
3638 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
3640 if (ndr_flags & NDR_BUFFERS) {
3642 uint32_t _flags_save_string = ndr->flags;
3643 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3644 if (r->printer_name) {
3645 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
3646 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
3648 ndr->flags = _flags_save_string;
3651 uint32_t _flags_save_string = ndr->flags;
3652 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3653 if (r->server_name) {
3654 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
3655 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3657 ndr->flags = _flags_save_string;
3660 uint32_t _flags_save_string = ndr->flags;
3661 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3662 if (r->user_name) {
3663 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
3664 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3666 ndr->flags = _flags_save_string;
3669 uint32_t _flags_save_string = ndr->flags;
3670 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3671 if (r->document_name) {
3672 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
3673 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3675 ndr->flags = _flags_save_string;
3678 uint32_t _flags_save_string = ndr->flags;
3679 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3680 if (r->notify_name) {
3681 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->notify_name));
3682 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
3684 ndr->flags = _flags_save_string;
3687 uint32_t _flags_save_string = ndr->flags;
3688 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3689 if (r->data_type) {
3690 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
3691 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3693 ndr->flags = _flags_save_string;
3696 uint32_t _flags_save_string = ndr->flags;
3697 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3698 if (r->print_processor) {
3699 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
3700 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
3702 ndr->flags = _flags_save_string;
3705 uint32_t _flags_save_string = ndr->flags;
3706 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3707 if (r->parameters) {
3708 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
3709 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
3711 ndr->flags = _flags_save_string;
3714 uint32_t _flags_save_string = ndr->flags;
3715 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3716 if (r->driver_name) {
3717 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
3718 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
3720 ndr->flags = _flags_save_string;
3722 if (r->devmode) {
3723 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
3724 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
3727 uint32_t _flags_save_string = ndr->flags;
3728 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3729 if (r->text_status) {
3730 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
3731 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3733 ndr->flags = _flags_save_string;
3735 if (r->secdesc) {
3736 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
3737 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3740 return NDR_ERR_SUCCESS;
3743 static enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo4 *r)
3745 uint32_t _ptr_printer_name;
3746 TALLOC_CTX *_mem_save_printer_name_0;
3747 uint32_t _ptr_server_name;
3748 TALLOC_CTX *_mem_save_server_name_0;
3749 uint32_t _ptr_user_name;
3750 TALLOC_CTX *_mem_save_user_name_0;
3751 uint32_t _ptr_document_name;
3752 TALLOC_CTX *_mem_save_document_name_0;
3753 uint32_t _ptr_notify_name;
3754 TALLOC_CTX *_mem_save_notify_name_0;
3755 uint32_t _ptr_data_type;
3756 TALLOC_CTX *_mem_save_data_type_0;
3757 uint32_t _ptr_print_processor;
3758 TALLOC_CTX *_mem_save_print_processor_0;
3759 uint32_t _ptr_parameters;
3760 TALLOC_CTX *_mem_save_parameters_0;
3761 uint32_t _ptr_driver_name;
3762 TALLOC_CTX *_mem_save_driver_name_0;
3763 uint32_t _ptr_devmode;
3764 TALLOC_CTX *_mem_save_devmode_0;
3765 uint32_t _ptr_text_status;
3766 TALLOC_CTX *_mem_save_text_status_0;
3767 uint32_t _ptr_secdesc;
3768 TALLOC_CTX *_mem_save_secdesc_0;
3769 if (ndr_flags & NDR_SCALARS) {
3770 NDR_CHECK(ndr_pull_align(ndr, 4));
3771 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3773 uint32_t _flags_save_string = ndr->flags;
3774 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3775 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
3776 if (_ptr_printer_name) {
3777 NDR_PULL_ALLOC(ndr, r->printer_name);
3778 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
3779 } else {
3780 r->printer_name = NULL;
3782 ndr->flags = _flags_save_string;
3785 uint32_t _flags_save_string = ndr->flags;
3786 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3787 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
3788 if (_ptr_server_name) {
3789 NDR_PULL_ALLOC(ndr, r->server_name);
3790 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
3791 } else {
3792 r->server_name = NULL;
3794 ndr->flags = _flags_save_string;
3797 uint32_t _flags_save_string = ndr->flags;
3798 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3799 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
3800 if (_ptr_user_name) {
3801 NDR_PULL_ALLOC(ndr, r->user_name);
3802 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
3803 } else {
3804 r->user_name = NULL;
3806 ndr->flags = _flags_save_string;
3809 uint32_t _flags_save_string = ndr->flags;
3810 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3811 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
3812 if (_ptr_document_name) {
3813 NDR_PULL_ALLOC(ndr, r->document_name);
3814 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
3815 } else {
3816 r->document_name = NULL;
3818 ndr->flags = _flags_save_string;
3821 uint32_t _flags_save_string = ndr->flags;
3822 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3823 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
3824 if (_ptr_notify_name) {
3825 NDR_PULL_ALLOC(ndr, r->notify_name);
3826 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
3827 } else {
3828 r->notify_name = NULL;
3830 ndr->flags = _flags_save_string;
3833 uint32_t _flags_save_string = ndr->flags;
3834 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3835 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
3836 if (_ptr_data_type) {
3837 NDR_PULL_ALLOC(ndr, r->data_type);
3838 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
3839 } else {
3840 r->data_type = NULL;
3842 ndr->flags = _flags_save_string;
3845 uint32_t _flags_save_string = ndr->flags;
3846 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3847 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
3848 if (_ptr_print_processor) {
3849 NDR_PULL_ALLOC(ndr, r->print_processor);
3850 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
3851 } else {
3852 r->print_processor = NULL;
3854 ndr->flags = _flags_save_string;
3857 uint32_t _flags_save_string = ndr->flags;
3858 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3859 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
3860 if (_ptr_parameters) {
3861 NDR_PULL_ALLOC(ndr, r->parameters);
3862 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
3863 } else {
3864 r->parameters = NULL;
3866 ndr->flags = _flags_save_string;
3869 uint32_t _flags_save_string = ndr->flags;
3870 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3871 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
3872 if (_ptr_driver_name) {
3873 NDR_PULL_ALLOC(ndr, r->driver_name);
3874 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
3875 } else {
3876 r->driver_name = NULL;
3878 ndr->flags = _flags_save_string;
3880 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3881 if (_ptr_devmode) {
3882 NDR_PULL_ALLOC(ndr, r->devmode);
3883 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
3884 } else {
3885 r->devmode = NULL;
3888 uint32_t _flags_save_string = ndr->flags;
3889 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3890 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
3891 if (_ptr_text_status) {
3892 NDR_PULL_ALLOC(ndr, r->text_status);
3893 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
3894 } else {
3895 r->text_status = NULL;
3897 ndr->flags = _flags_save_string;
3899 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
3900 if (_ptr_secdesc) {
3901 NDR_PULL_ALLOC(ndr, r->secdesc);
3902 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
3903 } else {
3904 r->secdesc = NULL;
3906 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
3907 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3908 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
3909 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
3910 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
3911 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3912 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
3913 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3914 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
3915 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
3916 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
3918 if (ndr_flags & NDR_BUFFERS) {
3920 uint32_t _flags_save_string = ndr->flags;
3921 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3922 if (r->printer_name) {
3923 uint32_t _relative_save_offset;
3924 _relative_save_offset = ndr->offset;
3925 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
3926 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3927 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
3928 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
3929 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
3930 ndr->offset = _relative_save_offset;
3932 ndr->flags = _flags_save_string;
3935 uint32_t _flags_save_string = ndr->flags;
3936 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3937 if (r->server_name) {
3938 uint32_t _relative_save_offset;
3939 _relative_save_offset = ndr->offset;
3940 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
3941 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3942 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
3943 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
3944 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
3945 ndr->offset = _relative_save_offset;
3947 ndr->flags = _flags_save_string;
3950 uint32_t _flags_save_string = ndr->flags;
3951 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3952 if (r->user_name) {
3953 uint32_t _relative_save_offset;
3954 _relative_save_offset = ndr->offset;
3955 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
3956 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3957 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
3958 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
3959 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
3960 ndr->offset = _relative_save_offset;
3962 ndr->flags = _flags_save_string;
3965 uint32_t _flags_save_string = ndr->flags;
3966 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3967 if (r->document_name) {
3968 uint32_t _relative_save_offset;
3969 _relative_save_offset = ndr->offset;
3970 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
3971 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3972 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
3973 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
3974 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
3975 ndr->offset = _relative_save_offset;
3977 ndr->flags = _flags_save_string;
3980 uint32_t _flags_save_string = ndr->flags;
3981 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3982 if (r->notify_name) {
3983 uint32_t _relative_save_offset;
3984 _relative_save_offset = ndr->offset;
3985 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
3986 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3987 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
3988 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
3989 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
3990 ndr->offset = _relative_save_offset;
3992 ndr->flags = _flags_save_string;
3995 uint32_t _flags_save_string = ndr->flags;
3996 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3997 if (r->data_type) {
3998 uint32_t _relative_save_offset;
3999 _relative_save_offset = ndr->offset;
4000 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
4001 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4002 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4003 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
4004 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4005 ndr->offset = _relative_save_offset;
4007 ndr->flags = _flags_save_string;
4010 uint32_t _flags_save_string = ndr->flags;
4011 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4012 if (r->print_processor) {
4013 uint32_t _relative_save_offset;
4014 _relative_save_offset = ndr->offset;
4015 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
4016 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
4017 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
4018 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
4019 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
4020 ndr->offset = _relative_save_offset;
4022 ndr->flags = _flags_save_string;
4025 uint32_t _flags_save_string = ndr->flags;
4026 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4027 if (r->parameters) {
4028 uint32_t _relative_save_offset;
4029 _relative_save_offset = ndr->offset;
4030 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
4031 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
4032 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
4033 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
4034 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
4035 ndr->offset = _relative_save_offset;
4037 ndr->flags = _flags_save_string;
4040 uint32_t _flags_save_string = ndr->flags;
4041 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4042 if (r->driver_name) {
4043 uint32_t _relative_save_offset;
4044 _relative_save_offset = ndr->offset;
4045 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
4046 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4047 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4048 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
4049 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4050 ndr->offset = _relative_save_offset;
4052 ndr->flags = _flags_save_string;
4054 if (r->devmode) {
4055 uint32_t _relative_save_offset;
4056 _relative_save_offset = ndr->offset;
4057 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
4058 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
4059 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
4060 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
4061 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
4062 ndr->offset = _relative_save_offset;
4065 uint32_t _flags_save_string = ndr->flags;
4066 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4067 if (r->text_status) {
4068 uint32_t _relative_save_offset;
4069 _relative_save_offset = ndr->offset;
4070 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
4071 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4072 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4073 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
4074 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4075 ndr->offset = _relative_save_offset;
4077 ndr->flags = _flags_save_string;
4079 if (r->secdesc) {
4080 uint32_t _relative_save_offset;
4081 _relative_save_offset = ndr->offset;
4082 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
4083 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
4084 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
4085 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4086 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
4087 ndr->offset = _relative_save_offset;
4090 return NDR_ERR_SUCCESS;
4093 _PUBLIC_ void ndr_print_spoolss_JobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo4 *r)
4095 ndr_print_struct(ndr, name, "spoolss_JobInfo4");
4096 ndr->depth++;
4097 ndr_print_uint32(ndr, "job_id", r->job_id);
4098 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4099 ndr->depth++;
4100 if (r->printer_name) {
4101 ndr_print_string(ndr, "printer_name", r->printer_name);
4103 ndr->depth--;
4104 ndr_print_ptr(ndr, "server_name", r->server_name);
4105 ndr->depth++;
4106 if (r->server_name) {
4107 ndr_print_string(ndr, "server_name", r->server_name);
4109 ndr->depth--;
4110 ndr_print_ptr(ndr, "user_name", r->user_name);
4111 ndr->depth++;
4112 if (r->user_name) {
4113 ndr_print_string(ndr, "user_name", r->user_name);
4115 ndr->depth--;
4116 ndr_print_ptr(ndr, "document_name", r->document_name);
4117 ndr->depth++;
4118 if (r->document_name) {
4119 ndr_print_string(ndr, "document_name", r->document_name);
4121 ndr->depth--;
4122 ndr_print_ptr(ndr, "notify_name", r->notify_name);
4123 ndr->depth++;
4124 if (r->notify_name) {
4125 ndr_print_string(ndr, "notify_name", r->notify_name);
4127 ndr->depth--;
4128 ndr_print_ptr(ndr, "data_type", r->data_type);
4129 ndr->depth++;
4130 if (r->data_type) {
4131 ndr_print_string(ndr, "data_type", r->data_type);
4133 ndr->depth--;
4134 ndr_print_ptr(ndr, "print_processor", r->print_processor);
4135 ndr->depth++;
4136 if (r->print_processor) {
4137 ndr_print_string(ndr, "print_processor", r->print_processor);
4139 ndr->depth--;
4140 ndr_print_ptr(ndr, "parameters", r->parameters);
4141 ndr->depth++;
4142 if (r->parameters) {
4143 ndr_print_string(ndr, "parameters", r->parameters);
4145 ndr->depth--;
4146 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4147 ndr->depth++;
4148 if (r->driver_name) {
4149 ndr_print_string(ndr, "driver_name", r->driver_name);
4151 ndr->depth--;
4152 ndr_print_ptr(ndr, "devmode", r->devmode);
4153 ndr->depth++;
4154 if (r->devmode) {
4155 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
4157 ndr->depth--;
4158 ndr_print_ptr(ndr, "text_status", r->text_status);
4159 ndr->depth++;
4160 if (r->text_status) {
4161 ndr_print_string(ndr, "text_status", r->text_status);
4163 ndr->depth--;
4164 ndr_print_ptr(ndr, "secdesc", r->secdesc);
4165 ndr->depth++;
4166 if (r->secdesc) {
4167 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
4169 ndr->depth--;
4170 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4171 ndr_print_uint32(ndr, "priority", r->priority);
4172 ndr_print_uint32(ndr, "position", r->position);
4173 ndr_print_uint32(ndr, "start_time", r->start_time);
4174 ndr_print_uint32(ndr, "until_time", r->until_time);
4175 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4176 ndr_print_uint32(ndr, "size", r->size);
4177 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4178 ndr_print_uint32(ndr, "time", r->time);
4179 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4180 ndr_print_uint32(ndr, "size_high", r->size_high);
4181 ndr->depth--;
4184 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_JobInfo *r)
4186 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
4187 if (ndr_flags & NDR_SCALARS) {
4188 int level = ndr_push_get_switch_value(ndr, r);
4189 switch (level) {
4190 case 1: {
4191 NDR_CHECK(ndr_push_align(ndr, 4));
4192 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4193 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
4194 break; }
4196 case 2: {
4197 NDR_CHECK(ndr_push_align(ndr, 4));
4198 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4199 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
4200 break; }
4202 case 3: {
4203 NDR_CHECK(ndr_push_align(ndr, 4));
4204 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4205 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
4206 break; }
4208 case 4: {
4209 NDR_CHECK(ndr_push_align(ndr, 4));
4210 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4211 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
4212 break; }
4214 default: {
4215 break; }
4219 if (ndr_flags & NDR_BUFFERS) {
4220 int level = ndr_push_get_switch_value(ndr, r);
4221 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
4222 switch (level) {
4223 case 1:
4224 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
4225 break;
4227 case 2:
4228 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
4229 break;
4231 case 3:
4232 break;
4234 case 4:
4235 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
4236 break;
4238 default:
4239 break;
4243 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
4244 return NDR_ERR_SUCCESS;
4247 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_JobInfo *r)
4249 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
4250 int level;
4251 level = ndr_pull_get_switch_value(ndr, r);
4252 if (ndr_flags & NDR_SCALARS) {
4253 switch (level) {
4254 case 1: {
4255 NDR_CHECK(ndr_pull_align(ndr, 4));
4256 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4257 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
4258 break; }
4260 case 2: {
4261 NDR_CHECK(ndr_pull_align(ndr, 4));
4262 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4263 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
4264 break; }
4266 case 3: {
4267 NDR_CHECK(ndr_pull_align(ndr, 4));
4268 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4269 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
4270 break; }
4272 case 4: {
4273 NDR_CHECK(ndr_pull_align(ndr, 4));
4274 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4275 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
4276 break; }
4278 default: {
4279 break; }
4283 if (ndr_flags & NDR_BUFFERS) {
4284 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
4285 switch (level) {
4286 case 1:
4287 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
4288 break;
4290 case 2:
4291 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
4292 break;
4294 case 3:
4295 break;
4297 case 4:
4298 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
4299 break;
4301 default:
4302 break;
4306 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
4307 return NDR_ERR_SUCCESS;
4310 _PUBLIC_ void ndr_print_spoolss_JobInfo(struct ndr_print *ndr, const char *name, const union spoolss_JobInfo *r)
4312 int level;
4313 level = ndr_print_get_switch_value(ndr, r);
4314 ndr_print_union(ndr, name, level, "spoolss_JobInfo");
4315 switch (level) {
4316 case 1:
4317 ndr_print_spoolss_JobInfo1(ndr, "info1", &r->info1);
4318 break;
4320 case 2:
4321 ndr_print_spoolss_JobInfo2(ndr, "info2", &r->info2);
4322 break;
4324 case 3:
4325 ndr_print_spoolss_JobInfo3(ndr, "info3", &r->info3);
4326 break;
4328 case 4:
4329 ndr_print_spoolss_JobInfo4(ndr, "info4", &r->info4);
4330 break;
4332 default:
4333 break;
4338 static enum ndr_err_code ndr_push_spoolss_SetJobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo1 *r)
4340 if (ndr_flags & NDR_SCALARS) {
4341 NDR_CHECK(ndr_push_align(ndr, 4));
4342 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4343 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
4344 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
4345 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
4346 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
4347 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
4348 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
4349 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
4350 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
4351 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
4352 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
4353 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
4354 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4356 if (ndr_flags & NDR_BUFFERS) {
4357 if (r->printer_name) {
4358 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4359 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4360 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4361 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4363 if (r->server_name) {
4364 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4365 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4366 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4367 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4369 if (r->user_name) {
4370 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
4371 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4372 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
4373 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4375 if (r->document_name) {
4376 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
4377 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4378 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
4379 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4381 if (r->data_type) {
4382 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
4383 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4384 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
4385 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4387 if (r->text_status) {
4388 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4389 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4390 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4391 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4394 return NDR_ERR_SUCCESS;
4397 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo1 *r)
4399 uint32_t _ptr_printer_name;
4400 TALLOC_CTX *_mem_save_printer_name_0;
4401 uint32_t _ptr_server_name;
4402 TALLOC_CTX *_mem_save_server_name_0;
4403 uint32_t _ptr_user_name;
4404 TALLOC_CTX *_mem_save_user_name_0;
4405 uint32_t _ptr_document_name;
4406 TALLOC_CTX *_mem_save_document_name_0;
4407 uint32_t _ptr_data_type;
4408 TALLOC_CTX *_mem_save_data_type_0;
4409 uint32_t _ptr_text_status;
4410 TALLOC_CTX *_mem_save_text_status_0;
4411 if (ndr_flags & NDR_SCALARS) {
4412 NDR_CHECK(ndr_pull_align(ndr, 4));
4413 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4414 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
4415 if (_ptr_printer_name) {
4416 NDR_PULL_ALLOC(ndr, r->printer_name);
4417 } else {
4418 r->printer_name = NULL;
4420 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
4421 if (_ptr_server_name) {
4422 NDR_PULL_ALLOC(ndr, r->server_name);
4423 } else {
4424 r->server_name = NULL;
4426 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
4427 if (_ptr_user_name) {
4428 NDR_PULL_ALLOC(ndr, r->user_name);
4429 } else {
4430 r->user_name = NULL;
4432 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
4433 if (_ptr_document_name) {
4434 NDR_PULL_ALLOC(ndr, r->document_name);
4435 } else {
4436 r->document_name = NULL;
4438 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
4439 if (_ptr_data_type) {
4440 NDR_PULL_ALLOC(ndr, r->data_type);
4441 } else {
4442 r->data_type = NULL;
4444 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
4445 if (_ptr_text_status) {
4446 NDR_PULL_ALLOC(ndr, r->text_status);
4447 } else {
4448 r->text_status = NULL;
4450 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
4451 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
4452 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
4453 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
4454 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
4455 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4457 if (ndr_flags & NDR_BUFFERS) {
4458 if (r->printer_name) {
4459 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4460 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4461 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
4462 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
4463 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
4464 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));
4466 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
4467 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
4468 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4470 if (r->server_name) {
4471 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4472 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4473 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
4474 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
4475 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
4476 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));
4478 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
4479 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
4480 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4482 if (r->user_name) {
4483 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4484 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4485 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
4486 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
4487 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
4488 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));
4490 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
4491 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
4492 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4494 if (r->document_name) {
4495 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4496 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4497 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
4498 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
4499 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
4500 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));
4502 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
4503 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
4504 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
4506 if (r->data_type) {
4507 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4508 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4509 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
4510 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
4511 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
4512 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));
4514 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
4515 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
4516 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4518 if (r->text_status) {
4519 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4520 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4521 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
4522 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
4523 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
4524 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));
4526 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
4527 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
4528 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4531 return NDR_ERR_SUCCESS;
4534 _PUBLIC_ void ndr_print_spoolss_SetJobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo1 *r)
4536 ndr_print_struct(ndr, name, "spoolss_SetJobInfo1");
4537 ndr->depth++;
4538 ndr_print_uint32(ndr, "job_id", r->job_id);
4539 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4540 ndr->depth++;
4541 if (r->printer_name) {
4542 ndr_print_string(ndr, "printer_name", r->printer_name);
4544 ndr->depth--;
4545 ndr_print_ptr(ndr, "server_name", r->server_name);
4546 ndr->depth++;
4547 if (r->server_name) {
4548 ndr_print_string(ndr, "server_name", r->server_name);
4550 ndr->depth--;
4551 ndr_print_ptr(ndr, "user_name", r->user_name);
4552 ndr->depth++;
4553 if (r->user_name) {
4554 ndr_print_string(ndr, "user_name", r->user_name);
4556 ndr->depth--;
4557 ndr_print_ptr(ndr, "document_name", r->document_name);
4558 ndr->depth++;
4559 if (r->document_name) {
4560 ndr_print_string(ndr, "document_name", r->document_name);
4562 ndr->depth--;
4563 ndr_print_ptr(ndr, "data_type", r->data_type);
4564 ndr->depth++;
4565 if (r->data_type) {
4566 ndr_print_string(ndr, "data_type", r->data_type);
4568 ndr->depth--;
4569 ndr_print_ptr(ndr, "text_status", r->text_status);
4570 ndr->depth++;
4571 if (r->text_status) {
4572 ndr_print_string(ndr, "text_status", r->text_status);
4574 ndr->depth--;
4575 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4576 ndr_print_uint32(ndr, "priority", r->priority);
4577 ndr_print_uint32(ndr, "position", r->position);
4578 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4579 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4580 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4581 ndr->depth--;
4584 static enum ndr_err_code ndr_push_spoolss_SetJobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo2 *r)
4586 if (ndr_flags & NDR_SCALARS) {
4587 NDR_CHECK(ndr_push_align(ndr, 4));
4588 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4589 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
4590 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
4591 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
4592 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
4593 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
4594 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
4595 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
4596 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
4597 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
4598 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
4599 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
4600 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secdesc));
4601 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
4602 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
4603 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
4604 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
4605 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
4606 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
4607 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
4608 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4609 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
4610 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
4612 if (ndr_flags & NDR_BUFFERS) {
4613 if (r->printer_name) {
4614 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4615 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4616 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4617 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4619 if (r->server_name) {
4620 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4621 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4622 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4623 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4625 if (r->user_name) {
4626 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
4627 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4628 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
4629 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4631 if (r->document_name) {
4632 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
4633 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4634 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
4635 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4637 if (r->notify_name) {
4638 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
4639 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4640 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
4641 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4643 if (r->data_type) {
4644 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
4645 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4646 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
4647 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4649 if (r->print_processor) {
4650 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
4651 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4652 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
4653 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4655 if (r->parameters) {
4656 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
4657 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4658 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
4659 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4661 if (r->driver_name) {
4662 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
4663 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4664 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
4665 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4667 if (r->devmode) {
4668 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
4670 if (r->text_status) {
4671 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4672 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4673 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4674 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4676 if (r->secdesc) {
4677 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4680 return NDR_ERR_SUCCESS;
4683 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo2 *r)
4685 uint32_t _ptr_printer_name;
4686 TALLOC_CTX *_mem_save_printer_name_0;
4687 uint32_t _ptr_server_name;
4688 TALLOC_CTX *_mem_save_server_name_0;
4689 uint32_t _ptr_user_name;
4690 TALLOC_CTX *_mem_save_user_name_0;
4691 uint32_t _ptr_document_name;
4692 TALLOC_CTX *_mem_save_document_name_0;
4693 uint32_t _ptr_notify_name;
4694 TALLOC_CTX *_mem_save_notify_name_0;
4695 uint32_t _ptr_data_type;
4696 TALLOC_CTX *_mem_save_data_type_0;
4697 uint32_t _ptr_print_processor;
4698 TALLOC_CTX *_mem_save_print_processor_0;
4699 uint32_t _ptr_parameters;
4700 TALLOC_CTX *_mem_save_parameters_0;
4701 uint32_t _ptr_driver_name;
4702 TALLOC_CTX *_mem_save_driver_name_0;
4703 uint32_t _ptr_devmode;
4704 TALLOC_CTX *_mem_save_devmode_0;
4705 uint32_t _ptr_text_status;
4706 TALLOC_CTX *_mem_save_text_status_0;
4707 uint32_t _ptr_secdesc;
4708 TALLOC_CTX *_mem_save_secdesc_0;
4709 if (ndr_flags & NDR_SCALARS) {
4710 NDR_CHECK(ndr_pull_align(ndr, 4));
4711 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4712 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
4713 if (_ptr_printer_name) {
4714 NDR_PULL_ALLOC(ndr, r->printer_name);
4715 } else {
4716 r->printer_name = NULL;
4718 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
4719 if (_ptr_server_name) {
4720 NDR_PULL_ALLOC(ndr, r->server_name);
4721 } else {
4722 r->server_name = NULL;
4724 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
4725 if (_ptr_user_name) {
4726 NDR_PULL_ALLOC(ndr, r->user_name);
4727 } else {
4728 r->user_name = NULL;
4730 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
4731 if (_ptr_document_name) {
4732 NDR_PULL_ALLOC(ndr, r->document_name);
4733 } else {
4734 r->document_name = NULL;
4736 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
4737 if (_ptr_notify_name) {
4738 NDR_PULL_ALLOC(ndr, r->notify_name);
4739 } else {
4740 r->notify_name = NULL;
4742 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
4743 if (_ptr_data_type) {
4744 NDR_PULL_ALLOC(ndr, r->data_type);
4745 } else {
4746 r->data_type = NULL;
4748 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
4749 if (_ptr_print_processor) {
4750 NDR_PULL_ALLOC(ndr, r->print_processor);
4751 } else {
4752 r->print_processor = NULL;
4754 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
4755 if (_ptr_parameters) {
4756 NDR_PULL_ALLOC(ndr, r->parameters);
4757 } else {
4758 r->parameters = NULL;
4760 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4761 if (_ptr_driver_name) {
4762 NDR_PULL_ALLOC(ndr, r->driver_name);
4763 } else {
4764 r->driver_name = NULL;
4766 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
4767 if (_ptr_devmode) {
4768 NDR_PULL_ALLOC(ndr, r->devmode);
4769 } else {
4770 r->devmode = NULL;
4772 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
4773 if (_ptr_text_status) {
4774 NDR_PULL_ALLOC(ndr, r->text_status);
4775 } else {
4776 r->text_status = NULL;
4778 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
4779 if (_ptr_secdesc) {
4780 NDR_PULL_ALLOC(ndr, r->secdesc);
4781 } else {
4782 r->secdesc = NULL;
4784 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
4785 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
4786 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
4787 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
4788 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
4789 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
4790 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
4791 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4792 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
4793 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
4795 if (ndr_flags & NDR_BUFFERS) {
4796 if (r->printer_name) {
4797 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4798 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4799 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
4800 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
4801 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
4802 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));
4804 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
4805 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
4806 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4808 if (r->server_name) {
4809 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4810 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4811 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
4812 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
4813 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
4814 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));
4816 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
4817 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
4818 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4820 if (r->user_name) {
4821 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4822 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4823 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
4824 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
4825 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
4826 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));
4828 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
4829 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
4830 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4832 if (r->document_name) {
4833 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4834 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4835 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
4836 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
4837 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
4838 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));
4840 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
4841 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
4842 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
4844 if (r->notify_name) {
4845 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4846 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
4847 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
4848 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
4849 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
4850 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));
4852 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
4853 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
4854 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
4856 if (r->data_type) {
4857 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4858 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4859 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
4860 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
4861 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
4862 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));
4864 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
4865 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
4866 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4868 if (r->print_processor) {
4869 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
4870 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
4871 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
4872 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
4873 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
4874 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));
4876 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
4877 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
4878 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
4880 if (r->parameters) {
4881 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
4882 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
4883 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
4884 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
4885 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
4886 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));
4888 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
4889 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
4890 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
4892 if (r->driver_name) {
4893 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4894 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4895 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
4896 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
4897 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
4898 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));
4900 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
4901 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
4902 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4904 if (r->devmode) {
4905 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
4906 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
4907 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
4908 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
4910 if (r->text_status) {
4911 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4912 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4913 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
4914 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
4915 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
4916 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->text_status), ndr_get_array_length(ndr, &r->text_status));
4918 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
4919 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
4920 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4922 if (r->secdesc) {
4923 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
4924 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
4925 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4926 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
4929 return NDR_ERR_SUCCESS;
4932 _PUBLIC_ void ndr_print_spoolss_SetJobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo2 *r)
4934 ndr_print_struct(ndr, name, "spoolss_SetJobInfo2");
4935 ndr->depth++;
4936 ndr_print_uint32(ndr, "job_id", r->job_id);
4937 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4938 ndr->depth++;
4939 if (r->printer_name) {
4940 ndr_print_string(ndr, "printer_name", r->printer_name);
4942 ndr->depth--;
4943 ndr_print_ptr(ndr, "server_name", r->server_name);
4944 ndr->depth++;
4945 if (r->server_name) {
4946 ndr_print_string(ndr, "server_name", r->server_name);
4948 ndr->depth--;
4949 ndr_print_ptr(ndr, "user_name", r->user_name);
4950 ndr->depth++;
4951 if (r->user_name) {
4952 ndr_print_string(ndr, "user_name", r->user_name);
4954 ndr->depth--;
4955 ndr_print_ptr(ndr, "document_name", r->document_name);
4956 ndr->depth++;
4957 if (r->document_name) {
4958 ndr_print_string(ndr, "document_name", r->document_name);
4960 ndr->depth--;
4961 ndr_print_ptr(ndr, "notify_name", r->notify_name);
4962 ndr->depth++;
4963 if (r->notify_name) {
4964 ndr_print_string(ndr, "notify_name", r->notify_name);
4966 ndr->depth--;
4967 ndr_print_ptr(ndr, "data_type", r->data_type);
4968 ndr->depth++;
4969 if (r->data_type) {
4970 ndr_print_string(ndr, "data_type", r->data_type);
4972 ndr->depth--;
4973 ndr_print_ptr(ndr, "print_processor", r->print_processor);
4974 ndr->depth++;
4975 if (r->print_processor) {
4976 ndr_print_string(ndr, "print_processor", r->print_processor);
4978 ndr->depth--;
4979 ndr_print_ptr(ndr, "parameters", r->parameters);
4980 ndr->depth++;
4981 if (r->parameters) {
4982 ndr_print_string(ndr, "parameters", r->parameters);
4984 ndr->depth--;
4985 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4986 ndr->depth++;
4987 if (r->driver_name) {
4988 ndr_print_string(ndr, "driver_name", r->driver_name);
4990 ndr->depth--;
4991 ndr_print_ptr(ndr, "devmode", r->devmode);
4992 ndr->depth++;
4993 if (r->devmode) {
4994 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
4996 ndr->depth--;
4997 ndr_print_ptr(ndr, "text_status", r->text_status);
4998 ndr->depth++;
4999 if (r->text_status) {
5000 ndr_print_string(ndr, "text_status", r->text_status);
5002 ndr->depth--;
5003 ndr_print_ptr(ndr, "secdesc", r->secdesc);
5004 ndr->depth++;
5005 if (r->secdesc) {
5006 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
5008 ndr->depth--;
5009 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5010 ndr_print_uint32(ndr, "priority", r->priority);
5011 ndr_print_uint32(ndr, "position", r->position);
5012 ndr_print_uint32(ndr, "start_time", r->start_time);
5013 ndr_print_uint32(ndr, "until_time", r->until_time);
5014 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5015 ndr_print_uint32(ndr, "size", r->size);
5016 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5017 ndr_print_uint32(ndr, "time", r->time);
5018 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5019 ndr->depth--;
5022 static enum ndr_err_code ndr_push_spoolss_SetJobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo4 *r)
5024 if (ndr_flags & NDR_SCALARS) {
5025 NDR_CHECK(ndr_push_align(ndr, 4));
5026 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
5027 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
5028 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
5029 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
5030 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
5031 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
5032 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
5033 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
5034 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
5035 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5036 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
5037 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
5038 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secdesc));
5039 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5040 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5041 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5042 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
5043 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
5044 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5045 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
5046 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5047 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
5048 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5049 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
5051 if (ndr_flags & NDR_BUFFERS) {
5052 if (r->printer_name) {
5053 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5054 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5055 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5056 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5058 if (r->server_name) {
5059 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5060 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5061 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5062 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5064 if (r->user_name) {
5065 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5066 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5067 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5068 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5070 if (r->document_name) {
5071 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5072 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5073 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5074 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5076 if (r->notify_name) {
5077 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5078 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5079 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5080 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5082 if (r->data_type) {
5083 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5084 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5085 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5086 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5088 if (r->print_processor) {
5089 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5090 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5091 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5092 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5094 if (r->parameters) {
5095 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5096 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5097 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5098 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5100 if (r->driver_name) {
5101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5102 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5103 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5104 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5106 if (r->devmode) {
5107 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
5109 if (r->text_status) {
5110 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5111 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5112 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5113 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5115 if (r->secdesc) {
5116 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
5119 return NDR_ERR_SUCCESS;
5122 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo4 *r)
5124 uint32_t _ptr_printer_name;
5125 TALLOC_CTX *_mem_save_printer_name_0;
5126 uint32_t _ptr_server_name;
5127 TALLOC_CTX *_mem_save_server_name_0;
5128 uint32_t _ptr_user_name;
5129 TALLOC_CTX *_mem_save_user_name_0;
5130 uint32_t _ptr_document_name;
5131 TALLOC_CTX *_mem_save_document_name_0;
5132 uint32_t _ptr_notify_name;
5133 TALLOC_CTX *_mem_save_notify_name_0;
5134 uint32_t _ptr_data_type;
5135 TALLOC_CTX *_mem_save_data_type_0;
5136 uint32_t _ptr_print_processor;
5137 TALLOC_CTX *_mem_save_print_processor_0;
5138 uint32_t _ptr_parameters;
5139 TALLOC_CTX *_mem_save_parameters_0;
5140 uint32_t _ptr_driver_name;
5141 TALLOC_CTX *_mem_save_driver_name_0;
5142 uint32_t _ptr_devmode;
5143 TALLOC_CTX *_mem_save_devmode_0;
5144 uint32_t _ptr_text_status;
5145 TALLOC_CTX *_mem_save_text_status_0;
5146 uint32_t _ptr_secdesc;
5147 TALLOC_CTX *_mem_save_secdesc_0;
5148 if (ndr_flags & NDR_SCALARS) {
5149 NDR_CHECK(ndr_pull_align(ndr, 4));
5150 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5151 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5152 if (_ptr_printer_name) {
5153 NDR_PULL_ALLOC(ndr, r->printer_name);
5154 } else {
5155 r->printer_name = NULL;
5157 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5158 if (_ptr_server_name) {
5159 NDR_PULL_ALLOC(ndr, r->server_name);
5160 } else {
5161 r->server_name = NULL;
5163 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5164 if (_ptr_user_name) {
5165 NDR_PULL_ALLOC(ndr, r->user_name);
5166 } else {
5167 r->user_name = NULL;
5169 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5170 if (_ptr_document_name) {
5171 NDR_PULL_ALLOC(ndr, r->document_name);
5172 } else {
5173 r->document_name = NULL;
5175 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
5176 if (_ptr_notify_name) {
5177 NDR_PULL_ALLOC(ndr, r->notify_name);
5178 } else {
5179 r->notify_name = NULL;
5181 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5182 if (_ptr_data_type) {
5183 NDR_PULL_ALLOC(ndr, r->data_type);
5184 } else {
5185 r->data_type = NULL;
5187 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
5188 if (_ptr_print_processor) {
5189 NDR_PULL_ALLOC(ndr, r->print_processor);
5190 } else {
5191 r->print_processor = NULL;
5193 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
5194 if (_ptr_parameters) {
5195 NDR_PULL_ALLOC(ndr, r->parameters);
5196 } else {
5197 r->parameters = NULL;
5199 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5200 if (_ptr_driver_name) {
5201 NDR_PULL_ALLOC(ndr, r->driver_name);
5202 } else {
5203 r->driver_name = NULL;
5205 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
5206 if (_ptr_devmode) {
5207 NDR_PULL_ALLOC(ndr, r->devmode);
5208 } else {
5209 r->devmode = NULL;
5211 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5212 if (_ptr_text_status) {
5213 NDR_PULL_ALLOC(ndr, r->text_status);
5214 } else {
5215 r->text_status = NULL;
5217 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
5218 if (_ptr_secdesc) {
5219 NDR_PULL_ALLOC(ndr, r->secdesc);
5220 } else {
5221 r->secdesc = NULL;
5223 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5224 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5225 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5226 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
5227 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
5228 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5229 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
5230 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5231 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
5232 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5233 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
5235 if (ndr_flags & NDR_BUFFERS) {
5236 if (r->printer_name) {
5237 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5238 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5239 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5240 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5241 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5242 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printer_name), ndr_get_array_length(ndr, &r->printer_name));
5244 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5245 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
5246 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5248 if (r->server_name) {
5249 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5250 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5251 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5252 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5253 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5254 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));
5256 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5257 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
5258 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5260 if (r->user_name) {
5261 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5262 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5263 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5264 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5265 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5266 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));
5268 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5269 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
5270 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5272 if (r->document_name) {
5273 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5274 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5275 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5276 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5277 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5278 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));
5280 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5281 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
5282 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5284 if (r->notify_name) {
5285 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5286 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
5287 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
5288 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
5289 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
5290 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));
5292 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
5293 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
5294 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
5296 if (r->data_type) {
5297 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5298 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5299 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5300 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5301 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
5302 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));
5304 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
5305 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
5306 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5308 if (r->print_processor) {
5309 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
5310 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
5311 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
5312 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
5313 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
5314 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));
5316 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
5317 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
5318 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
5320 if (r->parameters) {
5321 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
5322 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
5323 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
5324 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
5325 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
5326 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));
5328 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
5329 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
5330 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
5332 if (r->driver_name) {
5333 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5334 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5335 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5336 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5337 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5338 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));
5340 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5341 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5342 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5344 if (r->devmode) {
5345 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
5346 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
5347 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
5348 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
5350 if (r->text_status) {
5351 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5352 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5353 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5354 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5355 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
5356 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));
5358 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
5359 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
5360 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5362 if (r->secdesc) {
5363 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
5364 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
5365 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
5366 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
5369 return NDR_ERR_SUCCESS;
5372 _PUBLIC_ void ndr_print_spoolss_SetJobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo4 *r)
5374 ndr_print_struct(ndr, name, "spoolss_SetJobInfo4");
5375 ndr->depth++;
5376 ndr_print_uint32(ndr, "job_id", r->job_id);
5377 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5378 ndr->depth++;
5379 if (r->printer_name) {
5380 ndr_print_string(ndr, "printer_name", r->printer_name);
5382 ndr->depth--;
5383 ndr_print_ptr(ndr, "server_name", r->server_name);
5384 ndr->depth++;
5385 if (r->server_name) {
5386 ndr_print_string(ndr, "server_name", r->server_name);
5388 ndr->depth--;
5389 ndr_print_ptr(ndr, "user_name", r->user_name);
5390 ndr->depth++;
5391 if (r->user_name) {
5392 ndr_print_string(ndr, "user_name", r->user_name);
5394 ndr->depth--;
5395 ndr_print_ptr(ndr, "document_name", r->document_name);
5396 ndr->depth++;
5397 if (r->document_name) {
5398 ndr_print_string(ndr, "document_name", r->document_name);
5400 ndr->depth--;
5401 ndr_print_ptr(ndr, "notify_name", r->notify_name);
5402 ndr->depth++;
5403 if (r->notify_name) {
5404 ndr_print_string(ndr, "notify_name", r->notify_name);
5406 ndr->depth--;
5407 ndr_print_ptr(ndr, "data_type", r->data_type);
5408 ndr->depth++;
5409 if (r->data_type) {
5410 ndr_print_string(ndr, "data_type", r->data_type);
5412 ndr->depth--;
5413 ndr_print_ptr(ndr, "print_processor", r->print_processor);
5414 ndr->depth++;
5415 if (r->print_processor) {
5416 ndr_print_string(ndr, "print_processor", r->print_processor);
5418 ndr->depth--;
5419 ndr_print_ptr(ndr, "parameters", r->parameters);
5420 ndr->depth++;
5421 if (r->parameters) {
5422 ndr_print_string(ndr, "parameters", r->parameters);
5424 ndr->depth--;
5425 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5426 ndr->depth++;
5427 if (r->driver_name) {
5428 ndr_print_string(ndr, "driver_name", r->driver_name);
5430 ndr->depth--;
5431 ndr_print_ptr(ndr, "devmode", r->devmode);
5432 ndr->depth++;
5433 if (r->devmode) {
5434 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
5436 ndr->depth--;
5437 ndr_print_ptr(ndr, "text_status", r->text_status);
5438 ndr->depth++;
5439 if (r->text_status) {
5440 ndr_print_string(ndr, "text_status", r->text_status);
5442 ndr->depth--;
5443 ndr_print_ptr(ndr, "secdesc", r->secdesc);
5444 ndr->depth++;
5445 if (r->secdesc) {
5446 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
5448 ndr->depth--;
5449 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5450 ndr_print_uint32(ndr, "priority", r->priority);
5451 ndr_print_uint32(ndr, "position", r->position);
5452 ndr_print_uint32(ndr, "start_time", r->start_time);
5453 ndr_print_uint32(ndr, "until_time", r->until_time);
5454 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5455 ndr_print_uint32(ndr, "size", r->size);
5456 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5457 ndr_print_uint32(ndr, "time", r->time);
5458 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5459 ndr_print_uint32(ndr, "size_high", r->size_high);
5460 ndr->depth--;
5463 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetJobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetJobInfo *r)
5465 if (ndr_flags & NDR_SCALARS) {
5466 int level = ndr_push_get_switch_value(ndr, r);
5467 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5468 switch (level) {
5469 case 1: {
5470 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
5471 break; }
5473 case 2: {
5474 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
5475 break; }
5477 case 3: {
5478 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
5479 break; }
5481 case 4: {
5482 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
5483 break; }
5485 default: {
5486 break; }
5490 if (ndr_flags & NDR_BUFFERS) {
5491 int level = ndr_push_get_switch_value(ndr, r);
5492 switch (level) {
5493 case 1:
5494 if (r->info1) {
5495 NDR_CHECK(ndr_push_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
5497 break;
5499 case 2:
5500 if (r->info2) {
5501 NDR_CHECK(ndr_push_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5503 break;
5505 case 3:
5506 if (r->info3) {
5507 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
5509 break;
5511 case 4:
5512 if (r->info4) {
5513 NDR_CHECK(ndr_push_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
5515 break;
5517 default:
5518 break;
5522 return NDR_ERR_SUCCESS;
5525 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetJobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetJobInfo *r)
5527 int level;
5528 uint32_t _level;
5529 TALLOC_CTX *_mem_save_info1_0;
5530 TALLOC_CTX *_mem_save_info2_0;
5531 TALLOC_CTX *_mem_save_info3_0;
5532 TALLOC_CTX *_mem_save_info4_0;
5533 level = ndr_pull_get_switch_value(ndr, r);
5534 if (ndr_flags & NDR_SCALARS) {
5535 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5536 if (_level != level) {
5537 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5539 switch (level) {
5540 case 1: {
5541 uint32_t _ptr_info1;
5542 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
5543 if (_ptr_info1) {
5544 NDR_PULL_ALLOC(ndr, r->info1);
5545 } else {
5546 r->info1 = NULL;
5548 break; }
5550 case 2: {
5551 uint32_t _ptr_info2;
5552 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
5553 if (_ptr_info2) {
5554 NDR_PULL_ALLOC(ndr, r->info2);
5555 } else {
5556 r->info2 = NULL;
5558 break; }
5560 case 3: {
5561 uint32_t _ptr_info3;
5562 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
5563 if (_ptr_info3) {
5564 NDR_PULL_ALLOC(ndr, r->info3);
5565 } else {
5566 r->info3 = NULL;
5568 break; }
5570 case 4: {
5571 uint32_t _ptr_info4;
5572 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
5573 if (_ptr_info4) {
5574 NDR_PULL_ALLOC(ndr, r->info4);
5575 } else {
5576 r->info4 = NULL;
5578 break; }
5580 default: {
5581 break; }
5585 if (ndr_flags & NDR_BUFFERS) {
5586 switch (level) {
5587 case 1:
5588 if (r->info1) {
5589 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
5590 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
5591 NDR_CHECK(ndr_pull_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
5592 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
5594 break;
5596 case 2:
5597 if (r->info2) {
5598 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
5599 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
5600 NDR_CHECK(ndr_pull_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5601 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
5603 break;
5605 case 3:
5606 if (r->info3) {
5607 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
5608 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
5609 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
5610 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
5612 break;
5614 case 4:
5615 if (r->info4) {
5616 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
5617 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
5618 NDR_CHECK(ndr_pull_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
5619 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
5621 break;
5623 default:
5624 break;
5628 return NDR_ERR_SUCCESS;
5631 _PUBLIC_ void ndr_print_spoolss_SetJobInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetJobInfo *r)
5633 int level;
5634 level = ndr_print_get_switch_value(ndr, r);
5635 ndr_print_union(ndr, name, level, "spoolss_SetJobInfo");
5636 switch (level) {
5637 case 1:
5638 ndr_print_ptr(ndr, "info1", r->info1);
5639 ndr->depth++;
5640 if (r->info1) {
5641 ndr_print_spoolss_SetJobInfo1(ndr, "info1", r->info1);
5643 ndr->depth--;
5644 break;
5646 case 2:
5647 ndr_print_ptr(ndr, "info2", r->info2);
5648 ndr->depth++;
5649 if (r->info2) {
5650 ndr_print_spoolss_SetJobInfo2(ndr, "info2", r->info2);
5652 ndr->depth--;
5653 break;
5655 case 3:
5656 ndr_print_ptr(ndr, "info3", r->info3);
5657 ndr->depth++;
5658 if (r->info3) {
5659 ndr_print_spoolss_JobInfo3(ndr, "info3", r->info3);
5661 ndr->depth--;
5662 break;
5664 case 4:
5665 ndr_print_ptr(ndr, "info4", r->info4);
5666 ndr->depth++;
5667 if (r->info4) {
5668 ndr_print_spoolss_SetJobInfo4(ndr, "info4", r->info4);
5670 ndr->depth--;
5671 break;
5673 default:
5674 break;
5679 static enum ndr_err_code ndr_push_spoolss_JobInfoContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfoContainer *r)
5681 if (ndr_flags & NDR_SCALARS) {
5682 NDR_CHECK(ndr_push_align(ndr, 4));
5683 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
5684 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
5685 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
5687 if (ndr_flags & NDR_BUFFERS) {
5688 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
5690 return NDR_ERR_SUCCESS;
5693 static enum ndr_err_code ndr_pull_spoolss_JobInfoContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfoContainer *r)
5695 if (ndr_flags & NDR_SCALARS) {
5696 NDR_CHECK(ndr_pull_align(ndr, 4));
5697 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
5698 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
5699 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
5701 if (ndr_flags & NDR_BUFFERS) {
5702 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
5704 return NDR_ERR_SUCCESS;
5707 _PUBLIC_ void ndr_print_spoolss_JobInfoContainer(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfoContainer *r)
5709 ndr_print_struct(ndr, name, "spoolss_JobInfoContainer");
5710 ndr->depth++;
5711 ndr_print_uint32(ndr, "level", r->level);
5712 ndr_print_set_switch_value(ndr, &r->info, r->level);
5713 ndr_print_spoolss_SetJobInfo(ndr, "info", &r->info);
5714 ndr->depth--;
5717 static enum ndr_err_code ndr_push_spoolss_JobControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobControl r)
5719 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5720 return NDR_ERR_SUCCESS;
5723 static enum ndr_err_code ndr_pull_spoolss_JobControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobControl *r)
5725 uint32_t v;
5726 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5727 *r = v;
5728 return NDR_ERR_SUCCESS;
5731 _PUBLIC_ void ndr_print_spoolss_JobControl(struct ndr_print *ndr, const char *name, enum spoolss_JobControl r)
5733 const char *val = NULL;
5735 switch (r) {
5736 case SPOOLSS_JOB_CONTROL_PAUSE: val = "SPOOLSS_JOB_CONTROL_PAUSE"; break;
5737 case SPOOLSS_JOB_CONTROL_RESUME: val = "SPOOLSS_JOB_CONTROL_RESUME"; break;
5738 case SPOOLSS_JOB_CONTROL_CANCEL: val = "SPOOLSS_JOB_CONTROL_CANCEL"; break;
5739 case SPOOLSS_JOB_CONTROL_RESTART: val = "SPOOLSS_JOB_CONTROL_RESTART"; break;
5740 case SPOOLSS_JOB_CONTROL_DELETE: val = "SPOOLSS_JOB_CONTROL_DELETE"; break;
5741 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER: val = "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
5742 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED: val = "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
5743 case SPOOLSS_JOB_CONTROL_RETAIN: val = "SPOOLSS_JOB_CONTROL_RETAIN"; break;
5744 case SPOOLSS_JOB_CONTROL_RELEASE: val = "SPOOLSS_JOB_CONTROL_RELEASE"; break;
5746 ndr_print_enum(ndr, name, "ENUM", val, r);
5749 static enum ndr_err_code ndr_push_spoolss_PrinterControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterControl r)
5751 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5752 return NDR_ERR_SUCCESS;
5755 static enum ndr_err_code ndr_pull_spoolss_PrinterControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterControl *r)
5757 uint32_t v;
5758 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5759 *r = v;
5760 return NDR_ERR_SUCCESS;
5763 _PUBLIC_ void ndr_print_spoolss_PrinterControl(struct ndr_print *ndr, const char *name, enum spoolss_PrinterControl r)
5765 const char *val = NULL;
5767 switch (r) {
5768 case SPOOLSS_PRINTER_CONTROL_UNPAUSE: val = "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
5769 case SPOOLSS_PRINTER_CONTROL_PAUSE: val = "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
5770 case SPOOLSS_PRINTER_CONTROL_RESUME: val = "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
5771 case SPOOLSS_PRINTER_CONTROL_PURGE: val = "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
5772 case SPOOLSS_PRINTER_CONTROL_SET_STATUS: val = "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
5774 ndr_print_enum(ndr, name, "ENUM", val, r);
5777 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo0 *r)
5779 if (ndr_flags & NDR_SCALARS) {
5780 NDR_CHECK(ndr_push_align(ndr, 4));
5781 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
5782 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
5783 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
5784 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
5785 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
5786 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
5787 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
5788 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5789 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
5790 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
5791 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
5792 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
5793 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
5794 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
5795 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
5796 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_error));
5797 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
5798 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
5799 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
5800 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
5801 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
5802 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status));
5803 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
5804 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
5805 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
5806 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
5807 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
5808 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
5809 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
5811 if (ndr_flags & NDR_BUFFERS) {
5812 if (r->servername) {
5813 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
5814 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5815 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
5816 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5818 if (r->printername) {
5819 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
5820 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5821 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
5822 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5825 return NDR_ERR_SUCCESS;
5828 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo0 *r)
5830 uint32_t _ptr_servername;
5831 TALLOC_CTX *_mem_save_servername_0;
5832 uint32_t _ptr_printername;
5833 TALLOC_CTX *_mem_save_printername_0;
5834 if (ndr_flags & NDR_SCALARS) {
5835 NDR_CHECK(ndr_pull_align(ndr, 4));
5836 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
5837 if (_ptr_servername) {
5838 NDR_PULL_ALLOC(ndr, r->servername);
5839 } else {
5840 r->servername = NULL;
5842 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
5843 if (_ptr_printername) {
5844 NDR_PULL_ALLOC(ndr, r->printername);
5845 } else {
5846 r->printername = NULL;
5848 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
5849 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
5850 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
5851 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
5852 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
5853 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5854 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
5855 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
5856 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
5857 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
5858 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
5859 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
5860 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
5861 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_error));
5862 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
5863 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
5864 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
5865 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
5866 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
5867 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status));
5868 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
5869 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
5870 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
5871 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
5872 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
5873 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
5874 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
5876 if (ndr_flags & NDR_BUFFERS) {
5877 if (r->servername) {
5878 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
5879 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
5880 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
5881 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
5882 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
5883 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));
5885 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
5886 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
5887 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
5889 if (r->printername) {
5890 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
5891 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
5892 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
5893 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
5894 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
5895 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));
5897 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
5898 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
5899 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
5902 return NDR_ERR_SUCCESS;
5905 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo0 *r)
5907 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo0");
5908 ndr->depth++;
5909 ndr_print_ptr(ndr, "servername", r->servername);
5910 ndr->depth++;
5911 if (r->servername) {
5912 ndr_print_string(ndr, "servername", r->servername);
5914 ndr->depth--;
5915 ndr_print_ptr(ndr, "printername", r->printername);
5916 ndr->depth++;
5917 if (r->printername) {
5918 ndr_print_string(ndr, "printername", r->printername);
5920 ndr->depth--;
5921 ndr_print_uint32(ndr, "cjobs", r->cjobs);
5922 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
5923 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
5924 ndr_print_spoolss_Time(ndr, "time", &r->time);
5925 ndr_print_uint32(ndr, "global_counter", r->global_counter);
5926 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5927 ndr_print_uint32(ndr, "version", r->version);
5928 ndr_print_uint32(ndr, "free_build", r->free_build);
5929 ndr_print_uint32(ndr, "spooling", r->spooling);
5930 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
5931 ndr_print_uint32(ndr, "session_counter", r->session_counter);
5932 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
5933 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
5934 ndr_print_uint32(ndr, "job_error", r->job_error);
5935 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
5936 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
5937 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
5938 ndr_print_uint32(ndr, "change_id", r->change_id);
5939 ndr_print_WERROR(ndr, "last_error", r->last_error);
5940 ndr_print_uint32(ndr, "status", r->status);
5941 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
5942 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
5943 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
5944 ndr_print_uint16(ndr, "processor_level", r->processor_level);
5945 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
5946 ndr_print_uint32(ndr, "reserved2", r->reserved2);
5947 ndr_print_uint32(ndr, "reserved3", r->reserved3);
5948 ndr->depth--;
5951 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo1 *r)
5953 if (ndr_flags & NDR_SCALARS) {
5954 NDR_CHECK(ndr_push_align(ndr, 4));
5955 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->flags));
5956 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
5957 NDR_CHECK(ndr_push_unique_ptr(ndr, r->description));
5958 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
5960 if (ndr_flags & NDR_BUFFERS) {
5961 if (r->name) {
5962 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
5963 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5964 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
5965 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5967 if (r->description) {
5968 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
5969 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5970 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
5971 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->description, ndr_charset_length(r->description, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5973 if (r->comment) {
5974 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
5975 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5976 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
5977 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5980 return NDR_ERR_SUCCESS;
5983 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo1 *r)
5985 uint32_t _ptr_name;
5986 TALLOC_CTX *_mem_save_name_0;
5987 uint32_t _ptr_description;
5988 TALLOC_CTX *_mem_save_description_0;
5989 uint32_t _ptr_comment;
5990 TALLOC_CTX *_mem_save_comment_0;
5991 if (ndr_flags & NDR_SCALARS) {
5992 NDR_CHECK(ndr_pull_align(ndr, 4));
5993 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->flags));
5994 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
5995 if (_ptr_name) {
5996 NDR_PULL_ALLOC(ndr, r->name);
5997 } else {
5998 r->name = NULL;
6000 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
6001 if (_ptr_description) {
6002 NDR_PULL_ALLOC(ndr, r->description);
6003 } else {
6004 r->description = NULL;
6006 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
6007 if (_ptr_comment) {
6008 NDR_PULL_ALLOC(ndr, r->comment);
6009 } else {
6010 r->comment = NULL;
6013 if (ndr_flags & NDR_BUFFERS) {
6014 if (r->name) {
6015 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6016 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
6017 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
6018 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
6019 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
6020 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));
6022 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
6023 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
6024 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
6026 if (r->description) {
6027 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
6028 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
6029 NDR_CHECK(ndr_pull_array_size(ndr, &r->description));
6030 NDR_CHECK(ndr_pull_array_length(ndr, &r->description));
6031 if (ndr_get_array_length(ndr, &r->description) > ndr_get_array_size(ndr, &r->description)) {
6032 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));
6034 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t)));
6035 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->description, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t), CH_UTF16));
6036 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
6038 if (r->comment) {
6039 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
6040 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
6041 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
6042 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
6043 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
6044 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));
6046 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
6047 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
6048 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
6051 return NDR_ERR_SUCCESS;
6054 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo1 *r)
6056 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo1");
6057 ndr->depth++;
6058 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->flags);
6059 ndr_print_ptr(ndr, "name", r->name);
6060 ndr->depth++;
6061 if (r->name) {
6062 ndr_print_string(ndr, "name", r->name);
6064 ndr->depth--;
6065 ndr_print_ptr(ndr, "description", r->description);
6066 ndr->depth++;
6067 if (r->description) {
6068 ndr_print_string(ndr, "description", r->description);
6070 ndr->depth--;
6071 ndr_print_ptr(ndr, "comment", r->comment);
6072 ndr->depth++;
6073 if (r->comment) {
6074 ndr_print_string(ndr, "comment", r->comment);
6076 ndr->depth--;
6077 ndr->depth--;
6080 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo2 *r)
6082 if (ndr_flags & NDR_SCALARS) {
6083 NDR_CHECK(ndr_push_align(ndr, 4));
6084 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6085 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6086 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sharename));
6087 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
6088 NDR_CHECK(ndr_push_unique_ptr(ndr, r->drivername));
6089 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
6090 NDR_CHECK(ndr_push_unique_ptr(ndr, r->location));
6091 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
6092 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sepfile));
6093 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printprocessor));
6094 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
6095 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
6096 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secdesc));
6097 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
6098 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
6099 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
6100 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
6101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
6102 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
6103 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
6104 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
6106 if (ndr_flags & NDR_BUFFERS) {
6107 if (r->servername) {
6108 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6109 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6110 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6111 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6113 if (r->printername) {
6114 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6115 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6116 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6117 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6119 if (r->sharename) {
6120 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
6121 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6122 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
6123 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sharename, ndr_charset_length(r->sharename, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6125 if (r->portname) {
6126 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6127 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6128 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6129 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6131 if (r->drivername) {
6132 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
6133 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6134 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
6135 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->drivername, ndr_charset_length(r->drivername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6137 if (r->comment) {
6138 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6139 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6140 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6141 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6143 if (r->location) {
6144 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
6145 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6146 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
6147 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->location, ndr_charset_length(r->location, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6149 if (r->devmode) {
6151 struct ndr_push *_ndr_devmode;
6152 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
6153 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
6154 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
6157 if (r->sepfile) {
6158 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
6159 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6160 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
6161 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sepfile, ndr_charset_length(r->sepfile, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6163 if (r->printprocessor) {
6164 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
6165 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6166 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
6167 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printprocessor, ndr_charset_length(r->printprocessor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6169 if (r->datatype) {
6170 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
6171 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6172 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
6173 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6175 if (r->parameters) {
6176 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6177 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6178 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6179 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6181 if (r->secdesc) {
6183 struct ndr_push *_ndr_secdesc;
6184 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
6185 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
6186 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
6190 return NDR_ERR_SUCCESS;
6193 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo2 *r)
6195 uint32_t _ptr_servername;
6196 TALLOC_CTX *_mem_save_servername_0;
6197 uint32_t _ptr_printername;
6198 TALLOC_CTX *_mem_save_printername_0;
6199 uint32_t _ptr_sharename;
6200 TALLOC_CTX *_mem_save_sharename_0;
6201 uint32_t _ptr_portname;
6202 TALLOC_CTX *_mem_save_portname_0;
6203 uint32_t _ptr_drivername;
6204 TALLOC_CTX *_mem_save_drivername_0;
6205 uint32_t _ptr_comment;
6206 TALLOC_CTX *_mem_save_comment_0;
6207 uint32_t _ptr_location;
6208 TALLOC_CTX *_mem_save_location_0;
6209 uint32_t _ptr_devmode;
6210 TALLOC_CTX *_mem_save_devmode_0;
6211 uint32_t _ptr_sepfile;
6212 TALLOC_CTX *_mem_save_sepfile_0;
6213 uint32_t _ptr_printprocessor;
6214 TALLOC_CTX *_mem_save_printprocessor_0;
6215 uint32_t _ptr_datatype;
6216 TALLOC_CTX *_mem_save_datatype_0;
6217 uint32_t _ptr_parameters;
6218 TALLOC_CTX *_mem_save_parameters_0;
6219 uint32_t _ptr_secdesc;
6220 TALLOC_CTX *_mem_save_secdesc_0;
6221 if (ndr_flags & NDR_SCALARS) {
6222 NDR_CHECK(ndr_pull_align(ndr, 4));
6223 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6224 if (_ptr_servername) {
6225 NDR_PULL_ALLOC(ndr, r->servername);
6226 } else {
6227 r->servername = NULL;
6229 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6230 if (_ptr_printername) {
6231 NDR_PULL_ALLOC(ndr, r->printername);
6232 } else {
6233 r->printername = NULL;
6235 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
6236 if (_ptr_sharename) {
6237 NDR_PULL_ALLOC(ndr, r->sharename);
6238 } else {
6239 r->sharename = NULL;
6241 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
6242 if (_ptr_portname) {
6243 NDR_PULL_ALLOC(ndr, r->portname);
6244 } else {
6245 r->portname = NULL;
6247 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
6248 if (_ptr_drivername) {
6249 NDR_PULL_ALLOC(ndr, r->drivername);
6250 } else {
6251 r->drivername = NULL;
6253 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
6254 if (_ptr_comment) {
6255 NDR_PULL_ALLOC(ndr, r->comment);
6256 } else {
6257 r->comment = NULL;
6259 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
6260 if (_ptr_location) {
6261 NDR_PULL_ALLOC(ndr, r->location);
6262 } else {
6263 r->location = NULL;
6265 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
6266 if (_ptr_devmode) {
6267 NDR_PULL_ALLOC(ndr, r->devmode);
6268 } else {
6269 r->devmode = NULL;
6271 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
6272 if (_ptr_sepfile) {
6273 NDR_PULL_ALLOC(ndr, r->sepfile);
6274 } else {
6275 r->sepfile = NULL;
6277 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
6278 if (_ptr_printprocessor) {
6279 NDR_PULL_ALLOC(ndr, r->printprocessor);
6280 } else {
6281 r->printprocessor = NULL;
6283 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
6284 if (_ptr_datatype) {
6285 NDR_PULL_ALLOC(ndr, r->datatype);
6286 } else {
6287 r->datatype = NULL;
6289 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
6290 if (_ptr_parameters) {
6291 NDR_PULL_ALLOC(ndr, r->parameters);
6292 } else {
6293 r->parameters = NULL;
6295 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
6296 if (_ptr_secdesc) {
6297 NDR_PULL_ALLOC(ndr, r->secdesc);
6298 } else {
6299 r->secdesc = NULL;
6301 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
6302 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
6303 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
6304 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
6305 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
6306 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
6307 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
6308 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
6310 if (ndr_flags & NDR_BUFFERS) {
6311 if (r->servername) {
6312 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6313 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
6314 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
6315 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
6316 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
6317 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));
6319 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
6320 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
6321 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
6323 if (r->printername) {
6324 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6325 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6326 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6327 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6328 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6329 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));
6331 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6332 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
6333 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6335 if (r->sharename) {
6336 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
6337 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
6338 NDR_CHECK(ndr_pull_array_size(ndr, &r->sharename));
6339 NDR_CHECK(ndr_pull_array_length(ndr, &r->sharename));
6340 if (ndr_get_array_length(ndr, &r->sharename) > ndr_get_array_size(ndr, &r->sharename)) {
6341 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));
6343 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t)));
6344 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sharename, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t), CH_UTF16));
6345 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
6347 if (r->portname) {
6348 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
6349 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
6350 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
6351 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
6352 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
6353 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));
6355 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
6356 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
6357 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
6359 if (r->drivername) {
6360 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6361 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
6362 NDR_CHECK(ndr_pull_array_size(ndr, &r->drivername));
6363 NDR_CHECK(ndr_pull_array_length(ndr, &r->drivername));
6364 if (ndr_get_array_length(ndr, &r->drivername) > ndr_get_array_size(ndr, &r->drivername)) {
6365 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));
6367 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t)));
6368 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->drivername, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t), CH_UTF16));
6369 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
6371 if (r->comment) {
6372 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
6373 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
6374 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
6375 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
6376 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
6377 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));
6379 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
6380 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
6381 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
6383 if (r->location) {
6384 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
6385 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
6386 NDR_CHECK(ndr_pull_array_size(ndr, &r->location));
6387 NDR_CHECK(ndr_pull_array_length(ndr, &r->location));
6388 if (ndr_get_array_length(ndr, &r->location) > ndr_get_array_size(ndr, &r->location)) {
6389 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));
6391 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t)));
6392 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->location, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t), CH_UTF16));
6393 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
6395 if (r->devmode) {
6396 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
6397 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
6399 struct ndr_pull *_ndr_devmode;
6400 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
6401 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
6402 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
6404 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
6406 if (r->sepfile) {
6407 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
6408 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
6409 NDR_CHECK(ndr_pull_array_size(ndr, &r->sepfile));
6410 NDR_CHECK(ndr_pull_array_length(ndr, &r->sepfile));
6411 if (ndr_get_array_length(ndr, &r->sepfile) > ndr_get_array_size(ndr, &r->sepfile)) {
6412 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));
6414 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t)));
6415 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sepfile, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t), CH_UTF16));
6416 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
6418 if (r->printprocessor) {
6419 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
6420 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
6421 NDR_CHECK(ndr_pull_array_size(ndr, &r->printprocessor));
6422 NDR_CHECK(ndr_pull_array_length(ndr, &r->printprocessor));
6423 if (ndr_get_array_length(ndr, &r->printprocessor) > ndr_get_array_size(ndr, &r->printprocessor)) {
6424 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));
6426 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t)));
6427 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printprocessor, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t), CH_UTF16));
6428 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
6430 if (r->datatype) {
6431 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
6432 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
6433 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
6434 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
6435 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
6436 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));
6438 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
6439 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
6440 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
6442 if (r->parameters) {
6443 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
6444 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
6445 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
6446 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
6447 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
6448 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));
6450 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
6451 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
6452 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
6454 if (r->secdesc) {
6455 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
6456 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
6458 struct ndr_pull *_ndr_secdesc;
6459 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
6460 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
6461 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
6463 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
6466 return NDR_ERR_SUCCESS;
6469 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo2 *r)
6471 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo2");
6472 ndr->depth++;
6473 ndr_print_ptr(ndr, "servername", r->servername);
6474 ndr->depth++;
6475 if (r->servername) {
6476 ndr_print_string(ndr, "servername", r->servername);
6478 ndr->depth--;
6479 ndr_print_ptr(ndr, "printername", r->printername);
6480 ndr->depth++;
6481 if (r->printername) {
6482 ndr_print_string(ndr, "printername", r->printername);
6484 ndr->depth--;
6485 ndr_print_ptr(ndr, "sharename", r->sharename);
6486 ndr->depth++;
6487 if (r->sharename) {
6488 ndr_print_string(ndr, "sharename", r->sharename);
6490 ndr->depth--;
6491 ndr_print_ptr(ndr, "portname", r->portname);
6492 ndr->depth++;
6493 if (r->portname) {
6494 ndr_print_string(ndr, "portname", r->portname);
6496 ndr->depth--;
6497 ndr_print_ptr(ndr, "drivername", r->drivername);
6498 ndr->depth++;
6499 if (r->drivername) {
6500 ndr_print_string(ndr, "drivername", r->drivername);
6502 ndr->depth--;
6503 ndr_print_ptr(ndr, "comment", r->comment);
6504 ndr->depth++;
6505 if (r->comment) {
6506 ndr_print_string(ndr, "comment", r->comment);
6508 ndr->depth--;
6509 ndr_print_ptr(ndr, "location", r->location);
6510 ndr->depth++;
6511 if (r->location) {
6512 ndr_print_string(ndr, "location", r->location);
6514 ndr->depth--;
6515 ndr_print_ptr(ndr, "devmode", r->devmode);
6516 ndr->depth++;
6517 if (r->devmode) {
6518 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
6520 ndr->depth--;
6521 ndr_print_ptr(ndr, "sepfile", r->sepfile);
6522 ndr->depth++;
6523 if (r->sepfile) {
6524 ndr_print_string(ndr, "sepfile", r->sepfile);
6526 ndr->depth--;
6527 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
6528 ndr->depth++;
6529 if (r->printprocessor) {
6530 ndr_print_string(ndr, "printprocessor", r->printprocessor);
6532 ndr->depth--;
6533 ndr_print_ptr(ndr, "datatype", r->datatype);
6534 ndr->depth++;
6535 if (r->datatype) {
6536 ndr_print_string(ndr, "datatype", r->datatype);
6538 ndr->depth--;
6539 ndr_print_ptr(ndr, "parameters", r->parameters);
6540 ndr->depth++;
6541 if (r->parameters) {
6542 ndr_print_string(ndr, "parameters", r->parameters);
6544 ndr->depth--;
6545 ndr_print_ptr(ndr, "secdesc", r->secdesc);
6546 ndr->depth++;
6547 if (r->secdesc) {
6548 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
6550 ndr->depth--;
6551 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
6552 ndr_print_uint32(ndr, "priority", r->priority);
6553 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
6554 ndr_print_uint32(ndr, "starttime", r->starttime);
6555 ndr_print_uint32(ndr, "untiltime", r->untiltime);
6556 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
6557 ndr_print_uint32(ndr, "cjobs", r->cjobs);
6558 ndr_print_uint32(ndr, "averageppm", r->averageppm);
6559 ndr->depth--;
6562 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo3 *r)
6564 if (ndr_flags & NDR_SCALARS) {
6565 NDR_CHECK(ndr_push_align(ndr, 4));
6566 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sec_desc_ptr));
6568 if (ndr_flags & NDR_BUFFERS) {
6570 return NDR_ERR_SUCCESS;
6573 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo3 *r)
6575 if (ndr_flags & NDR_SCALARS) {
6576 NDR_CHECK(ndr_pull_align(ndr, 4));
6577 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sec_desc_ptr));
6579 if (ndr_flags & NDR_BUFFERS) {
6581 return NDR_ERR_SUCCESS;
6584 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo3 *r)
6586 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo3");
6587 ndr->depth++;
6588 ndr_print_uint32(ndr, "sec_desc_ptr", r->sec_desc_ptr);
6589 ndr->depth--;
6592 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo4 *r)
6594 if (ndr_flags & NDR_SCALARS) {
6595 NDR_CHECK(ndr_push_align(ndr, 4));
6596 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6597 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6598 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
6600 if (ndr_flags & NDR_BUFFERS) {
6601 if (r->printername) {
6602 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6603 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6604 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6605 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6607 if (r->servername) {
6608 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6609 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6610 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6611 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6614 return NDR_ERR_SUCCESS;
6617 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo4 *r)
6619 uint32_t _ptr_printername;
6620 TALLOC_CTX *_mem_save_printername_0;
6621 uint32_t _ptr_servername;
6622 TALLOC_CTX *_mem_save_servername_0;
6623 if (ndr_flags & NDR_SCALARS) {
6624 NDR_CHECK(ndr_pull_align(ndr, 4));
6625 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6626 if (_ptr_printername) {
6627 NDR_PULL_ALLOC(ndr, r->printername);
6628 } else {
6629 r->printername = NULL;
6631 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6632 if (_ptr_servername) {
6633 NDR_PULL_ALLOC(ndr, r->servername);
6634 } else {
6635 r->servername = NULL;
6637 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
6639 if (ndr_flags & NDR_BUFFERS) {
6640 if (r->printername) {
6641 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6642 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6643 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6644 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6645 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6646 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));
6648 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6649 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
6650 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6652 if (r->servername) {
6653 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6654 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
6655 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
6656 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
6657 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
6658 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));
6660 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
6661 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
6662 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
6665 return NDR_ERR_SUCCESS;
6668 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo4 *r)
6670 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo4");
6671 ndr->depth++;
6672 ndr_print_ptr(ndr, "printername", r->printername);
6673 ndr->depth++;
6674 if (r->printername) {
6675 ndr_print_string(ndr, "printername", r->printername);
6677 ndr->depth--;
6678 ndr_print_ptr(ndr, "servername", r->servername);
6679 ndr->depth++;
6680 if (r->servername) {
6681 ndr_print_string(ndr, "servername", r->servername);
6683 ndr->depth--;
6684 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
6685 ndr->depth--;
6688 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo5 *r)
6690 if (ndr_flags & NDR_SCALARS) {
6691 NDR_CHECK(ndr_push_align(ndr, 4));
6692 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6693 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
6694 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
6695 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
6696 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
6698 if (ndr_flags & NDR_BUFFERS) {
6699 if (r->printername) {
6700 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6701 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6702 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6703 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6705 if (r->portname) {
6706 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6707 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6708 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6709 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6712 return NDR_ERR_SUCCESS;
6715 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo5 *r)
6717 uint32_t _ptr_printername;
6718 TALLOC_CTX *_mem_save_printername_0;
6719 uint32_t _ptr_portname;
6720 TALLOC_CTX *_mem_save_portname_0;
6721 if (ndr_flags & NDR_SCALARS) {
6722 NDR_CHECK(ndr_pull_align(ndr, 4));
6723 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6724 if (_ptr_printername) {
6725 NDR_PULL_ALLOC(ndr, r->printername);
6726 } else {
6727 r->printername = NULL;
6729 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
6730 if (_ptr_portname) {
6731 NDR_PULL_ALLOC(ndr, r->portname);
6732 } else {
6733 r->portname = NULL;
6735 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
6736 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
6737 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
6739 if (ndr_flags & NDR_BUFFERS) {
6740 if (r->printername) {
6741 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6742 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6743 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6744 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6745 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6746 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));
6748 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6749 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
6750 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6752 if (r->portname) {
6753 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
6754 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
6755 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
6756 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
6757 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
6758 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));
6760 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
6761 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
6762 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
6765 return NDR_ERR_SUCCESS;
6768 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo5 *r)
6770 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo5");
6771 ndr->depth++;
6772 ndr_print_ptr(ndr, "printername", r->printername);
6773 ndr->depth++;
6774 if (r->printername) {
6775 ndr_print_string(ndr, "printername", r->printername);
6777 ndr->depth--;
6778 ndr_print_ptr(ndr, "portname", r->portname);
6779 ndr->depth++;
6780 if (r->portname) {
6781 ndr_print_string(ndr, "portname", r->portname);
6783 ndr->depth--;
6784 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
6785 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
6786 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
6787 ndr->depth--;
6790 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo6 *r)
6792 if (ndr_flags & NDR_SCALARS) {
6793 NDR_CHECK(ndr_push_align(ndr, 4));
6794 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
6796 if (ndr_flags & NDR_BUFFERS) {
6798 return NDR_ERR_SUCCESS;
6801 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo6 *r)
6803 if (ndr_flags & NDR_SCALARS) {
6804 NDR_CHECK(ndr_pull_align(ndr, 4));
6805 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
6807 if (ndr_flags & NDR_BUFFERS) {
6809 return NDR_ERR_SUCCESS;
6812 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo6 *r)
6814 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo6");
6815 ndr->depth++;
6816 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
6817 ndr->depth--;
6820 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo7 *r)
6822 if (ndr_flags & NDR_SCALARS) {
6823 NDR_CHECK(ndr_push_align(ndr, 4));
6824 NDR_CHECK(ndr_push_unique_ptr(ndr, r->guid));
6825 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
6827 if (ndr_flags & NDR_BUFFERS) {
6828 if (r->guid) {
6829 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
6830 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6831 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
6832 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->guid, ndr_charset_length(r->guid, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6835 return NDR_ERR_SUCCESS;
6838 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo7 *r)
6840 uint32_t _ptr_guid;
6841 TALLOC_CTX *_mem_save_guid_0;
6842 if (ndr_flags & NDR_SCALARS) {
6843 NDR_CHECK(ndr_pull_align(ndr, 4));
6844 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
6845 if (_ptr_guid) {
6846 NDR_PULL_ALLOC(ndr, r->guid);
6847 } else {
6848 r->guid = NULL;
6850 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
6852 if (ndr_flags & NDR_BUFFERS) {
6853 if (r->guid) {
6854 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
6855 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
6856 NDR_CHECK(ndr_pull_array_size(ndr, &r->guid));
6857 NDR_CHECK(ndr_pull_array_length(ndr, &r->guid));
6858 if (ndr_get_array_length(ndr, &r->guid) > ndr_get_array_size(ndr, &r->guid)) {
6859 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));
6861 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t)));
6862 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->guid, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t), CH_UTF16));
6863 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
6866 return NDR_ERR_SUCCESS;
6869 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo7 *r)
6871 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo7");
6872 ndr->depth++;
6873 ndr_print_ptr(ndr, "guid", r->guid);
6874 ndr->depth++;
6875 if (r->guid) {
6876 ndr_print_string(ndr, "guid", r->guid);
6878 ndr->depth--;
6879 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
6880 ndr->depth--;
6883 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetPrinterInfo *r)
6885 if (ndr_flags & NDR_SCALARS) {
6886 int level = ndr_push_get_switch_value(ndr, r);
6887 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6888 switch (level) {
6889 case 0: {
6890 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
6891 break; }
6893 case 1: {
6894 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
6895 break; }
6897 case 2: {
6898 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
6899 break; }
6901 case 3: {
6902 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
6903 break; }
6905 case 4: {
6906 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
6907 break; }
6909 case 5: {
6910 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info5));
6911 break; }
6913 case 6: {
6914 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
6915 break; }
6917 case 7: {
6918 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info7));
6919 break; }
6921 case 8: {
6922 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
6923 break; }
6925 case 9: {
6926 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info9));
6927 break; }
6929 default: {
6930 break; }
6934 if (ndr_flags & NDR_BUFFERS) {
6935 int level = ndr_push_get_switch_value(ndr, r);
6936 switch (level) {
6937 case 0:
6938 if (r->info0) {
6939 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
6941 break;
6943 case 1:
6944 if (r->info1) {
6945 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6947 break;
6949 case 2:
6950 if (r->info2) {
6951 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6953 break;
6955 case 3:
6956 if (r->info3) {
6957 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
6959 break;
6961 case 4:
6962 if (r->info4) {
6963 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6965 break;
6967 case 5:
6968 if (r->info5) {
6969 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
6971 break;
6973 case 6:
6974 if (r->info6) {
6975 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
6977 break;
6979 case 7:
6980 if (r->info7) {
6981 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
6983 break;
6985 case 8:
6986 if (r->info8) {
6987 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
6989 break;
6991 case 9:
6992 if (r->info9) {
6993 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
6995 break;
6997 default:
6998 break;
7002 return NDR_ERR_SUCCESS;
7005 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetPrinterInfo *r)
7007 int level;
7008 uint32_t _level;
7009 TALLOC_CTX *_mem_save_info0_0;
7010 TALLOC_CTX *_mem_save_info1_0;
7011 TALLOC_CTX *_mem_save_info2_0;
7012 TALLOC_CTX *_mem_save_info3_0;
7013 TALLOC_CTX *_mem_save_info4_0;
7014 TALLOC_CTX *_mem_save_info5_0;
7015 TALLOC_CTX *_mem_save_info6_0;
7016 TALLOC_CTX *_mem_save_info7_0;
7017 TALLOC_CTX *_mem_save_info8_0;
7018 TALLOC_CTX *_mem_save_info9_0;
7019 level = ndr_pull_get_switch_value(ndr, r);
7020 if (ndr_flags & NDR_SCALARS) {
7021 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7022 if (_level != level) {
7023 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
7025 switch (level) {
7026 case 0: {
7027 uint32_t _ptr_info0;
7028 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
7029 if (_ptr_info0) {
7030 NDR_PULL_ALLOC(ndr, r->info0);
7031 } else {
7032 r->info0 = NULL;
7034 break; }
7036 case 1: {
7037 uint32_t _ptr_info1;
7038 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7039 if (_ptr_info1) {
7040 NDR_PULL_ALLOC(ndr, r->info1);
7041 } else {
7042 r->info1 = NULL;
7044 break; }
7046 case 2: {
7047 uint32_t _ptr_info2;
7048 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
7049 if (_ptr_info2) {
7050 NDR_PULL_ALLOC(ndr, r->info2);
7051 } else {
7052 r->info2 = NULL;
7054 break; }
7056 case 3: {
7057 uint32_t _ptr_info3;
7058 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
7059 if (_ptr_info3) {
7060 NDR_PULL_ALLOC(ndr, r->info3);
7061 } else {
7062 r->info3 = NULL;
7064 break; }
7066 case 4: {
7067 uint32_t _ptr_info4;
7068 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
7069 if (_ptr_info4) {
7070 NDR_PULL_ALLOC(ndr, r->info4);
7071 } else {
7072 r->info4 = NULL;
7074 break; }
7076 case 5: {
7077 uint32_t _ptr_info5;
7078 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info5));
7079 if (_ptr_info5) {
7080 NDR_PULL_ALLOC(ndr, r->info5);
7081 } else {
7082 r->info5 = NULL;
7084 break; }
7086 case 6: {
7087 uint32_t _ptr_info6;
7088 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
7089 if (_ptr_info6) {
7090 NDR_PULL_ALLOC(ndr, r->info6);
7091 } else {
7092 r->info6 = NULL;
7094 break; }
7096 case 7: {
7097 uint32_t _ptr_info7;
7098 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info7));
7099 if (_ptr_info7) {
7100 NDR_PULL_ALLOC(ndr, r->info7);
7101 } else {
7102 r->info7 = NULL;
7104 break; }
7106 case 8: {
7107 uint32_t _ptr_info8;
7108 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
7109 if (_ptr_info8) {
7110 NDR_PULL_ALLOC(ndr, r->info8);
7111 } else {
7112 r->info8 = NULL;
7114 break; }
7116 case 9: {
7117 uint32_t _ptr_info9;
7118 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info9));
7119 if (_ptr_info9) {
7120 NDR_PULL_ALLOC(ndr, r->info9);
7121 } else {
7122 r->info9 = NULL;
7124 break; }
7126 default: {
7127 break; }
7131 if (ndr_flags & NDR_BUFFERS) {
7132 switch (level) {
7133 case 0:
7134 if (r->info0) {
7135 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
7136 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
7137 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
7138 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
7140 break;
7142 case 1:
7143 if (r->info1) {
7144 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7145 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7146 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7147 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7149 break;
7151 case 2:
7152 if (r->info2) {
7153 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
7154 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
7155 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7156 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
7158 break;
7160 case 3:
7161 if (r->info3) {
7162 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
7163 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
7164 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
7165 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
7167 break;
7169 case 4:
7170 if (r->info4) {
7171 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
7172 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
7173 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
7174 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
7176 break;
7178 case 5:
7179 if (r->info5) {
7180 _mem_save_info5_0 = NDR_PULL_GET_MEM_CTX(ndr);
7181 NDR_PULL_SET_MEM_CTX(ndr, r->info5, 0);
7182 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
7183 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info5_0, 0);
7185 break;
7187 case 6:
7188 if (r->info6) {
7189 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
7190 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
7191 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
7192 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
7194 break;
7196 case 7:
7197 if (r->info7) {
7198 _mem_save_info7_0 = NDR_PULL_GET_MEM_CTX(ndr);
7199 NDR_PULL_SET_MEM_CTX(ndr, r->info7, 0);
7200 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
7201 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info7_0, 0);
7203 break;
7205 case 8:
7206 if (r->info8) {
7207 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
7208 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
7209 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
7210 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
7212 break;
7214 case 9:
7215 if (r->info9) {
7216 _mem_save_info9_0 = NDR_PULL_GET_MEM_CTX(ndr);
7217 NDR_PULL_SET_MEM_CTX(ndr, r->info9, 0);
7218 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
7219 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info9_0, 0);
7221 break;
7223 default:
7224 break;
7228 return NDR_ERR_SUCCESS;
7231 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetPrinterInfo *r)
7233 int level;
7234 level = ndr_print_get_switch_value(ndr, r);
7235 ndr_print_union(ndr, name, level, "spoolss_SetPrinterInfo");
7236 switch (level) {
7237 case 0:
7238 ndr_print_ptr(ndr, "info0", r->info0);
7239 ndr->depth++;
7240 if (r->info0) {
7241 ndr_print_spoolss_SetPrinterInfo0(ndr, "info0", r->info0);
7243 ndr->depth--;
7244 break;
7246 case 1:
7247 ndr_print_ptr(ndr, "info1", r->info1);
7248 ndr->depth++;
7249 if (r->info1) {
7250 ndr_print_spoolss_SetPrinterInfo1(ndr, "info1", r->info1);
7252 ndr->depth--;
7253 break;
7255 case 2:
7256 ndr_print_ptr(ndr, "info2", r->info2);
7257 ndr->depth++;
7258 if (r->info2) {
7259 ndr_print_spoolss_SetPrinterInfo2(ndr, "info2", r->info2);
7261 ndr->depth--;
7262 break;
7264 case 3:
7265 ndr_print_ptr(ndr, "info3", r->info3);
7266 ndr->depth++;
7267 if (r->info3) {
7268 ndr_print_spoolss_SetPrinterInfo3(ndr, "info3", r->info3);
7270 ndr->depth--;
7271 break;
7273 case 4:
7274 ndr_print_ptr(ndr, "info4", r->info4);
7275 ndr->depth++;
7276 if (r->info4) {
7277 ndr_print_spoolss_SetPrinterInfo4(ndr, "info4", r->info4);
7279 ndr->depth--;
7280 break;
7282 case 5:
7283 ndr_print_ptr(ndr, "info5", r->info5);
7284 ndr->depth++;
7285 if (r->info5) {
7286 ndr_print_spoolss_SetPrinterInfo5(ndr, "info5", r->info5);
7288 ndr->depth--;
7289 break;
7291 case 6:
7292 ndr_print_ptr(ndr, "info6", r->info6);
7293 ndr->depth++;
7294 if (r->info6) {
7295 ndr_print_spoolss_SetPrinterInfo6(ndr, "info6", r->info6);
7297 ndr->depth--;
7298 break;
7300 case 7:
7301 ndr_print_ptr(ndr, "info7", r->info7);
7302 ndr->depth++;
7303 if (r->info7) {
7304 ndr_print_spoolss_SetPrinterInfo7(ndr, "info7", r->info7);
7306 ndr->depth--;
7307 break;
7309 case 8:
7310 ndr_print_ptr(ndr, "info8", r->info8);
7311 ndr->depth++;
7312 if (r->info8) {
7313 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", r->info8);
7315 ndr->depth--;
7316 break;
7318 case 9:
7319 ndr_print_ptr(ndr, "info9", r->info9);
7320 ndr->depth++;
7321 if (r->info9) {
7322 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", r->info9);
7324 ndr->depth--;
7325 break;
7327 default:
7328 break;
7333 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfoCtr *r)
7335 if (ndr_flags & NDR_SCALARS) {
7336 NDR_CHECK(ndr_push_align(ndr, 4));
7337 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
7338 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
7339 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
7341 if (ndr_flags & NDR_BUFFERS) {
7342 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
7344 return NDR_ERR_SUCCESS;
7347 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfoCtr *r)
7349 if (ndr_flags & NDR_SCALARS) {
7350 NDR_CHECK(ndr_pull_align(ndr, 4));
7351 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
7352 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
7353 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
7355 if (ndr_flags & NDR_BUFFERS) {
7356 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
7358 return NDR_ERR_SUCCESS;
7361 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfoCtr *r)
7363 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfoCtr");
7364 ndr->depth++;
7365 ndr_print_uint32(ndr, "level", r->level);
7366 ndr_print_set_switch_value(ndr, &r->info, r->level);
7367 ndr_print_spoolss_SetPrinterInfo(ndr, "info", &r->info);
7368 ndr->depth--;
7371 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_StringArray(struct ndr_push *ndr, int ndr_flags, const struct spoolss_StringArray *r)
7373 if (ndr_flags & NDR_SCALARS) {
7374 NDR_CHECK(ndr_push_align(ndr, 4));
7375 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, (ndr_size_spoolss_StringArray(r, ndr->iconv_convenience, ndr->flags) - 4) / 2));
7377 uint32_t _flags_save_string_array = ndr->flags;
7378 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7379 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string));
7380 ndr->flags = _flags_save_string_array;
7383 if (ndr_flags & NDR_BUFFERS) {
7385 return NDR_ERR_SUCCESS;
7388 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_StringArray(struct ndr_pull *ndr, int ndr_flags, struct spoolss_StringArray *r)
7390 if (ndr_flags & NDR_SCALARS) {
7391 NDR_CHECK(ndr_pull_align(ndr, 4));
7392 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
7394 uint32_t _flags_save_string_array = ndr->flags;
7395 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7396 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string));
7397 ndr->flags = _flags_save_string_array;
7400 if (ndr_flags & NDR_BUFFERS) {
7402 return NDR_ERR_SUCCESS;
7405 _PUBLIC_ void ndr_print_spoolss_StringArray(struct ndr_print *ndr, const char *name, const struct spoolss_StringArray *r)
7407 ndr_print_struct(ndr, name, "spoolss_StringArray");
7408 ndr->depth++;
7409 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);
7410 ndr_print_string_array(ndr, "string", r->string);
7411 ndr->depth--;
7414 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo1 *r)
7416 if (ndr_flags & NDR_SCALARS) {
7417 NDR_CHECK(ndr_push_align(ndr, 4));
7418 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
7420 if (ndr_flags & NDR_BUFFERS) {
7421 if (r->driver_name) {
7422 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7423 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7424 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7425 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7428 return NDR_ERR_SUCCESS;
7431 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo1 *r)
7433 uint32_t _ptr_driver_name;
7434 TALLOC_CTX *_mem_save_driver_name_0;
7435 if (ndr_flags & NDR_SCALARS) {
7436 NDR_CHECK(ndr_pull_align(ndr, 4));
7437 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7438 if (_ptr_driver_name) {
7439 NDR_PULL_ALLOC(ndr, r->driver_name);
7440 } else {
7441 r->driver_name = NULL;
7444 if (ndr_flags & NDR_BUFFERS) {
7445 if (r->driver_name) {
7446 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7447 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7448 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
7449 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
7450 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
7451 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));
7453 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
7454 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
7455 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7458 return NDR_ERR_SUCCESS;
7461 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo1 *r)
7463 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo1");
7464 ndr->depth++;
7465 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7466 ndr->depth++;
7467 if (r->driver_name) {
7468 ndr_print_string(ndr, "driver_name", r->driver_name);
7470 ndr->depth--;
7471 ndr->depth--;
7474 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverOSVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverOSVersion r)
7476 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7477 return NDR_ERR_SUCCESS;
7480 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverOSVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverOSVersion *r)
7482 uint32_t v;
7483 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7484 *r = v;
7485 return NDR_ERR_SUCCESS;
7488 _PUBLIC_ void ndr_print_spoolss_DriverOSVersion(struct ndr_print *ndr, const char *name, enum spoolss_DriverOSVersion r)
7490 const char *val = NULL;
7492 switch (r) {
7493 case SPOOLSS_DRIVER_VERSION_9X: val = "SPOOLSS_DRIVER_VERSION_9X"; break;
7494 case SPOOLSS_DRIVER_VERSION_NT35: val = "SPOOLSS_DRIVER_VERSION_NT35"; break;
7495 case SPOOLSS_DRIVER_VERSION_NT4: val = "SPOOLSS_DRIVER_VERSION_NT4"; break;
7496 case SPOOLSS_DRIVER_VERSION_200X: val = "SPOOLSS_DRIVER_VERSION_200X"; break;
7498 ndr_print_enum(ndr, name, "ENUM", val, r);
7501 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo2 *r)
7503 if (ndr_flags & NDR_SCALARS) {
7504 NDR_CHECK(ndr_push_align(ndr, 4));
7505 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7506 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
7507 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
7508 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
7509 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
7510 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
7512 if (ndr_flags & NDR_BUFFERS) {
7513 if (r->driver_name) {
7514 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7515 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7516 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7517 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7519 if (r->architecture) {
7520 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
7521 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7522 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
7523 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7525 if (r->driver_path) {
7526 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
7527 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7528 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
7529 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7531 if (r->data_file) {
7532 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
7533 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7534 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
7535 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7537 if (r->config_file) {
7538 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
7539 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7540 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
7541 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7544 return NDR_ERR_SUCCESS;
7547 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo2 *r)
7549 uint32_t _ptr_driver_name;
7550 TALLOC_CTX *_mem_save_driver_name_0;
7551 uint32_t _ptr_architecture;
7552 TALLOC_CTX *_mem_save_architecture_0;
7553 uint32_t _ptr_driver_path;
7554 TALLOC_CTX *_mem_save_driver_path_0;
7555 uint32_t _ptr_data_file;
7556 TALLOC_CTX *_mem_save_data_file_0;
7557 uint32_t _ptr_config_file;
7558 TALLOC_CTX *_mem_save_config_file_0;
7559 if (ndr_flags & NDR_SCALARS) {
7560 NDR_CHECK(ndr_pull_align(ndr, 4));
7561 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
7562 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7563 if (_ptr_driver_name) {
7564 NDR_PULL_ALLOC(ndr, r->driver_name);
7565 } else {
7566 r->driver_name = NULL;
7568 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
7569 if (_ptr_architecture) {
7570 NDR_PULL_ALLOC(ndr, r->architecture);
7571 } else {
7572 r->architecture = NULL;
7574 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
7575 if (_ptr_driver_path) {
7576 NDR_PULL_ALLOC(ndr, r->driver_path);
7577 } else {
7578 r->driver_path = NULL;
7580 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
7581 if (_ptr_data_file) {
7582 NDR_PULL_ALLOC(ndr, r->data_file);
7583 } else {
7584 r->data_file = NULL;
7586 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
7587 if (_ptr_config_file) {
7588 NDR_PULL_ALLOC(ndr, r->config_file);
7589 } else {
7590 r->config_file = NULL;
7593 if (ndr_flags & NDR_BUFFERS) {
7594 if (r->driver_name) {
7595 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7596 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7597 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
7598 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
7599 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
7600 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));
7602 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
7603 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
7604 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7606 if (r->architecture) {
7607 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
7608 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
7609 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
7610 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
7611 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
7612 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));
7614 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
7615 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
7616 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
7618 if (r->driver_path) {
7619 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
7620 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
7621 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
7622 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
7623 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
7624 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));
7626 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
7627 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
7628 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
7630 if (r->data_file) {
7631 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7632 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
7633 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
7634 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
7635 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
7636 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));
7638 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
7639 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
7640 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
7642 if (r->config_file) {
7643 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7644 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
7645 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
7646 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
7647 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
7648 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));
7650 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
7651 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
7652 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
7655 return NDR_ERR_SUCCESS;
7658 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo2 *r)
7660 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo2");
7661 ndr->depth++;
7662 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
7663 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7664 ndr->depth++;
7665 if (r->driver_name) {
7666 ndr_print_string(ndr, "driver_name", r->driver_name);
7668 ndr->depth--;
7669 ndr_print_ptr(ndr, "architecture", r->architecture);
7670 ndr->depth++;
7671 if (r->architecture) {
7672 ndr_print_string(ndr, "architecture", r->architecture);
7674 ndr->depth--;
7675 ndr_print_ptr(ndr, "driver_path", r->driver_path);
7676 ndr->depth++;
7677 if (r->driver_path) {
7678 ndr_print_string(ndr, "driver_path", r->driver_path);
7680 ndr->depth--;
7681 ndr_print_ptr(ndr, "data_file", r->data_file);
7682 ndr->depth++;
7683 if (r->data_file) {
7684 ndr_print_string(ndr, "data_file", r->data_file);
7686 ndr->depth--;
7687 ndr_print_ptr(ndr, "config_file", r->config_file);
7688 ndr->depth++;
7689 if (r->config_file) {
7690 ndr_print_string(ndr, "config_file", r->config_file);
7692 ndr->depth--;
7693 ndr->depth--;
7696 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo3 *r)
7698 if (ndr_flags & NDR_SCALARS) {
7699 NDR_CHECK(ndr_push_align(ndr, 4));
7700 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7701 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
7702 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
7703 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
7704 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
7705 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
7706 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
7707 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
7708 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
7709 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
7710 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
7712 if (ndr_flags & NDR_BUFFERS) {
7713 if (r->driver_name) {
7714 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7715 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7716 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7717 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7719 if (r->architecture) {
7720 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
7721 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7722 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
7723 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7725 if (r->driver_path) {
7726 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
7727 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7728 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
7729 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7731 if (r->data_file) {
7732 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
7733 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7734 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
7735 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7737 if (r->config_file) {
7738 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
7739 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7740 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
7741 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7743 if (r->help_file) {
7744 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
7745 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7746 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
7747 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7749 if (r->monitor_name) {
7750 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
7751 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7752 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
7753 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7755 if (r->default_datatype) {
7756 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
7757 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7758 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
7759 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7761 if (r->dependent_files) {
7762 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
7765 return NDR_ERR_SUCCESS;
7768 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo3 *r)
7770 uint32_t _ptr_driver_name;
7771 TALLOC_CTX *_mem_save_driver_name_0;
7772 uint32_t _ptr_architecture;
7773 TALLOC_CTX *_mem_save_architecture_0;
7774 uint32_t _ptr_driver_path;
7775 TALLOC_CTX *_mem_save_driver_path_0;
7776 uint32_t _ptr_data_file;
7777 TALLOC_CTX *_mem_save_data_file_0;
7778 uint32_t _ptr_config_file;
7779 TALLOC_CTX *_mem_save_config_file_0;
7780 uint32_t _ptr_help_file;
7781 TALLOC_CTX *_mem_save_help_file_0;
7782 uint32_t _ptr_monitor_name;
7783 TALLOC_CTX *_mem_save_monitor_name_0;
7784 uint32_t _ptr_default_datatype;
7785 TALLOC_CTX *_mem_save_default_datatype_0;
7786 uint32_t _ptr_dependent_files;
7787 TALLOC_CTX *_mem_save_dependent_files_0;
7788 if (ndr_flags & NDR_SCALARS) {
7789 NDR_CHECK(ndr_pull_align(ndr, 4));
7790 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
7791 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7792 if (_ptr_driver_name) {
7793 NDR_PULL_ALLOC(ndr, r->driver_name);
7794 } else {
7795 r->driver_name = NULL;
7797 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
7798 if (_ptr_architecture) {
7799 NDR_PULL_ALLOC(ndr, r->architecture);
7800 } else {
7801 r->architecture = NULL;
7803 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
7804 if (_ptr_driver_path) {
7805 NDR_PULL_ALLOC(ndr, r->driver_path);
7806 } else {
7807 r->driver_path = NULL;
7809 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
7810 if (_ptr_data_file) {
7811 NDR_PULL_ALLOC(ndr, r->data_file);
7812 } else {
7813 r->data_file = NULL;
7815 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
7816 if (_ptr_config_file) {
7817 NDR_PULL_ALLOC(ndr, r->config_file);
7818 } else {
7819 r->config_file = NULL;
7821 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
7822 if (_ptr_help_file) {
7823 NDR_PULL_ALLOC(ndr, r->help_file);
7824 } else {
7825 r->help_file = NULL;
7827 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
7828 if (_ptr_monitor_name) {
7829 NDR_PULL_ALLOC(ndr, r->monitor_name);
7830 } else {
7831 r->monitor_name = NULL;
7833 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
7834 if (_ptr_default_datatype) {
7835 NDR_PULL_ALLOC(ndr, r->default_datatype);
7836 } else {
7837 r->default_datatype = NULL;
7839 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
7840 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
7841 if (_ptr_dependent_files) {
7842 NDR_PULL_ALLOC(ndr, r->dependent_files);
7843 } else {
7844 r->dependent_files = NULL;
7847 if (ndr_flags & NDR_BUFFERS) {
7848 if (r->driver_name) {
7849 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7850 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7851 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
7852 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
7853 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
7854 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));
7856 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
7857 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
7858 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7860 if (r->architecture) {
7861 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
7862 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
7863 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
7864 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
7865 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
7866 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));
7868 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
7869 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
7870 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
7872 if (r->driver_path) {
7873 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
7874 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
7875 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
7876 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
7877 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
7878 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));
7880 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
7881 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
7882 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
7884 if (r->data_file) {
7885 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7886 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
7887 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
7888 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
7889 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
7890 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));
7892 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
7893 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
7894 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
7896 if (r->config_file) {
7897 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7898 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
7899 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
7900 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
7901 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
7902 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));
7904 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
7905 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
7906 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
7908 if (r->help_file) {
7909 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7910 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
7911 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
7912 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
7913 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
7914 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));
7916 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
7917 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
7918 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
7920 if (r->monitor_name) {
7921 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7922 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
7923 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
7924 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
7925 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
7926 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));
7928 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
7929 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
7930 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
7932 if (r->default_datatype) {
7933 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
7934 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
7935 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
7936 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
7937 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
7938 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));
7940 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
7941 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
7942 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
7944 if (r->dependent_files) {
7945 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
7946 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
7947 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
7948 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
7951 return NDR_ERR_SUCCESS;
7954 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo3 *r)
7956 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo3");
7957 ndr->depth++;
7958 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
7959 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7960 ndr->depth++;
7961 if (r->driver_name) {
7962 ndr_print_string(ndr, "driver_name", r->driver_name);
7964 ndr->depth--;
7965 ndr_print_ptr(ndr, "architecture", r->architecture);
7966 ndr->depth++;
7967 if (r->architecture) {
7968 ndr_print_string(ndr, "architecture", r->architecture);
7970 ndr->depth--;
7971 ndr_print_ptr(ndr, "driver_path", r->driver_path);
7972 ndr->depth++;
7973 if (r->driver_path) {
7974 ndr_print_string(ndr, "driver_path", r->driver_path);
7976 ndr->depth--;
7977 ndr_print_ptr(ndr, "data_file", r->data_file);
7978 ndr->depth++;
7979 if (r->data_file) {
7980 ndr_print_string(ndr, "data_file", r->data_file);
7982 ndr->depth--;
7983 ndr_print_ptr(ndr, "config_file", r->config_file);
7984 ndr->depth++;
7985 if (r->config_file) {
7986 ndr_print_string(ndr, "config_file", r->config_file);
7988 ndr->depth--;
7989 ndr_print_ptr(ndr, "help_file", r->help_file);
7990 ndr->depth++;
7991 if (r->help_file) {
7992 ndr_print_string(ndr, "help_file", r->help_file);
7994 ndr->depth--;
7995 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
7996 ndr->depth++;
7997 if (r->monitor_name) {
7998 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8000 ndr->depth--;
8001 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8002 ndr->depth++;
8003 if (r->default_datatype) {
8004 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8006 ndr->depth--;
8007 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);
8008 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8009 ndr->depth++;
8010 if (r->dependent_files) {
8011 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
8013 ndr->depth--;
8014 ndr->depth--;
8017 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo4 *r)
8019 if (ndr_flags & NDR_SCALARS) {
8020 NDR_CHECK(ndr_push_align(ndr, 4));
8021 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8022 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8023 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8024 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8025 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8026 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8027 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8028 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8029 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8030 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8031 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8032 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8033 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
8035 if (ndr_flags & NDR_BUFFERS) {
8036 if (r->driver_name) {
8037 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8038 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8039 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8040 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8042 if (r->architecture) {
8043 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8044 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8045 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8046 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8048 if (r->driver_path) {
8049 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8050 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8051 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8052 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8054 if (r->data_file) {
8055 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8056 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8057 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8058 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8060 if (r->config_file) {
8061 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8062 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8063 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8064 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8066 if (r->help_file) {
8067 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8068 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8069 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8070 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8072 if (r->monitor_name) {
8073 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8074 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8075 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8076 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8078 if (r->default_datatype) {
8079 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8080 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8081 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8082 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8084 if (r->dependent_files) {
8085 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8087 if (r->previous_names) {
8088 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8091 return NDR_ERR_SUCCESS;
8094 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo4 *r)
8096 uint32_t _ptr_driver_name;
8097 TALLOC_CTX *_mem_save_driver_name_0;
8098 uint32_t _ptr_architecture;
8099 TALLOC_CTX *_mem_save_architecture_0;
8100 uint32_t _ptr_driver_path;
8101 TALLOC_CTX *_mem_save_driver_path_0;
8102 uint32_t _ptr_data_file;
8103 TALLOC_CTX *_mem_save_data_file_0;
8104 uint32_t _ptr_config_file;
8105 TALLOC_CTX *_mem_save_config_file_0;
8106 uint32_t _ptr_help_file;
8107 TALLOC_CTX *_mem_save_help_file_0;
8108 uint32_t _ptr_monitor_name;
8109 TALLOC_CTX *_mem_save_monitor_name_0;
8110 uint32_t _ptr_default_datatype;
8111 TALLOC_CTX *_mem_save_default_datatype_0;
8112 uint32_t _ptr_dependent_files;
8113 TALLOC_CTX *_mem_save_dependent_files_0;
8114 uint32_t _ptr_previous_names;
8115 TALLOC_CTX *_mem_save_previous_names_0;
8116 if (ndr_flags & NDR_SCALARS) {
8117 NDR_CHECK(ndr_pull_align(ndr, 4));
8118 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8119 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8120 if (_ptr_driver_name) {
8121 NDR_PULL_ALLOC(ndr, r->driver_name);
8122 } else {
8123 r->driver_name = NULL;
8125 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8126 if (_ptr_architecture) {
8127 NDR_PULL_ALLOC(ndr, r->architecture);
8128 } else {
8129 r->architecture = NULL;
8131 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8132 if (_ptr_driver_path) {
8133 NDR_PULL_ALLOC(ndr, r->driver_path);
8134 } else {
8135 r->driver_path = NULL;
8137 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8138 if (_ptr_data_file) {
8139 NDR_PULL_ALLOC(ndr, r->data_file);
8140 } else {
8141 r->data_file = NULL;
8143 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8144 if (_ptr_config_file) {
8145 NDR_PULL_ALLOC(ndr, r->config_file);
8146 } else {
8147 r->config_file = NULL;
8149 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8150 if (_ptr_help_file) {
8151 NDR_PULL_ALLOC(ndr, r->help_file);
8152 } else {
8153 r->help_file = NULL;
8155 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8156 if (_ptr_monitor_name) {
8157 NDR_PULL_ALLOC(ndr, r->monitor_name);
8158 } else {
8159 r->monitor_name = NULL;
8161 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8162 if (_ptr_default_datatype) {
8163 NDR_PULL_ALLOC(ndr, r->default_datatype);
8164 } else {
8165 r->default_datatype = NULL;
8167 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8168 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8169 if (_ptr_dependent_files) {
8170 NDR_PULL_ALLOC(ndr, r->dependent_files);
8171 } else {
8172 r->dependent_files = NULL;
8174 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
8175 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
8176 if (_ptr_previous_names) {
8177 NDR_PULL_ALLOC(ndr, r->previous_names);
8178 } else {
8179 r->previous_names = NULL;
8182 if (ndr_flags & NDR_BUFFERS) {
8183 if (r->driver_name) {
8184 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8185 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8186 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8187 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8188 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8189 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));
8191 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8192 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8193 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8195 if (r->architecture) {
8196 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8197 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8198 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8199 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8200 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8201 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));
8203 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8204 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8205 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8207 if (r->driver_path) {
8208 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8209 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8210 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8211 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8212 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8213 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));
8215 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8216 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8217 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8219 if (r->data_file) {
8220 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8221 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8222 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8223 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8224 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8225 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));
8227 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8228 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8229 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8231 if (r->config_file) {
8232 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8233 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8234 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8235 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8236 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8237 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));
8239 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8240 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8241 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8243 if (r->help_file) {
8244 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8245 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8246 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8247 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8248 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8249 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));
8251 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8252 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
8253 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8255 if (r->monitor_name) {
8256 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8257 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8258 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8259 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8260 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8261 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));
8263 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8264 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
8265 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8267 if (r->default_datatype) {
8268 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8269 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8270 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
8271 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
8272 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
8273 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));
8275 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
8276 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
8277 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8279 if (r->dependent_files) {
8280 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8281 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8282 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8283 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8285 if (r->previous_names) {
8286 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
8287 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
8288 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8289 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
8292 return NDR_ERR_SUCCESS;
8295 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo4 *r)
8297 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo4");
8298 ndr->depth++;
8299 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8300 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8301 ndr->depth++;
8302 if (r->driver_name) {
8303 ndr_print_string(ndr, "driver_name", r->driver_name);
8305 ndr->depth--;
8306 ndr_print_ptr(ndr, "architecture", r->architecture);
8307 ndr->depth++;
8308 if (r->architecture) {
8309 ndr_print_string(ndr, "architecture", r->architecture);
8311 ndr->depth--;
8312 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8313 ndr->depth++;
8314 if (r->driver_path) {
8315 ndr_print_string(ndr, "driver_path", r->driver_path);
8317 ndr->depth--;
8318 ndr_print_ptr(ndr, "data_file", r->data_file);
8319 ndr->depth++;
8320 if (r->data_file) {
8321 ndr_print_string(ndr, "data_file", r->data_file);
8323 ndr->depth--;
8324 ndr_print_ptr(ndr, "config_file", r->config_file);
8325 ndr->depth++;
8326 if (r->config_file) {
8327 ndr_print_string(ndr, "config_file", r->config_file);
8329 ndr->depth--;
8330 ndr_print_ptr(ndr, "help_file", r->help_file);
8331 ndr->depth++;
8332 if (r->help_file) {
8333 ndr_print_string(ndr, "help_file", r->help_file);
8335 ndr->depth--;
8336 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8337 ndr->depth++;
8338 if (r->monitor_name) {
8339 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8341 ndr->depth--;
8342 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8343 ndr->depth++;
8344 if (r->default_datatype) {
8345 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8347 ndr->depth--;
8348 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);
8349 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8350 ndr->depth++;
8351 if (r->dependent_files) {
8352 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
8354 ndr->depth--;
8355 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);
8356 ndr_print_ptr(ndr, "previous_names", r->previous_names);
8357 ndr->depth++;
8358 if (r->previous_names) {
8359 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
8361 ndr->depth--;
8362 ndr->depth--;
8365 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo6 *r)
8367 if (ndr_flags & NDR_SCALARS) {
8368 NDR_CHECK(ndr_push_align(ndr, 8));
8369 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8370 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8371 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8372 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8373 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8374 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8375 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8376 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8377 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8378 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8379 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8380 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8381 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
8382 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
8383 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
8384 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
8385 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
8386 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
8387 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
8389 if (ndr_flags & NDR_BUFFERS) {
8390 if (r->driver_name) {
8391 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8392 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8393 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8394 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8396 if (r->architecture) {
8397 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8398 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8399 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8400 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8402 if (r->driver_path) {
8403 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8404 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8405 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8406 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8408 if (r->data_file) {
8409 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8410 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8411 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8412 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8414 if (r->config_file) {
8415 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8416 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8417 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8418 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8420 if (r->help_file) {
8421 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8422 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8423 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8424 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8426 if (r->monitor_name) {
8427 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8428 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8429 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8430 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8432 if (r->default_datatype) {
8433 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8434 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8435 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8436 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8438 if (r->dependent_files) {
8439 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8441 if (r->previous_names) {
8442 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8444 if (r->manufacturer_name) {
8445 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
8446 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8447 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
8448 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8450 if (r->manufacturer_url) {
8451 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
8452 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8453 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
8454 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8456 if (r->hardware_id) {
8457 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
8458 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8459 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
8460 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8462 if (r->provider) {
8463 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
8464 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8465 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
8466 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8469 return NDR_ERR_SUCCESS;
8472 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo6 *r)
8474 uint32_t _ptr_driver_name;
8475 TALLOC_CTX *_mem_save_driver_name_0;
8476 uint32_t _ptr_architecture;
8477 TALLOC_CTX *_mem_save_architecture_0;
8478 uint32_t _ptr_driver_path;
8479 TALLOC_CTX *_mem_save_driver_path_0;
8480 uint32_t _ptr_data_file;
8481 TALLOC_CTX *_mem_save_data_file_0;
8482 uint32_t _ptr_config_file;
8483 TALLOC_CTX *_mem_save_config_file_0;
8484 uint32_t _ptr_help_file;
8485 TALLOC_CTX *_mem_save_help_file_0;
8486 uint32_t _ptr_monitor_name;
8487 TALLOC_CTX *_mem_save_monitor_name_0;
8488 uint32_t _ptr_default_datatype;
8489 TALLOC_CTX *_mem_save_default_datatype_0;
8490 uint32_t _ptr_dependent_files;
8491 TALLOC_CTX *_mem_save_dependent_files_0;
8492 uint32_t _ptr_previous_names;
8493 TALLOC_CTX *_mem_save_previous_names_0;
8494 uint32_t _ptr_manufacturer_name;
8495 TALLOC_CTX *_mem_save_manufacturer_name_0;
8496 uint32_t _ptr_manufacturer_url;
8497 TALLOC_CTX *_mem_save_manufacturer_url_0;
8498 uint32_t _ptr_hardware_id;
8499 TALLOC_CTX *_mem_save_hardware_id_0;
8500 uint32_t _ptr_provider;
8501 TALLOC_CTX *_mem_save_provider_0;
8502 if (ndr_flags & NDR_SCALARS) {
8503 NDR_CHECK(ndr_pull_align(ndr, 8));
8504 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8505 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8506 if (_ptr_driver_name) {
8507 NDR_PULL_ALLOC(ndr, r->driver_name);
8508 } else {
8509 r->driver_name = NULL;
8511 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8512 if (_ptr_architecture) {
8513 NDR_PULL_ALLOC(ndr, r->architecture);
8514 } else {
8515 r->architecture = NULL;
8517 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8518 if (_ptr_driver_path) {
8519 NDR_PULL_ALLOC(ndr, r->driver_path);
8520 } else {
8521 r->driver_path = NULL;
8523 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8524 if (_ptr_data_file) {
8525 NDR_PULL_ALLOC(ndr, r->data_file);
8526 } else {
8527 r->data_file = NULL;
8529 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8530 if (_ptr_config_file) {
8531 NDR_PULL_ALLOC(ndr, r->config_file);
8532 } else {
8533 r->config_file = NULL;
8535 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8536 if (_ptr_help_file) {
8537 NDR_PULL_ALLOC(ndr, r->help_file);
8538 } else {
8539 r->help_file = NULL;
8541 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8542 if (_ptr_monitor_name) {
8543 NDR_PULL_ALLOC(ndr, r->monitor_name);
8544 } else {
8545 r->monitor_name = NULL;
8547 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8548 if (_ptr_default_datatype) {
8549 NDR_PULL_ALLOC(ndr, r->default_datatype);
8550 } else {
8551 r->default_datatype = NULL;
8553 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8554 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8555 if (_ptr_dependent_files) {
8556 NDR_PULL_ALLOC(ndr, r->dependent_files);
8557 } else {
8558 r->dependent_files = NULL;
8560 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
8561 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
8562 if (_ptr_previous_names) {
8563 NDR_PULL_ALLOC(ndr, r->previous_names);
8564 } else {
8565 r->previous_names = NULL;
8567 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
8568 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
8569 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
8570 if (_ptr_manufacturer_name) {
8571 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
8572 } else {
8573 r->manufacturer_name = NULL;
8575 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
8576 if (_ptr_manufacturer_url) {
8577 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
8578 } else {
8579 r->manufacturer_url = NULL;
8581 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
8582 if (_ptr_hardware_id) {
8583 NDR_PULL_ALLOC(ndr, r->hardware_id);
8584 } else {
8585 r->hardware_id = NULL;
8587 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
8588 if (_ptr_provider) {
8589 NDR_PULL_ALLOC(ndr, r->provider);
8590 } else {
8591 r->provider = NULL;
8594 if (ndr_flags & NDR_BUFFERS) {
8595 if (r->driver_name) {
8596 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8597 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8598 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8599 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8600 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8601 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));
8603 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8604 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8605 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8607 if (r->architecture) {
8608 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8609 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8610 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8611 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8612 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8613 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));
8615 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8616 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8617 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8619 if (r->driver_path) {
8620 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8621 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8622 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8623 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8624 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8625 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));
8627 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8628 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8629 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8631 if (r->data_file) {
8632 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8633 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8634 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8635 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8636 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8637 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));
8639 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8640 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8641 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8643 if (r->config_file) {
8644 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8645 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8646 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8647 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8648 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8649 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));
8651 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8652 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8653 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8655 if (r->help_file) {
8656 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8657 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8658 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8659 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8660 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8661 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));
8663 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8664 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
8665 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8667 if (r->monitor_name) {
8668 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8669 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8670 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8671 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8672 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8673 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));
8675 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8676 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
8677 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8679 if (r->default_datatype) {
8680 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8681 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8682 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
8683 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
8684 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
8685 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));
8687 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
8688 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
8689 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8691 if (r->dependent_files) {
8692 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8693 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8694 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8695 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8697 if (r->previous_names) {
8698 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
8699 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
8700 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8701 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
8703 if (r->manufacturer_name) {
8704 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8705 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
8706 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
8707 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
8708 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
8709 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));
8711 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
8712 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
8713 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
8715 if (r->manufacturer_url) {
8716 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
8717 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
8718 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
8719 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
8720 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
8721 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));
8723 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
8724 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
8725 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
8727 if (r->hardware_id) {
8728 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
8729 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
8730 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
8731 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
8732 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
8733 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));
8735 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
8736 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
8737 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
8739 if (r->provider) {
8740 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
8741 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
8742 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
8743 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
8744 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
8745 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));
8747 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
8748 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
8749 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
8752 return NDR_ERR_SUCCESS;
8755 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo6 *r)
8757 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo6");
8758 ndr->depth++;
8759 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8760 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8761 ndr->depth++;
8762 if (r->driver_name) {
8763 ndr_print_string(ndr, "driver_name", r->driver_name);
8765 ndr->depth--;
8766 ndr_print_ptr(ndr, "architecture", r->architecture);
8767 ndr->depth++;
8768 if (r->architecture) {
8769 ndr_print_string(ndr, "architecture", r->architecture);
8771 ndr->depth--;
8772 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8773 ndr->depth++;
8774 if (r->driver_path) {
8775 ndr_print_string(ndr, "driver_path", r->driver_path);
8777 ndr->depth--;
8778 ndr_print_ptr(ndr, "data_file", r->data_file);
8779 ndr->depth++;
8780 if (r->data_file) {
8781 ndr_print_string(ndr, "data_file", r->data_file);
8783 ndr->depth--;
8784 ndr_print_ptr(ndr, "config_file", r->config_file);
8785 ndr->depth++;
8786 if (r->config_file) {
8787 ndr_print_string(ndr, "config_file", r->config_file);
8789 ndr->depth--;
8790 ndr_print_ptr(ndr, "help_file", r->help_file);
8791 ndr->depth++;
8792 if (r->help_file) {
8793 ndr_print_string(ndr, "help_file", r->help_file);
8795 ndr->depth--;
8796 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8797 ndr->depth++;
8798 if (r->monitor_name) {
8799 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8801 ndr->depth--;
8802 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8803 ndr->depth++;
8804 if (r->default_datatype) {
8805 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8807 ndr->depth--;
8808 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);
8809 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8810 ndr->depth++;
8811 if (r->dependent_files) {
8812 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
8814 ndr->depth--;
8815 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);
8816 ndr_print_ptr(ndr, "previous_names", r->previous_names);
8817 ndr->depth++;
8818 if (r->previous_names) {
8819 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
8821 ndr->depth--;
8822 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
8823 ndr_print_hyper(ndr, "driver_version", r->driver_version);
8824 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
8825 ndr->depth++;
8826 if (r->manufacturer_name) {
8827 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
8829 ndr->depth--;
8830 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
8831 ndr->depth++;
8832 if (r->manufacturer_url) {
8833 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
8835 ndr->depth--;
8836 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
8837 ndr->depth++;
8838 if (r->hardware_id) {
8839 ndr_print_string(ndr, "hardware_id", r->hardware_id);
8841 ndr->depth--;
8842 ndr_print_ptr(ndr, "provider", r->provider);
8843 ndr->depth++;
8844 if (r->provider) {
8845 ndr_print_string(ndr, "provider", r->provider);
8847 ndr->depth--;
8848 ndr->depth--;
8851 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo8 *r)
8853 if (ndr_flags & NDR_SCALARS) {
8854 NDR_CHECK(ndr_push_align(ndr, 8));
8855 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8856 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8857 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8858 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8859 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8860 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8861 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8862 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8863 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8864 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8865 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8866 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8867 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
8868 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
8869 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
8870 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
8871 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
8872 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
8873 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
8874 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
8875 NDR_CHECK(ndr_push_unique_ptr(ndr, r->vendor_setup));
8876 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->color_profiles, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8877 NDR_CHECK(ndr_push_unique_ptr(ndr, r->color_profiles));
8878 NDR_CHECK(ndr_push_unique_ptr(ndr, r->inf_path));
8879 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
8880 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8881 NDR_CHECK(ndr_push_unique_ptr(ndr, r->core_driver_dependencies));
8882 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
8883 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
8885 if (ndr_flags & NDR_BUFFERS) {
8886 if (r->driver_name) {
8887 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8888 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8889 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8890 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8892 if (r->architecture) {
8893 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8894 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8895 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8896 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8898 if (r->driver_path) {
8899 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8900 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8901 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8902 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8904 if (r->data_file) {
8905 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8906 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8907 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8908 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8910 if (r->config_file) {
8911 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8912 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8913 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8914 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8916 if (r->help_file) {
8917 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8918 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8919 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8920 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8922 if (r->monitor_name) {
8923 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8924 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8925 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8926 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8928 if (r->default_datatype) {
8929 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8930 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8931 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8932 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8934 if (r->dependent_files) {
8935 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8937 if (r->previous_names) {
8938 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8940 if (r->manufacturer_name) {
8941 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
8942 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8943 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
8944 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8946 if (r->manufacturer_url) {
8947 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
8948 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8949 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
8950 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8952 if (r->hardware_id) {
8953 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
8954 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8955 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
8956 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8958 if (r->provider) {
8959 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
8960 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8961 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
8962 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8964 if (r->print_processor) {
8965 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
8966 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8967 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
8968 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8970 if (r->vendor_setup) {
8971 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
8972 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8973 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
8974 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->vendor_setup, ndr_charset_length(r->vendor_setup, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8976 if (r->color_profiles) {
8977 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
8979 if (r->inf_path) {
8980 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
8981 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8982 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
8983 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->inf_path, ndr_charset_length(r->inf_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8985 if (r->core_driver_dependencies) {
8986 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
8989 return NDR_ERR_SUCCESS;
8992 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo8 *r)
8994 uint32_t _ptr_driver_name;
8995 TALLOC_CTX *_mem_save_driver_name_0;
8996 uint32_t _ptr_architecture;
8997 TALLOC_CTX *_mem_save_architecture_0;
8998 uint32_t _ptr_driver_path;
8999 TALLOC_CTX *_mem_save_driver_path_0;
9000 uint32_t _ptr_data_file;
9001 TALLOC_CTX *_mem_save_data_file_0;
9002 uint32_t _ptr_config_file;
9003 TALLOC_CTX *_mem_save_config_file_0;
9004 uint32_t _ptr_help_file;
9005 TALLOC_CTX *_mem_save_help_file_0;
9006 uint32_t _ptr_monitor_name;
9007 TALLOC_CTX *_mem_save_monitor_name_0;
9008 uint32_t _ptr_default_datatype;
9009 TALLOC_CTX *_mem_save_default_datatype_0;
9010 uint32_t _ptr_dependent_files;
9011 TALLOC_CTX *_mem_save_dependent_files_0;
9012 uint32_t _ptr_previous_names;
9013 TALLOC_CTX *_mem_save_previous_names_0;
9014 uint32_t _ptr_manufacturer_name;
9015 TALLOC_CTX *_mem_save_manufacturer_name_0;
9016 uint32_t _ptr_manufacturer_url;
9017 TALLOC_CTX *_mem_save_manufacturer_url_0;
9018 uint32_t _ptr_hardware_id;
9019 TALLOC_CTX *_mem_save_hardware_id_0;
9020 uint32_t _ptr_provider;
9021 TALLOC_CTX *_mem_save_provider_0;
9022 uint32_t _ptr_print_processor;
9023 TALLOC_CTX *_mem_save_print_processor_0;
9024 uint32_t _ptr_vendor_setup;
9025 TALLOC_CTX *_mem_save_vendor_setup_0;
9026 uint32_t _ptr_color_profiles;
9027 TALLOC_CTX *_mem_save_color_profiles_0;
9028 uint32_t _ptr_inf_path;
9029 TALLOC_CTX *_mem_save_inf_path_0;
9030 uint32_t _ptr_core_driver_dependencies;
9031 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
9032 if (ndr_flags & NDR_SCALARS) {
9033 NDR_CHECK(ndr_pull_align(ndr, 8));
9034 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9035 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9036 if (_ptr_driver_name) {
9037 NDR_PULL_ALLOC(ndr, r->driver_name);
9038 } else {
9039 r->driver_name = NULL;
9041 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9042 if (_ptr_architecture) {
9043 NDR_PULL_ALLOC(ndr, r->architecture);
9044 } else {
9045 r->architecture = NULL;
9047 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9048 if (_ptr_driver_path) {
9049 NDR_PULL_ALLOC(ndr, r->driver_path);
9050 } else {
9051 r->driver_path = NULL;
9053 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9054 if (_ptr_data_file) {
9055 NDR_PULL_ALLOC(ndr, r->data_file);
9056 } else {
9057 r->data_file = NULL;
9059 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9060 if (_ptr_config_file) {
9061 NDR_PULL_ALLOC(ndr, r->config_file);
9062 } else {
9063 r->config_file = NULL;
9065 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9066 if (_ptr_help_file) {
9067 NDR_PULL_ALLOC(ndr, r->help_file);
9068 } else {
9069 r->help_file = NULL;
9071 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9072 if (_ptr_monitor_name) {
9073 NDR_PULL_ALLOC(ndr, r->monitor_name);
9074 } else {
9075 r->monitor_name = NULL;
9077 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9078 if (_ptr_default_datatype) {
9079 NDR_PULL_ALLOC(ndr, r->default_datatype);
9080 } else {
9081 r->default_datatype = NULL;
9083 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9084 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9085 if (_ptr_dependent_files) {
9086 NDR_PULL_ALLOC(ndr, r->dependent_files);
9087 } else {
9088 r->dependent_files = NULL;
9090 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
9091 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9092 if (_ptr_previous_names) {
9093 NDR_PULL_ALLOC(ndr, r->previous_names);
9094 } else {
9095 r->previous_names = NULL;
9097 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
9098 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9099 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9100 if (_ptr_manufacturer_name) {
9101 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9102 } else {
9103 r->manufacturer_name = NULL;
9105 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9106 if (_ptr_manufacturer_url) {
9107 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9108 } else {
9109 r->manufacturer_url = NULL;
9111 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9112 if (_ptr_hardware_id) {
9113 NDR_PULL_ALLOC(ndr, r->hardware_id);
9114 } else {
9115 r->hardware_id = NULL;
9117 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9118 if (_ptr_provider) {
9119 NDR_PULL_ALLOC(ndr, r->provider);
9120 } else {
9121 r->provider = NULL;
9123 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
9124 if (_ptr_print_processor) {
9125 NDR_PULL_ALLOC(ndr, r->print_processor);
9126 } else {
9127 r->print_processor = NULL;
9129 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
9130 if (_ptr_vendor_setup) {
9131 NDR_PULL_ALLOC(ndr, r->vendor_setup);
9132 } else {
9133 r->vendor_setup = NULL;
9135 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_color_profiles));
9136 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
9137 if (_ptr_color_profiles) {
9138 NDR_PULL_ALLOC(ndr, r->color_profiles);
9139 } else {
9140 r->color_profiles = NULL;
9142 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
9143 if (_ptr_inf_path) {
9144 NDR_PULL_ALLOC(ndr, r->inf_path);
9145 } else {
9146 r->inf_path = NULL;
9148 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
9149 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_core_driver_dependencies));
9150 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
9151 if (_ptr_core_driver_dependencies) {
9152 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
9153 } else {
9154 r->core_driver_dependencies = NULL;
9156 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
9157 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
9159 if (ndr_flags & NDR_BUFFERS) {
9160 if (r->driver_name) {
9161 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9162 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9163 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9164 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9165 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
9166 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));
9168 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
9169 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
9170 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9172 if (r->architecture) {
9173 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9174 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9175 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9176 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9177 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
9178 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));
9180 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
9181 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
9182 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9184 if (r->driver_path) {
9185 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9186 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9187 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9188 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9189 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
9190 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));
9192 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
9193 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
9194 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9196 if (r->data_file) {
9197 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9198 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9199 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9200 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9201 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
9202 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));
9204 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
9205 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
9206 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9208 if (r->config_file) {
9209 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9210 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9211 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9212 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9213 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
9214 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));
9216 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
9217 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
9218 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9220 if (r->help_file) {
9221 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9222 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9223 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9224 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9225 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
9226 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));
9228 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
9229 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
9230 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9232 if (r->monitor_name) {
9233 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9234 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9235 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9236 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9237 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
9238 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));
9240 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
9241 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
9242 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9244 if (r->default_datatype) {
9245 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9246 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9247 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9248 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9249 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
9250 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));
9252 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
9253 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
9254 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9256 if (r->dependent_files) {
9257 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9258 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9259 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9260 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9262 if (r->previous_names) {
9263 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9264 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9265 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9266 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9268 if (r->manufacturer_name) {
9269 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9270 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
9271 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
9272 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
9273 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
9274 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));
9276 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
9277 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
9278 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
9280 if (r->manufacturer_url) {
9281 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
9282 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
9283 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
9284 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
9285 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
9286 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));
9288 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
9289 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
9290 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
9292 if (r->hardware_id) {
9293 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9294 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
9295 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
9296 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
9297 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
9298 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));
9300 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
9301 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
9302 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
9304 if (r->provider) {
9305 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
9306 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
9307 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
9308 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
9309 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
9310 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));
9312 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
9313 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
9314 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
9316 if (r->print_processor) {
9317 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
9318 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
9319 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
9320 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
9321 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
9322 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));
9324 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
9325 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
9326 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
9328 if (r->vendor_setup) {
9329 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
9330 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
9331 NDR_CHECK(ndr_pull_array_size(ndr, &r->vendor_setup));
9332 NDR_CHECK(ndr_pull_array_length(ndr, &r->vendor_setup));
9333 if (ndr_get_array_length(ndr, &r->vendor_setup) > ndr_get_array_size(ndr, &r->vendor_setup)) {
9334 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));
9336 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t)));
9337 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->vendor_setup, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t), CH_UTF16));
9338 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
9340 if (r->color_profiles) {
9341 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
9342 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
9343 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
9344 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
9346 if (r->inf_path) {
9347 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9348 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
9349 NDR_CHECK(ndr_pull_array_size(ndr, &r->inf_path));
9350 NDR_CHECK(ndr_pull_array_length(ndr, &r->inf_path));
9351 if (ndr_get_array_length(ndr, &r->inf_path) > ndr_get_array_size(ndr, &r->inf_path)) {
9352 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));
9354 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t)));
9355 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->inf_path, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t), CH_UTF16));
9356 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
9358 if (r->core_driver_dependencies) {
9359 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
9360 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
9361 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
9362 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
9365 return NDR_ERR_SUCCESS;
9368 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo8 *r)
9370 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo8");
9371 ndr->depth++;
9372 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9373 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9374 ndr->depth++;
9375 if (r->driver_name) {
9376 ndr_print_string(ndr, "driver_name", r->driver_name);
9378 ndr->depth--;
9379 ndr_print_ptr(ndr, "architecture", r->architecture);
9380 ndr->depth++;
9381 if (r->architecture) {
9382 ndr_print_string(ndr, "architecture", r->architecture);
9384 ndr->depth--;
9385 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9386 ndr->depth++;
9387 if (r->driver_path) {
9388 ndr_print_string(ndr, "driver_path", r->driver_path);
9390 ndr->depth--;
9391 ndr_print_ptr(ndr, "data_file", r->data_file);
9392 ndr->depth++;
9393 if (r->data_file) {
9394 ndr_print_string(ndr, "data_file", r->data_file);
9396 ndr->depth--;
9397 ndr_print_ptr(ndr, "config_file", r->config_file);
9398 ndr->depth++;
9399 if (r->config_file) {
9400 ndr_print_string(ndr, "config_file", r->config_file);
9402 ndr->depth--;
9403 ndr_print_ptr(ndr, "help_file", r->help_file);
9404 ndr->depth++;
9405 if (r->help_file) {
9406 ndr_print_string(ndr, "help_file", r->help_file);
9408 ndr->depth--;
9409 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9410 ndr->depth++;
9411 if (r->monitor_name) {
9412 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9414 ndr->depth--;
9415 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9416 ndr->depth++;
9417 if (r->default_datatype) {
9418 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9420 ndr->depth--;
9421 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);
9422 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9423 ndr->depth++;
9424 if (r->dependent_files) {
9425 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9427 ndr->depth--;
9428 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);
9429 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9430 ndr->depth++;
9431 if (r->previous_names) {
9432 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
9434 ndr->depth--;
9435 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
9436 ndr_print_hyper(ndr, "driver_version", r->driver_version);
9437 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
9438 ndr->depth++;
9439 if (r->manufacturer_name) {
9440 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
9442 ndr->depth--;
9443 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
9444 ndr->depth++;
9445 if (r->manufacturer_url) {
9446 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
9448 ndr->depth--;
9449 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
9450 ndr->depth++;
9451 if (r->hardware_id) {
9452 ndr_print_string(ndr, "hardware_id", r->hardware_id);
9454 ndr->depth--;
9455 ndr_print_ptr(ndr, "provider", r->provider);
9456 ndr->depth++;
9457 if (r->provider) {
9458 ndr_print_string(ndr, "provider", r->provider);
9460 ndr->depth--;
9461 ndr_print_ptr(ndr, "print_processor", r->print_processor);
9462 ndr->depth++;
9463 if (r->print_processor) {
9464 ndr_print_string(ndr, "print_processor", r->print_processor);
9466 ndr->depth--;
9467 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
9468 ndr->depth++;
9469 if (r->vendor_setup) {
9470 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
9472 ndr->depth--;
9473 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);
9474 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
9475 ndr->depth++;
9476 if (r->color_profiles) {
9477 ndr_print_spoolss_StringArray(ndr, "color_profiles", r->color_profiles);
9479 ndr->depth--;
9480 ndr_print_ptr(ndr, "inf_path", r->inf_path);
9481 ndr->depth++;
9482 if (r->inf_path) {
9483 ndr_print_string(ndr, "inf_path", r->inf_path);
9485 ndr->depth--;
9486 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
9487 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);
9488 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
9489 ndr->depth++;
9490 if (r->core_driver_dependencies) {
9491 ndr_print_spoolss_StringArray(ndr, "core_driver_dependencies", r->core_driver_dependencies);
9493 ndr->depth--;
9494 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
9495 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
9496 ndr->depth--;
9499 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddDriverInfo *r)
9501 if (ndr_flags & NDR_SCALARS) {
9502 int level = ndr_push_get_switch_value(ndr, r);
9503 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
9504 switch (level) {
9505 case 1: {
9506 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
9507 break; }
9509 case 2: {
9510 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
9511 break; }
9513 case 3: {
9514 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
9515 break; }
9517 case 4: {
9518 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
9519 break; }
9521 case 6: {
9522 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
9523 break; }
9525 case 8: {
9526 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
9527 break; }
9529 default:
9530 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
9533 if (ndr_flags & NDR_BUFFERS) {
9534 int level = ndr_push_get_switch_value(ndr, r);
9535 switch (level) {
9536 case 1:
9537 if (r->info1) {
9538 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
9540 break;
9542 case 2:
9543 if (r->info2) {
9544 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
9546 break;
9548 case 3:
9549 if (r->info3) {
9550 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
9552 break;
9554 case 4:
9555 if (r->info4) {
9556 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
9558 break;
9560 case 6:
9561 if (r->info6) {
9562 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
9564 break;
9566 case 8:
9567 if (r->info8) {
9568 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
9570 break;
9572 default:
9573 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
9576 return NDR_ERR_SUCCESS;
9579 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddDriverInfo *r)
9581 int level;
9582 uint32_t _level;
9583 TALLOC_CTX *_mem_save_info1_0;
9584 TALLOC_CTX *_mem_save_info2_0;
9585 TALLOC_CTX *_mem_save_info3_0;
9586 TALLOC_CTX *_mem_save_info4_0;
9587 TALLOC_CTX *_mem_save_info6_0;
9588 TALLOC_CTX *_mem_save_info8_0;
9589 level = ndr_pull_get_switch_value(ndr, r);
9590 if (ndr_flags & NDR_SCALARS) {
9591 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
9592 if (_level != level) {
9593 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
9595 switch (level) {
9596 case 1: {
9597 uint32_t _ptr_info1;
9598 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
9599 if (_ptr_info1) {
9600 NDR_PULL_ALLOC(ndr, r->info1);
9601 } else {
9602 r->info1 = NULL;
9604 break; }
9606 case 2: {
9607 uint32_t _ptr_info2;
9608 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
9609 if (_ptr_info2) {
9610 NDR_PULL_ALLOC(ndr, r->info2);
9611 } else {
9612 r->info2 = NULL;
9614 break; }
9616 case 3: {
9617 uint32_t _ptr_info3;
9618 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
9619 if (_ptr_info3) {
9620 NDR_PULL_ALLOC(ndr, r->info3);
9621 } else {
9622 r->info3 = NULL;
9624 break; }
9626 case 4: {
9627 uint32_t _ptr_info4;
9628 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
9629 if (_ptr_info4) {
9630 NDR_PULL_ALLOC(ndr, r->info4);
9631 } else {
9632 r->info4 = NULL;
9634 break; }
9636 case 6: {
9637 uint32_t _ptr_info6;
9638 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
9639 if (_ptr_info6) {
9640 NDR_PULL_ALLOC(ndr, r->info6);
9641 } else {
9642 r->info6 = NULL;
9644 break; }
9646 case 8: {
9647 uint32_t _ptr_info8;
9648 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
9649 if (_ptr_info8) {
9650 NDR_PULL_ALLOC(ndr, r->info8);
9651 } else {
9652 r->info8 = NULL;
9654 break; }
9656 default:
9657 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
9660 if (ndr_flags & NDR_BUFFERS) {
9661 switch (level) {
9662 case 1:
9663 if (r->info1) {
9664 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
9665 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
9666 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
9667 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
9669 break;
9671 case 2:
9672 if (r->info2) {
9673 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
9674 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
9675 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
9676 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
9678 break;
9680 case 3:
9681 if (r->info3) {
9682 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
9683 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
9684 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
9685 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
9687 break;
9689 case 4:
9690 if (r->info4) {
9691 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
9692 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
9693 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
9694 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
9696 break;
9698 case 6:
9699 if (r->info6) {
9700 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
9701 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
9702 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
9703 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
9705 break;
9707 case 8:
9708 if (r->info8) {
9709 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
9710 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
9711 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
9712 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
9714 break;
9716 default:
9717 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
9720 return NDR_ERR_SUCCESS;
9723 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddDriverInfo *r)
9725 int level;
9726 level = ndr_print_get_switch_value(ndr, r);
9727 ndr_print_union(ndr, name, level, "spoolss_AddDriverInfo");
9728 switch (level) {
9729 case 1:
9730 ndr_print_ptr(ndr, "info1", r->info1);
9731 ndr->depth++;
9732 if (r->info1) {
9733 ndr_print_spoolss_AddDriverInfo1(ndr, "info1", r->info1);
9735 ndr->depth--;
9736 break;
9738 case 2:
9739 ndr_print_ptr(ndr, "info2", r->info2);
9740 ndr->depth++;
9741 if (r->info2) {
9742 ndr_print_spoolss_AddDriverInfo2(ndr, "info2", r->info2);
9744 ndr->depth--;
9745 break;
9747 case 3:
9748 ndr_print_ptr(ndr, "info3", r->info3);
9749 ndr->depth++;
9750 if (r->info3) {
9751 ndr_print_spoolss_AddDriverInfo3(ndr, "info3", r->info3);
9753 ndr->depth--;
9754 break;
9756 case 4:
9757 ndr_print_ptr(ndr, "info4", r->info4);
9758 ndr->depth++;
9759 if (r->info4) {
9760 ndr_print_spoolss_AddDriverInfo4(ndr, "info4", r->info4);
9762 ndr->depth--;
9763 break;
9765 case 6:
9766 ndr_print_ptr(ndr, "info6", r->info6);
9767 ndr->depth++;
9768 if (r->info6) {
9769 ndr_print_spoolss_AddDriverInfo6(ndr, "info6", r->info6);
9771 ndr->depth--;
9772 break;
9774 case 8:
9775 ndr_print_ptr(ndr, "info8", r->info8);
9776 ndr->depth++;
9777 if (r->info8) {
9778 ndr_print_spoolss_AddDriverInfo8(ndr, "info8", r->info8);
9780 ndr->depth--;
9781 break;
9783 default:
9784 ndr_print_bad_level(ndr, name, level);
9788 static enum ndr_err_code ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfoCtr *r)
9790 if (ndr_flags & NDR_SCALARS) {
9791 NDR_CHECK(ndr_push_align(ndr, 4));
9792 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
9793 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
9794 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
9796 if (ndr_flags & NDR_BUFFERS) {
9797 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
9799 return NDR_ERR_SUCCESS;
9802 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfoCtr *r)
9804 if (ndr_flags & NDR_SCALARS) {
9805 NDR_CHECK(ndr_pull_align(ndr, 4));
9806 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
9807 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
9808 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
9810 if (ndr_flags & NDR_BUFFERS) {
9811 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
9813 return NDR_ERR_SUCCESS;
9816 _PUBLIC_ void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfoCtr *r)
9818 ndr_print_struct(ndr, name, "spoolss_AddDriverInfoCtr");
9819 ndr->depth++;
9820 ndr_print_uint32(ndr, "level", r->level);
9821 ndr_print_set_switch_value(ndr, &r->info, r->level);
9822 ndr_print_spoolss_AddDriverInfo(ndr, "info", &r->info);
9823 ndr->depth--;
9826 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo1 *r)
9828 if (ndr_flags & NDR_SCALARS) {
9829 NDR_CHECK(ndr_push_align(ndr, 4));
9831 uint32_t _flags_save_string = ndr->flags;
9832 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9833 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
9834 ndr->flags = _flags_save_string;
9837 if (ndr_flags & NDR_BUFFERS) {
9839 uint32_t _flags_save_string = ndr->flags;
9840 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9841 if (r->driver_name) {
9842 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
9843 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
9845 ndr->flags = _flags_save_string;
9848 return NDR_ERR_SUCCESS;
9851 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo1 *r)
9853 uint32_t _ptr_driver_name;
9854 TALLOC_CTX *_mem_save_driver_name_0;
9855 if (ndr_flags & NDR_SCALARS) {
9856 NDR_CHECK(ndr_pull_align(ndr, 4));
9858 uint32_t _flags_save_string = ndr->flags;
9859 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9860 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9861 if (_ptr_driver_name) {
9862 NDR_PULL_ALLOC(ndr, r->driver_name);
9863 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
9864 } else {
9865 r->driver_name = NULL;
9867 ndr->flags = _flags_save_string;
9870 if (ndr_flags & NDR_BUFFERS) {
9872 uint32_t _flags_save_string = ndr->flags;
9873 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9874 if (r->driver_name) {
9875 uint32_t _relative_save_offset;
9876 _relative_save_offset = ndr->offset;
9877 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
9878 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9879 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9880 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
9881 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9882 ndr->offset = _relative_save_offset;
9884 ndr->flags = _flags_save_string;
9887 return NDR_ERR_SUCCESS;
9890 _PUBLIC_ void ndr_print_spoolss_DriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo1 *r)
9892 ndr_print_struct(ndr, name, "spoolss_DriverInfo1");
9893 ndr->depth++;
9894 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9895 ndr->depth++;
9896 if (r->driver_name) {
9897 ndr_print_string(ndr, "driver_name", r->driver_name);
9899 ndr->depth--;
9900 ndr->depth--;
9903 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1 *r, struct smb_iconv_convenience *ic, int flags)
9905 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo1, ic);
9908 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo2 *r)
9910 if (ndr_flags & NDR_SCALARS) {
9911 NDR_CHECK(ndr_push_align(ndr, 4));
9912 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9914 uint32_t _flags_save_string = ndr->flags;
9915 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9916 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
9917 ndr->flags = _flags_save_string;
9920 uint32_t _flags_save_string = ndr->flags;
9921 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9922 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
9923 ndr->flags = _flags_save_string;
9926 uint32_t _flags_save_string = ndr->flags;
9927 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9928 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
9929 ndr->flags = _flags_save_string;
9932 uint32_t _flags_save_string = ndr->flags;
9933 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9934 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
9935 ndr->flags = _flags_save_string;
9938 uint32_t _flags_save_string = ndr->flags;
9939 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9940 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
9941 ndr->flags = _flags_save_string;
9944 if (ndr_flags & NDR_BUFFERS) {
9946 uint32_t _flags_save_string = ndr->flags;
9947 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9948 if (r->driver_name) {
9949 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
9950 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
9952 ndr->flags = _flags_save_string;
9955 uint32_t _flags_save_string = ndr->flags;
9956 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9957 if (r->architecture) {
9958 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
9959 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
9961 ndr->flags = _flags_save_string;
9964 uint32_t _flags_save_string = ndr->flags;
9965 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9966 if (r->driver_path) {
9967 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
9968 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
9970 ndr->flags = _flags_save_string;
9973 uint32_t _flags_save_string = ndr->flags;
9974 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9975 if (r->data_file) {
9976 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
9977 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
9979 ndr->flags = _flags_save_string;
9982 uint32_t _flags_save_string = ndr->flags;
9983 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9984 if (r->config_file) {
9985 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
9986 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
9988 ndr->flags = _flags_save_string;
9991 return NDR_ERR_SUCCESS;
9994 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo2 *r)
9996 uint32_t _ptr_driver_name;
9997 TALLOC_CTX *_mem_save_driver_name_0;
9998 uint32_t _ptr_architecture;
9999 TALLOC_CTX *_mem_save_architecture_0;
10000 uint32_t _ptr_driver_path;
10001 TALLOC_CTX *_mem_save_driver_path_0;
10002 uint32_t _ptr_data_file;
10003 TALLOC_CTX *_mem_save_data_file_0;
10004 uint32_t _ptr_config_file;
10005 TALLOC_CTX *_mem_save_config_file_0;
10006 if (ndr_flags & NDR_SCALARS) {
10007 NDR_CHECK(ndr_pull_align(ndr, 4));
10008 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10010 uint32_t _flags_save_string = ndr->flags;
10011 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10012 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10013 if (_ptr_driver_name) {
10014 NDR_PULL_ALLOC(ndr, r->driver_name);
10015 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10016 } else {
10017 r->driver_name = NULL;
10019 ndr->flags = _flags_save_string;
10022 uint32_t _flags_save_string = ndr->flags;
10023 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10024 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10025 if (_ptr_architecture) {
10026 NDR_PULL_ALLOC(ndr, r->architecture);
10027 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
10028 } else {
10029 r->architecture = NULL;
10031 ndr->flags = _flags_save_string;
10034 uint32_t _flags_save_string = ndr->flags;
10035 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10036 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10037 if (_ptr_driver_path) {
10038 NDR_PULL_ALLOC(ndr, r->driver_path);
10039 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
10040 } else {
10041 r->driver_path = NULL;
10043 ndr->flags = _flags_save_string;
10046 uint32_t _flags_save_string = ndr->flags;
10047 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10048 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10049 if (_ptr_data_file) {
10050 NDR_PULL_ALLOC(ndr, r->data_file);
10051 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
10052 } else {
10053 r->data_file = NULL;
10055 ndr->flags = _flags_save_string;
10058 uint32_t _flags_save_string = ndr->flags;
10059 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10060 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10061 if (_ptr_config_file) {
10062 NDR_PULL_ALLOC(ndr, r->config_file);
10063 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
10064 } else {
10065 r->config_file = NULL;
10067 ndr->flags = _flags_save_string;
10070 if (ndr_flags & NDR_BUFFERS) {
10072 uint32_t _flags_save_string = ndr->flags;
10073 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10074 if (r->driver_name) {
10075 uint32_t _relative_save_offset;
10076 _relative_save_offset = ndr->offset;
10077 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10078 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10079 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10080 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10081 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10082 ndr->offset = _relative_save_offset;
10084 ndr->flags = _flags_save_string;
10087 uint32_t _flags_save_string = ndr->flags;
10088 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10089 if (r->architecture) {
10090 uint32_t _relative_save_offset;
10091 _relative_save_offset = ndr->offset;
10092 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10093 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10094 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10095 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10096 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10097 ndr->offset = _relative_save_offset;
10099 ndr->flags = _flags_save_string;
10102 uint32_t _flags_save_string = ndr->flags;
10103 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10104 if (r->driver_path) {
10105 uint32_t _relative_save_offset;
10106 _relative_save_offset = ndr->offset;
10107 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
10108 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10109 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10110 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
10111 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10112 ndr->offset = _relative_save_offset;
10114 ndr->flags = _flags_save_string;
10117 uint32_t _flags_save_string = ndr->flags;
10118 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10119 if (r->data_file) {
10120 uint32_t _relative_save_offset;
10121 _relative_save_offset = ndr->offset;
10122 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
10123 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10124 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10125 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
10126 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10127 ndr->offset = _relative_save_offset;
10129 ndr->flags = _flags_save_string;
10132 uint32_t _flags_save_string = ndr->flags;
10133 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10134 if (r->config_file) {
10135 uint32_t _relative_save_offset;
10136 _relative_save_offset = ndr->offset;
10137 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
10138 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10139 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10140 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
10141 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10142 ndr->offset = _relative_save_offset;
10144 ndr->flags = _flags_save_string;
10147 return NDR_ERR_SUCCESS;
10150 _PUBLIC_ void ndr_print_spoolss_DriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo2 *r)
10152 ndr_print_struct(ndr, name, "spoolss_DriverInfo2");
10153 ndr->depth++;
10154 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10155 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10156 ndr->depth++;
10157 if (r->driver_name) {
10158 ndr_print_string(ndr, "driver_name", r->driver_name);
10160 ndr->depth--;
10161 ndr_print_ptr(ndr, "architecture", r->architecture);
10162 ndr->depth++;
10163 if (r->architecture) {
10164 ndr_print_string(ndr, "architecture", r->architecture);
10166 ndr->depth--;
10167 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10168 ndr->depth++;
10169 if (r->driver_path) {
10170 ndr_print_string(ndr, "driver_path", r->driver_path);
10172 ndr->depth--;
10173 ndr_print_ptr(ndr, "data_file", r->data_file);
10174 ndr->depth++;
10175 if (r->data_file) {
10176 ndr_print_string(ndr, "data_file", r->data_file);
10178 ndr->depth--;
10179 ndr_print_ptr(ndr, "config_file", r->config_file);
10180 ndr->depth++;
10181 if (r->config_file) {
10182 ndr_print_string(ndr, "config_file", r->config_file);
10184 ndr->depth--;
10185 ndr->depth--;
10188 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2 *r, struct smb_iconv_convenience *ic, int flags)
10190 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo2, ic);
10193 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo3 *r)
10195 if (ndr_flags & NDR_SCALARS) {
10196 NDR_CHECK(ndr_push_align(ndr, 4));
10197 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10199 uint32_t _flags_save_string = ndr->flags;
10200 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10201 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10202 ndr->flags = _flags_save_string;
10205 uint32_t _flags_save_string = ndr->flags;
10206 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10207 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
10208 ndr->flags = _flags_save_string;
10211 uint32_t _flags_save_string = ndr->flags;
10212 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10213 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
10214 ndr->flags = _flags_save_string;
10217 uint32_t _flags_save_string = ndr->flags;
10218 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10219 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
10220 ndr->flags = _flags_save_string;
10223 uint32_t _flags_save_string = ndr->flags;
10224 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10225 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
10226 ndr->flags = _flags_save_string;
10229 uint32_t _flags_save_string = ndr->flags;
10230 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10231 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
10232 ndr->flags = _flags_save_string;
10235 uint32_t _flags_save_string_array = ndr->flags;
10236 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10237 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
10238 ndr->flags = _flags_save_string_array;
10241 uint32_t _flags_save_string = ndr->flags;
10242 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10243 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
10244 ndr->flags = _flags_save_string;
10247 uint32_t _flags_save_string = ndr->flags;
10248 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10249 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
10250 ndr->flags = _flags_save_string;
10253 if (ndr_flags & NDR_BUFFERS) {
10255 uint32_t _flags_save_string = ndr->flags;
10256 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10257 if (r->driver_name) {
10258 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
10259 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10261 ndr->flags = _flags_save_string;
10264 uint32_t _flags_save_string = ndr->flags;
10265 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10266 if (r->architecture) {
10267 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
10268 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
10270 ndr->flags = _flags_save_string;
10273 uint32_t _flags_save_string = ndr->flags;
10274 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10275 if (r->driver_path) {
10276 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
10277 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
10279 ndr->flags = _flags_save_string;
10282 uint32_t _flags_save_string = ndr->flags;
10283 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10284 if (r->data_file) {
10285 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
10286 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
10288 ndr->flags = _flags_save_string;
10291 uint32_t _flags_save_string = ndr->flags;
10292 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10293 if (r->config_file) {
10294 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
10295 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
10297 ndr->flags = _flags_save_string;
10300 uint32_t _flags_save_string = ndr->flags;
10301 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10302 if (r->help_file) {
10303 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
10304 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
10306 ndr->flags = _flags_save_string;
10309 uint32_t _flags_save_string_array = ndr->flags;
10310 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10311 if (r->dependent_files) {
10312 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
10313 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
10315 ndr->flags = _flags_save_string_array;
10318 uint32_t _flags_save_string = ndr->flags;
10319 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10320 if (r->monitor_name) {
10321 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
10322 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
10324 ndr->flags = _flags_save_string;
10327 uint32_t _flags_save_string = ndr->flags;
10328 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10329 if (r->default_datatype) {
10330 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
10331 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
10333 ndr->flags = _flags_save_string;
10336 return NDR_ERR_SUCCESS;
10339 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo3 *r)
10341 uint32_t _ptr_driver_name;
10342 TALLOC_CTX *_mem_save_driver_name_0;
10343 uint32_t _ptr_architecture;
10344 TALLOC_CTX *_mem_save_architecture_0;
10345 uint32_t _ptr_driver_path;
10346 TALLOC_CTX *_mem_save_driver_path_0;
10347 uint32_t _ptr_data_file;
10348 TALLOC_CTX *_mem_save_data_file_0;
10349 uint32_t _ptr_config_file;
10350 TALLOC_CTX *_mem_save_config_file_0;
10351 uint32_t _ptr_help_file;
10352 TALLOC_CTX *_mem_save_help_file_0;
10353 uint32_t _ptr_dependent_files;
10354 TALLOC_CTX *_mem_save_dependent_files_0;
10355 uint32_t _ptr_monitor_name;
10356 TALLOC_CTX *_mem_save_monitor_name_0;
10357 uint32_t _ptr_default_datatype;
10358 TALLOC_CTX *_mem_save_default_datatype_0;
10359 if (ndr_flags & NDR_SCALARS) {
10360 NDR_CHECK(ndr_pull_align(ndr, 4));
10361 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10363 uint32_t _flags_save_string = ndr->flags;
10364 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10365 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10366 if (_ptr_driver_name) {
10367 NDR_PULL_ALLOC(ndr, r->driver_name);
10368 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10369 } else {
10370 r->driver_name = NULL;
10372 ndr->flags = _flags_save_string;
10375 uint32_t _flags_save_string = ndr->flags;
10376 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10377 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10378 if (_ptr_architecture) {
10379 NDR_PULL_ALLOC(ndr, r->architecture);
10380 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
10381 } else {
10382 r->architecture = NULL;
10384 ndr->flags = _flags_save_string;
10387 uint32_t _flags_save_string = ndr->flags;
10388 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10389 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10390 if (_ptr_driver_path) {
10391 NDR_PULL_ALLOC(ndr, r->driver_path);
10392 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
10393 } else {
10394 r->driver_path = NULL;
10396 ndr->flags = _flags_save_string;
10399 uint32_t _flags_save_string = ndr->flags;
10400 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10401 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10402 if (_ptr_data_file) {
10403 NDR_PULL_ALLOC(ndr, r->data_file);
10404 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
10405 } else {
10406 r->data_file = NULL;
10408 ndr->flags = _flags_save_string;
10411 uint32_t _flags_save_string = ndr->flags;
10412 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10413 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10414 if (_ptr_config_file) {
10415 NDR_PULL_ALLOC(ndr, r->config_file);
10416 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
10417 } else {
10418 r->config_file = NULL;
10420 ndr->flags = _flags_save_string;
10423 uint32_t _flags_save_string = ndr->flags;
10424 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10425 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
10426 if (_ptr_help_file) {
10427 NDR_PULL_ALLOC(ndr, r->help_file);
10428 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
10429 } else {
10430 r->help_file = NULL;
10432 ndr->flags = _flags_save_string;
10435 uint32_t _flags_save_string_array = ndr->flags;
10436 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10437 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
10438 if (_ptr_dependent_files) {
10439 NDR_PULL_ALLOC(ndr, r->dependent_files);
10440 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
10441 } else {
10442 r->dependent_files = NULL;
10444 ndr->flags = _flags_save_string_array;
10447 uint32_t _flags_save_string = ndr->flags;
10448 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10449 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
10450 if (_ptr_monitor_name) {
10451 NDR_PULL_ALLOC(ndr, r->monitor_name);
10452 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
10453 } else {
10454 r->monitor_name = NULL;
10456 ndr->flags = _flags_save_string;
10459 uint32_t _flags_save_string = ndr->flags;
10460 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10461 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
10462 if (_ptr_default_datatype) {
10463 NDR_PULL_ALLOC(ndr, r->default_datatype);
10464 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
10465 } else {
10466 r->default_datatype = NULL;
10468 ndr->flags = _flags_save_string;
10471 if (ndr_flags & NDR_BUFFERS) {
10473 uint32_t _flags_save_string = ndr->flags;
10474 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10475 if (r->driver_name) {
10476 uint32_t _relative_save_offset;
10477 _relative_save_offset = ndr->offset;
10478 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10479 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10480 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10481 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10482 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10483 ndr->offset = _relative_save_offset;
10485 ndr->flags = _flags_save_string;
10488 uint32_t _flags_save_string = ndr->flags;
10489 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10490 if (r->architecture) {
10491 uint32_t _relative_save_offset;
10492 _relative_save_offset = ndr->offset;
10493 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10494 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10495 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10496 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10497 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10498 ndr->offset = _relative_save_offset;
10500 ndr->flags = _flags_save_string;
10503 uint32_t _flags_save_string = ndr->flags;
10504 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10505 if (r->driver_path) {
10506 uint32_t _relative_save_offset;
10507 _relative_save_offset = ndr->offset;
10508 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
10509 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10510 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10511 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
10512 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10513 ndr->offset = _relative_save_offset;
10515 ndr->flags = _flags_save_string;
10518 uint32_t _flags_save_string = ndr->flags;
10519 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10520 if (r->data_file) {
10521 uint32_t _relative_save_offset;
10522 _relative_save_offset = ndr->offset;
10523 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
10524 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10525 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10526 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
10527 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10528 ndr->offset = _relative_save_offset;
10530 ndr->flags = _flags_save_string;
10533 uint32_t _flags_save_string = ndr->flags;
10534 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10535 if (r->config_file) {
10536 uint32_t _relative_save_offset;
10537 _relative_save_offset = ndr->offset;
10538 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
10539 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10540 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10541 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
10542 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10543 ndr->offset = _relative_save_offset;
10545 ndr->flags = _flags_save_string;
10548 uint32_t _flags_save_string = ndr->flags;
10549 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10550 if (r->help_file) {
10551 uint32_t _relative_save_offset;
10552 _relative_save_offset = ndr->offset;
10553 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
10554 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10555 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
10556 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
10557 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
10558 ndr->offset = _relative_save_offset;
10560 ndr->flags = _flags_save_string;
10563 uint32_t _flags_save_string_array = ndr->flags;
10564 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10565 if (r->dependent_files) {
10566 uint32_t _relative_save_offset;
10567 _relative_save_offset = ndr->offset;
10568 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
10569 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
10570 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
10571 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
10572 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
10573 ndr->offset = _relative_save_offset;
10575 ndr->flags = _flags_save_string_array;
10578 uint32_t _flags_save_string = ndr->flags;
10579 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10580 if (r->monitor_name) {
10581 uint32_t _relative_save_offset;
10582 _relative_save_offset = ndr->offset;
10583 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
10584 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10585 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
10586 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
10587 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
10588 ndr->offset = _relative_save_offset;
10590 ndr->flags = _flags_save_string;
10593 uint32_t _flags_save_string = ndr->flags;
10594 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10595 if (r->default_datatype) {
10596 uint32_t _relative_save_offset;
10597 _relative_save_offset = ndr->offset;
10598 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
10599 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
10600 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
10601 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
10602 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
10603 ndr->offset = _relative_save_offset;
10605 ndr->flags = _flags_save_string;
10608 return NDR_ERR_SUCCESS;
10611 _PUBLIC_ void ndr_print_spoolss_DriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo3 *r)
10613 ndr_print_struct(ndr, name, "spoolss_DriverInfo3");
10614 ndr->depth++;
10615 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10616 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10617 ndr->depth++;
10618 if (r->driver_name) {
10619 ndr_print_string(ndr, "driver_name", r->driver_name);
10621 ndr->depth--;
10622 ndr_print_ptr(ndr, "architecture", r->architecture);
10623 ndr->depth++;
10624 if (r->architecture) {
10625 ndr_print_string(ndr, "architecture", r->architecture);
10627 ndr->depth--;
10628 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10629 ndr->depth++;
10630 if (r->driver_path) {
10631 ndr_print_string(ndr, "driver_path", r->driver_path);
10633 ndr->depth--;
10634 ndr_print_ptr(ndr, "data_file", r->data_file);
10635 ndr->depth++;
10636 if (r->data_file) {
10637 ndr_print_string(ndr, "data_file", r->data_file);
10639 ndr->depth--;
10640 ndr_print_ptr(ndr, "config_file", r->config_file);
10641 ndr->depth++;
10642 if (r->config_file) {
10643 ndr_print_string(ndr, "config_file", r->config_file);
10645 ndr->depth--;
10646 ndr_print_ptr(ndr, "help_file", r->help_file);
10647 ndr->depth++;
10648 if (r->help_file) {
10649 ndr_print_string(ndr, "help_file", r->help_file);
10651 ndr->depth--;
10652 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
10653 ndr->depth++;
10654 if (r->dependent_files) {
10655 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
10657 ndr->depth--;
10658 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
10659 ndr->depth++;
10660 if (r->monitor_name) {
10661 ndr_print_string(ndr, "monitor_name", r->monitor_name);
10663 ndr->depth--;
10664 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
10665 ndr->depth++;
10666 if (r->default_datatype) {
10667 ndr_print_string(ndr, "default_datatype", r->default_datatype);
10669 ndr->depth--;
10670 ndr->depth--;
10673 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3 *r, struct smb_iconv_convenience *ic, int flags)
10675 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo3, ic);
10678 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo4 *r)
10680 if (ndr_flags & NDR_SCALARS) {
10681 NDR_CHECK(ndr_push_align(ndr, 4));
10682 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10684 uint32_t _flags_save_string = ndr->flags;
10685 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10686 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10687 ndr->flags = _flags_save_string;
10690 uint32_t _flags_save_string = ndr->flags;
10691 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10692 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
10693 ndr->flags = _flags_save_string;
10696 uint32_t _flags_save_string = ndr->flags;
10697 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10698 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
10699 ndr->flags = _flags_save_string;
10702 uint32_t _flags_save_string = ndr->flags;
10703 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10704 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
10705 ndr->flags = _flags_save_string;
10708 uint32_t _flags_save_string = ndr->flags;
10709 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10710 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
10711 ndr->flags = _flags_save_string;
10714 uint32_t _flags_save_string = ndr->flags;
10715 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10716 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
10717 ndr->flags = _flags_save_string;
10720 uint32_t _flags_save_string_array = ndr->flags;
10721 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10722 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
10723 ndr->flags = _flags_save_string_array;
10726 uint32_t _flags_save_string = ndr->flags;
10727 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10728 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
10729 ndr->flags = _flags_save_string;
10732 uint32_t _flags_save_string = ndr->flags;
10733 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10734 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
10735 ndr->flags = _flags_save_string;
10738 uint32_t _flags_save_string_array = ndr->flags;
10739 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10740 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
10741 ndr->flags = _flags_save_string_array;
10744 if (ndr_flags & NDR_BUFFERS) {
10746 uint32_t _flags_save_string = ndr->flags;
10747 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10748 if (r->driver_name) {
10749 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
10750 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10752 ndr->flags = _flags_save_string;
10755 uint32_t _flags_save_string = ndr->flags;
10756 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10757 if (r->architecture) {
10758 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
10759 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
10761 ndr->flags = _flags_save_string;
10764 uint32_t _flags_save_string = ndr->flags;
10765 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10766 if (r->driver_path) {
10767 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
10768 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
10770 ndr->flags = _flags_save_string;
10773 uint32_t _flags_save_string = ndr->flags;
10774 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10775 if (r->data_file) {
10776 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
10777 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
10779 ndr->flags = _flags_save_string;
10782 uint32_t _flags_save_string = ndr->flags;
10783 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10784 if (r->config_file) {
10785 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
10786 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
10788 ndr->flags = _flags_save_string;
10791 uint32_t _flags_save_string = ndr->flags;
10792 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10793 if (r->help_file) {
10794 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
10795 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
10797 ndr->flags = _flags_save_string;
10800 uint32_t _flags_save_string_array = ndr->flags;
10801 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10802 if (r->dependent_files) {
10803 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
10804 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
10806 ndr->flags = _flags_save_string_array;
10809 uint32_t _flags_save_string = ndr->flags;
10810 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10811 if (r->monitor_name) {
10812 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
10813 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
10815 ndr->flags = _flags_save_string;
10818 uint32_t _flags_save_string = ndr->flags;
10819 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10820 if (r->default_datatype) {
10821 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
10822 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
10824 ndr->flags = _flags_save_string;
10827 uint32_t _flags_save_string_array = ndr->flags;
10828 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10829 if (r->previous_names) {
10830 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
10831 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
10833 ndr->flags = _flags_save_string_array;
10836 return NDR_ERR_SUCCESS;
10839 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo4 *r)
10841 uint32_t _ptr_driver_name;
10842 TALLOC_CTX *_mem_save_driver_name_0;
10843 uint32_t _ptr_architecture;
10844 TALLOC_CTX *_mem_save_architecture_0;
10845 uint32_t _ptr_driver_path;
10846 TALLOC_CTX *_mem_save_driver_path_0;
10847 uint32_t _ptr_data_file;
10848 TALLOC_CTX *_mem_save_data_file_0;
10849 uint32_t _ptr_config_file;
10850 TALLOC_CTX *_mem_save_config_file_0;
10851 uint32_t _ptr_help_file;
10852 TALLOC_CTX *_mem_save_help_file_0;
10853 uint32_t _ptr_dependent_files;
10854 TALLOC_CTX *_mem_save_dependent_files_0;
10855 uint32_t _ptr_monitor_name;
10856 TALLOC_CTX *_mem_save_monitor_name_0;
10857 uint32_t _ptr_default_datatype;
10858 TALLOC_CTX *_mem_save_default_datatype_0;
10859 uint32_t _ptr_previous_names;
10860 TALLOC_CTX *_mem_save_previous_names_0;
10861 if (ndr_flags & NDR_SCALARS) {
10862 NDR_CHECK(ndr_pull_align(ndr, 4));
10863 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10865 uint32_t _flags_save_string = ndr->flags;
10866 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10867 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10868 if (_ptr_driver_name) {
10869 NDR_PULL_ALLOC(ndr, r->driver_name);
10870 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10871 } else {
10872 r->driver_name = NULL;
10874 ndr->flags = _flags_save_string;
10877 uint32_t _flags_save_string = ndr->flags;
10878 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10879 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10880 if (_ptr_architecture) {
10881 NDR_PULL_ALLOC(ndr, r->architecture);
10882 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
10883 } else {
10884 r->architecture = NULL;
10886 ndr->flags = _flags_save_string;
10889 uint32_t _flags_save_string = ndr->flags;
10890 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10891 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10892 if (_ptr_driver_path) {
10893 NDR_PULL_ALLOC(ndr, r->driver_path);
10894 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
10895 } else {
10896 r->driver_path = NULL;
10898 ndr->flags = _flags_save_string;
10901 uint32_t _flags_save_string = ndr->flags;
10902 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10903 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10904 if (_ptr_data_file) {
10905 NDR_PULL_ALLOC(ndr, r->data_file);
10906 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
10907 } else {
10908 r->data_file = NULL;
10910 ndr->flags = _flags_save_string;
10913 uint32_t _flags_save_string = ndr->flags;
10914 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10915 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10916 if (_ptr_config_file) {
10917 NDR_PULL_ALLOC(ndr, r->config_file);
10918 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
10919 } else {
10920 r->config_file = NULL;
10922 ndr->flags = _flags_save_string;
10925 uint32_t _flags_save_string = ndr->flags;
10926 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10927 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
10928 if (_ptr_help_file) {
10929 NDR_PULL_ALLOC(ndr, r->help_file);
10930 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
10931 } else {
10932 r->help_file = NULL;
10934 ndr->flags = _flags_save_string;
10937 uint32_t _flags_save_string_array = ndr->flags;
10938 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10939 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
10940 if (_ptr_dependent_files) {
10941 NDR_PULL_ALLOC(ndr, r->dependent_files);
10942 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
10943 } else {
10944 r->dependent_files = NULL;
10946 ndr->flags = _flags_save_string_array;
10949 uint32_t _flags_save_string = ndr->flags;
10950 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10951 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
10952 if (_ptr_monitor_name) {
10953 NDR_PULL_ALLOC(ndr, r->monitor_name);
10954 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
10955 } else {
10956 r->monitor_name = NULL;
10958 ndr->flags = _flags_save_string;
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_default_datatype));
10964 if (_ptr_default_datatype) {
10965 NDR_PULL_ALLOC(ndr, r->default_datatype);
10966 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
10967 } else {
10968 r->default_datatype = NULL;
10970 ndr->flags = _flags_save_string;
10973 uint32_t _flags_save_string_array = ndr->flags;
10974 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10975 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
10976 if (_ptr_previous_names) {
10977 NDR_PULL_ALLOC(ndr, r->previous_names);
10978 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
10979 } else {
10980 r->previous_names = NULL;
10982 ndr->flags = _flags_save_string_array;
10985 if (ndr_flags & NDR_BUFFERS) {
10987 uint32_t _flags_save_string = ndr->flags;
10988 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10989 if (r->driver_name) {
10990 uint32_t _relative_save_offset;
10991 _relative_save_offset = ndr->offset;
10992 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10993 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10994 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10995 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10996 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10997 ndr->offset = _relative_save_offset;
10999 ndr->flags = _flags_save_string;
11002 uint32_t _flags_save_string = ndr->flags;
11003 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11004 if (r->architecture) {
11005 uint32_t _relative_save_offset;
11006 _relative_save_offset = ndr->offset;
11007 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11008 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11009 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11010 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11011 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11012 ndr->offset = _relative_save_offset;
11014 ndr->flags = _flags_save_string;
11017 uint32_t _flags_save_string = ndr->flags;
11018 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11019 if (r->driver_path) {
11020 uint32_t _relative_save_offset;
11021 _relative_save_offset = ndr->offset;
11022 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11023 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11024 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11025 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11026 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11027 ndr->offset = _relative_save_offset;
11029 ndr->flags = _flags_save_string;
11032 uint32_t _flags_save_string = ndr->flags;
11033 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11034 if (r->data_file) {
11035 uint32_t _relative_save_offset;
11036 _relative_save_offset = ndr->offset;
11037 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11038 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11039 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11040 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11041 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11042 ndr->offset = _relative_save_offset;
11044 ndr->flags = _flags_save_string;
11047 uint32_t _flags_save_string = ndr->flags;
11048 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11049 if (r->config_file) {
11050 uint32_t _relative_save_offset;
11051 _relative_save_offset = ndr->offset;
11052 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11053 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11054 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11055 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11056 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11057 ndr->offset = _relative_save_offset;
11059 ndr->flags = _flags_save_string;
11062 uint32_t _flags_save_string = ndr->flags;
11063 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11064 if (r->help_file) {
11065 uint32_t _relative_save_offset;
11066 _relative_save_offset = ndr->offset;
11067 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
11068 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11069 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
11070 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
11071 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
11072 ndr->offset = _relative_save_offset;
11074 ndr->flags = _flags_save_string;
11077 uint32_t _flags_save_string_array = ndr->flags;
11078 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11079 if (r->dependent_files) {
11080 uint32_t _relative_save_offset;
11081 _relative_save_offset = ndr->offset;
11082 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
11083 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
11084 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
11085 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
11086 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
11087 ndr->offset = _relative_save_offset;
11089 ndr->flags = _flags_save_string_array;
11092 uint32_t _flags_save_string = ndr->flags;
11093 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11094 if (r->monitor_name) {
11095 uint32_t _relative_save_offset;
11096 _relative_save_offset = ndr->offset;
11097 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
11098 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11099 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
11100 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
11101 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
11102 ndr->offset = _relative_save_offset;
11104 ndr->flags = _flags_save_string;
11107 uint32_t _flags_save_string = ndr->flags;
11108 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11109 if (r->default_datatype) {
11110 uint32_t _relative_save_offset;
11111 _relative_save_offset = ndr->offset;
11112 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
11113 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11114 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
11115 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
11116 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
11117 ndr->offset = _relative_save_offset;
11119 ndr->flags = _flags_save_string;
11122 uint32_t _flags_save_string_array = ndr->flags;
11123 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11124 if (r->previous_names) {
11125 uint32_t _relative_save_offset;
11126 _relative_save_offset = ndr->offset;
11127 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
11128 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
11129 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
11130 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
11131 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
11132 ndr->offset = _relative_save_offset;
11134 ndr->flags = _flags_save_string_array;
11137 return NDR_ERR_SUCCESS;
11140 _PUBLIC_ void ndr_print_spoolss_DriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo4 *r)
11142 ndr_print_struct(ndr, name, "spoolss_DriverInfo4");
11143 ndr->depth++;
11144 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11145 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11146 ndr->depth++;
11147 if (r->driver_name) {
11148 ndr_print_string(ndr, "driver_name", r->driver_name);
11150 ndr->depth--;
11151 ndr_print_ptr(ndr, "architecture", r->architecture);
11152 ndr->depth++;
11153 if (r->architecture) {
11154 ndr_print_string(ndr, "architecture", r->architecture);
11156 ndr->depth--;
11157 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11158 ndr->depth++;
11159 if (r->driver_path) {
11160 ndr_print_string(ndr, "driver_path", r->driver_path);
11162 ndr->depth--;
11163 ndr_print_ptr(ndr, "data_file", r->data_file);
11164 ndr->depth++;
11165 if (r->data_file) {
11166 ndr_print_string(ndr, "data_file", r->data_file);
11168 ndr->depth--;
11169 ndr_print_ptr(ndr, "config_file", r->config_file);
11170 ndr->depth++;
11171 if (r->config_file) {
11172 ndr_print_string(ndr, "config_file", r->config_file);
11174 ndr->depth--;
11175 ndr_print_ptr(ndr, "help_file", r->help_file);
11176 ndr->depth++;
11177 if (r->help_file) {
11178 ndr_print_string(ndr, "help_file", r->help_file);
11180 ndr->depth--;
11181 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
11182 ndr->depth++;
11183 if (r->dependent_files) {
11184 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
11186 ndr->depth--;
11187 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
11188 ndr->depth++;
11189 if (r->monitor_name) {
11190 ndr_print_string(ndr, "monitor_name", r->monitor_name);
11192 ndr->depth--;
11193 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
11194 ndr->depth++;
11195 if (r->default_datatype) {
11196 ndr_print_string(ndr, "default_datatype", r->default_datatype);
11198 ndr->depth--;
11199 ndr_print_ptr(ndr, "previous_names", r->previous_names);
11200 ndr->depth++;
11201 if (r->previous_names) {
11202 ndr_print_string_array(ndr, "previous_names", r->previous_names);
11204 ndr->depth--;
11205 ndr->depth--;
11208 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4 *r, struct smb_iconv_convenience *ic, int flags)
11210 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo4, ic);
11213 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo5 *r)
11215 if (ndr_flags & NDR_SCALARS) {
11216 NDR_CHECK(ndr_push_align(ndr, 4));
11217 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11219 uint32_t _flags_save_string = ndr->flags;
11220 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11221 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11222 ndr->flags = _flags_save_string;
11225 uint32_t _flags_save_string = ndr->flags;
11226 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11227 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11228 ndr->flags = _flags_save_string;
11231 uint32_t _flags_save_string = ndr->flags;
11232 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11233 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11234 ndr->flags = _flags_save_string;
11237 uint32_t _flags_save_string = ndr->flags;
11238 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11239 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11240 ndr->flags = _flags_save_string;
11243 uint32_t _flags_save_string = ndr->flags;
11244 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11245 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11246 ndr->flags = _flags_save_string;
11248 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_attributes));
11249 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->config_version));
11250 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_version));
11252 if (ndr_flags & NDR_BUFFERS) {
11254 uint32_t _flags_save_string = ndr->flags;
11255 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11256 if (r->driver_name) {
11257 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
11258 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11260 ndr->flags = _flags_save_string;
11263 uint32_t _flags_save_string = ndr->flags;
11264 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11265 if (r->architecture) {
11266 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
11267 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11269 ndr->flags = _flags_save_string;
11272 uint32_t _flags_save_string = ndr->flags;
11273 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11274 if (r->driver_path) {
11275 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
11276 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11278 ndr->flags = _flags_save_string;
11281 uint32_t _flags_save_string = ndr->flags;
11282 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11283 if (r->data_file) {
11284 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
11285 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11287 ndr->flags = _flags_save_string;
11290 uint32_t _flags_save_string = ndr->flags;
11291 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11292 if (r->config_file) {
11293 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
11294 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11296 ndr->flags = _flags_save_string;
11299 return NDR_ERR_SUCCESS;
11302 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo5 *r)
11304 uint32_t _ptr_driver_name;
11305 TALLOC_CTX *_mem_save_driver_name_0;
11306 uint32_t _ptr_architecture;
11307 TALLOC_CTX *_mem_save_architecture_0;
11308 uint32_t _ptr_driver_path;
11309 TALLOC_CTX *_mem_save_driver_path_0;
11310 uint32_t _ptr_data_file;
11311 TALLOC_CTX *_mem_save_data_file_0;
11312 uint32_t _ptr_config_file;
11313 TALLOC_CTX *_mem_save_config_file_0;
11314 if (ndr_flags & NDR_SCALARS) {
11315 NDR_CHECK(ndr_pull_align(ndr, 4));
11316 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11318 uint32_t _flags_save_string = ndr->flags;
11319 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11320 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11321 if (_ptr_driver_name) {
11322 NDR_PULL_ALLOC(ndr, r->driver_name);
11323 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11324 } else {
11325 r->driver_name = NULL;
11327 ndr->flags = _flags_save_string;
11330 uint32_t _flags_save_string = ndr->flags;
11331 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11332 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11333 if (_ptr_architecture) {
11334 NDR_PULL_ALLOC(ndr, r->architecture);
11335 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11336 } else {
11337 r->architecture = NULL;
11339 ndr->flags = _flags_save_string;
11342 uint32_t _flags_save_string = ndr->flags;
11343 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11344 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11345 if (_ptr_driver_path) {
11346 NDR_PULL_ALLOC(ndr, r->driver_path);
11347 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11348 } else {
11349 r->driver_path = NULL;
11351 ndr->flags = _flags_save_string;
11354 uint32_t _flags_save_string = ndr->flags;
11355 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11356 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11357 if (_ptr_data_file) {
11358 NDR_PULL_ALLOC(ndr, r->data_file);
11359 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11360 } else {
11361 r->data_file = NULL;
11363 ndr->flags = _flags_save_string;
11366 uint32_t _flags_save_string = ndr->flags;
11367 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11368 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11369 if (_ptr_config_file) {
11370 NDR_PULL_ALLOC(ndr, r->config_file);
11371 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11372 } else {
11373 r->config_file = NULL;
11375 ndr->flags = _flags_save_string;
11377 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_attributes));
11378 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->config_version));
11379 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_version));
11381 if (ndr_flags & NDR_BUFFERS) {
11383 uint32_t _flags_save_string = ndr->flags;
11384 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11385 if (r->driver_name) {
11386 uint32_t _relative_save_offset;
11387 _relative_save_offset = ndr->offset;
11388 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11389 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11390 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11391 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11392 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11393 ndr->offset = _relative_save_offset;
11395 ndr->flags = _flags_save_string;
11398 uint32_t _flags_save_string = ndr->flags;
11399 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11400 if (r->architecture) {
11401 uint32_t _relative_save_offset;
11402 _relative_save_offset = ndr->offset;
11403 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11404 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11405 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11406 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11407 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11408 ndr->offset = _relative_save_offset;
11410 ndr->flags = _flags_save_string;
11413 uint32_t _flags_save_string = ndr->flags;
11414 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11415 if (r->driver_path) {
11416 uint32_t _relative_save_offset;
11417 _relative_save_offset = ndr->offset;
11418 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11419 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11420 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11421 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11422 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11423 ndr->offset = _relative_save_offset;
11425 ndr->flags = _flags_save_string;
11428 uint32_t _flags_save_string = ndr->flags;
11429 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11430 if (r->data_file) {
11431 uint32_t _relative_save_offset;
11432 _relative_save_offset = ndr->offset;
11433 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11434 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11435 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11436 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11437 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11438 ndr->offset = _relative_save_offset;
11440 ndr->flags = _flags_save_string;
11443 uint32_t _flags_save_string = ndr->flags;
11444 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11445 if (r->config_file) {
11446 uint32_t _relative_save_offset;
11447 _relative_save_offset = ndr->offset;
11448 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11449 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11450 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11451 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11452 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11453 ndr->offset = _relative_save_offset;
11455 ndr->flags = _flags_save_string;
11458 return NDR_ERR_SUCCESS;
11461 _PUBLIC_ void ndr_print_spoolss_DriverInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo5 *r)
11463 ndr_print_struct(ndr, name, "spoolss_DriverInfo5");
11464 ndr->depth++;
11465 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11466 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11467 ndr->depth++;
11468 if (r->driver_name) {
11469 ndr_print_string(ndr, "driver_name", r->driver_name);
11471 ndr->depth--;
11472 ndr_print_ptr(ndr, "architecture", r->architecture);
11473 ndr->depth++;
11474 if (r->architecture) {
11475 ndr_print_string(ndr, "architecture", r->architecture);
11477 ndr->depth--;
11478 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11479 ndr->depth++;
11480 if (r->driver_path) {
11481 ndr_print_string(ndr, "driver_path", r->driver_path);
11483 ndr->depth--;
11484 ndr_print_ptr(ndr, "data_file", r->data_file);
11485 ndr->depth++;
11486 if (r->data_file) {
11487 ndr_print_string(ndr, "data_file", r->data_file);
11489 ndr->depth--;
11490 ndr_print_ptr(ndr, "config_file", r->config_file);
11491 ndr->depth++;
11492 if (r->config_file) {
11493 ndr_print_string(ndr, "config_file", r->config_file);
11495 ndr->depth--;
11496 ndr_print_uint32(ndr, "driver_attributes", r->driver_attributes);
11497 ndr_print_uint32(ndr, "config_version", r->config_version);
11498 ndr_print_uint32(ndr, "driver_version", r->driver_version);
11499 ndr->depth--;
11502 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5 *r, struct smb_iconv_convenience *ic, int flags)
11504 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo5, ic);
11507 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo6 *r)
11509 if (ndr_flags & NDR_SCALARS) {
11510 NDR_CHECK(ndr_push_align(ndr, 8));
11511 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11513 uint32_t _flags_save_string = ndr->flags;
11514 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11515 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11516 ndr->flags = _flags_save_string;
11519 uint32_t _flags_save_string = ndr->flags;
11520 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11521 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11522 ndr->flags = _flags_save_string;
11525 uint32_t _flags_save_string = ndr->flags;
11526 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11527 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11528 ndr->flags = _flags_save_string;
11531 uint32_t _flags_save_string = ndr->flags;
11532 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11533 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11534 ndr->flags = _flags_save_string;
11537 uint32_t _flags_save_string = ndr->flags;
11538 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11539 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11540 ndr->flags = _flags_save_string;
11543 uint32_t _flags_save_string = ndr->flags;
11544 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11545 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
11546 ndr->flags = _flags_save_string;
11549 uint32_t _flags_save_string_array = ndr->flags;
11550 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11551 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
11552 ndr->flags = _flags_save_string_array;
11555 uint32_t _flags_save_string = ndr->flags;
11556 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11557 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
11558 ndr->flags = _flags_save_string;
11561 uint32_t _flags_save_string = ndr->flags;
11562 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11563 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
11564 ndr->flags = _flags_save_string;
11567 uint32_t _flags_save_string_array = ndr->flags;
11568 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11569 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
11570 ndr->flags = _flags_save_string_array;
11572 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
11573 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
11575 uint32_t _flags_save_string = ndr->flags;
11576 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11577 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
11578 ndr->flags = _flags_save_string;
11581 uint32_t _flags_save_string = ndr->flags;
11582 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11583 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
11584 ndr->flags = _flags_save_string;
11587 uint32_t _flags_save_string = ndr->flags;
11588 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11589 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
11590 ndr->flags = _flags_save_string;
11593 uint32_t _flags_save_string = ndr->flags;
11594 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11595 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
11596 ndr->flags = _flags_save_string;
11599 if (ndr_flags & NDR_BUFFERS) {
11601 uint32_t _flags_save_string = ndr->flags;
11602 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11603 if (r->driver_name) {
11604 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
11605 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11607 ndr->flags = _flags_save_string;
11610 uint32_t _flags_save_string = ndr->flags;
11611 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11612 if (r->architecture) {
11613 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
11614 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11616 ndr->flags = _flags_save_string;
11619 uint32_t _flags_save_string = ndr->flags;
11620 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11621 if (r->driver_path) {
11622 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
11623 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11625 ndr->flags = _flags_save_string;
11628 uint32_t _flags_save_string = ndr->flags;
11629 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11630 if (r->data_file) {
11631 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
11632 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11634 ndr->flags = _flags_save_string;
11637 uint32_t _flags_save_string = ndr->flags;
11638 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11639 if (r->config_file) {
11640 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
11641 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11643 ndr->flags = _flags_save_string;
11646 uint32_t _flags_save_string = ndr->flags;
11647 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11648 if (r->help_file) {
11649 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
11650 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
11652 ndr->flags = _flags_save_string;
11655 uint32_t _flags_save_string_array = ndr->flags;
11656 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11657 if (r->dependent_files) {
11658 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
11659 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
11661 ndr->flags = _flags_save_string_array;
11664 uint32_t _flags_save_string = ndr->flags;
11665 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11666 if (r->monitor_name) {
11667 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
11668 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
11670 ndr->flags = _flags_save_string;
11673 uint32_t _flags_save_string = ndr->flags;
11674 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11675 if (r->default_datatype) {
11676 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
11677 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
11679 ndr->flags = _flags_save_string;
11682 uint32_t _flags_save_string_array = ndr->flags;
11683 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11684 if (r->previous_names) {
11685 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
11686 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
11688 ndr->flags = _flags_save_string_array;
11691 uint32_t _flags_save_string = ndr->flags;
11692 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11693 if (r->manufacturer_name) {
11694 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
11695 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
11697 ndr->flags = _flags_save_string;
11700 uint32_t _flags_save_string = ndr->flags;
11701 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11702 if (r->manufacturer_url) {
11703 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
11704 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
11706 ndr->flags = _flags_save_string;
11709 uint32_t _flags_save_string = ndr->flags;
11710 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11711 if (r->hardware_id) {
11712 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
11713 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
11715 ndr->flags = _flags_save_string;
11718 uint32_t _flags_save_string = ndr->flags;
11719 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11720 if (r->provider) {
11721 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
11722 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
11724 ndr->flags = _flags_save_string;
11727 return NDR_ERR_SUCCESS;
11730 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo6 *r)
11732 uint32_t _ptr_driver_name;
11733 TALLOC_CTX *_mem_save_driver_name_0;
11734 uint32_t _ptr_architecture;
11735 TALLOC_CTX *_mem_save_architecture_0;
11736 uint32_t _ptr_driver_path;
11737 TALLOC_CTX *_mem_save_driver_path_0;
11738 uint32_t _ptr_data_file;
11739 TALLOC_CTX *_mem_save_data_file_0;
11740 uint32_t _ptr_config_file;
11741 TALLOC_CTX *_mem_save_config_file_0;
11742 uint32_t _ptr_help_file;
11743 TALLOC_CTX *_mem_save_help_file_0;
11744 uint32_t _ptr_dependent_files;
11745 TALLOC_CTX *_mem_save_dependent_files_0;
11746 uint32_t _ptr_monitor_name;
11747 TALLOC_CTX *_mem_save_monitor_name_0;
11748 uint32_t _ptr_default_datatype;
11749 TALLOC_CTX *_mem_save_default_datatype_0;
11750 uint32_t _ptr_previous_names;
11751 TALLOC_CTX *_mem_save_previous_names_0;
11752 uint32_t _ptr_manufacturer_name;
11753 TALLOC_CTX *_mem_save_manufacturer_name_0;
11754 uint32_t _ptr_manufacturer_url;
11755 TALLOC_CTX *_mem_save_manufacturer_url_0;
11756 uint32_t _ptr_hardware_id;
11757 TALLOC_CTX *_mem_save_hardware_id_0;
11758 uint32_t _ptr_provider;
11759 TALLOC_CTX *_mem_save_provider_0;
11760 if (ndr_flags & NDR_SCALARS) {
11761 NDR_CHECK(ndr_pull_align(ndr, 8));
11762 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11764 uint32_t _flags_save_string = ndr->flags;
11765 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11766 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11767 if (_ptr_driver_name) {
11768 NDR_PULL_ALLOC(ndr, r->driver_name);
11769 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11770 } else {
11771 r->driver_name = NULL;
11773 ndr->flags = _flags_save_string;
11776 uint32_t _flags_save_string = ndr->flags;
11777 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11778 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11779 if (_ptr_architecture) {
11780 NDR_PULL_ALLOC(ndr, r->architecture);
11781 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11782 } else {
11783 r->architecture = NULL;
11785 ndr->flags = _flags_save_string;
11788 uint32_t _flags_save_string = ndr->flags;
11789 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11790 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11791 if (_ptr_driver_path) {
11792 NDR_PULL_ALLOC(ndr, r->driver_path);
11793 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11794 } else {
11795 r->driver_path = NULL;
11797 ndr->flags = _flags_save_string;
11800 uint32_t _flags_save_string = ndr->flags;
11801 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11802 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11803 if (_ptr_data_file) {
11804 NDR_PULL_ALLOC(ndr, r->data_file);
11805 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11806 } else {
11807 r->data_file = NULL;
11809 ndr->flags = _flags_save_string;
11812 uint32_t _flags_save_string = ndr->flags;
11813 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11814 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11815 if (_ptr_config_file) {
11816 NDR_PULL_ALLOC(ndr, r->config_file);
11817 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11818 } else {
11819 r->config_file = NULL;
11821 ndr->flags = _flags_save_string;
11824 uint32_t _flags_save_string = ndr->flags;
11825 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11826 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
11827 if (_ptr_help_file) {
11828 NDR_PULL_ALLOC(ndr, r->help_file);
11829 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
11830 } else {
11831 r->help_file = NULL;
11833 ndr->flags = _flags_save_string;
11836 uint32_t _flags_save_string_array = ndr->flags;
11837 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11838 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
11839 if (_ptr_dependent_files) {
11840 NDR_PULL_ALLOC(ndr, r->dependent_files);
11841 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
11842 } else {
11843 r->dependent_files = NULL;
11845 ndr->flags = _flags_save_string_array;
11848 uint32_t _flags_save_string = ndr->flags;
11849 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11850 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
11851 if (_ptr_monitor_name) {
11852 NDR_PULL_ALLOC(ndr, r->monitor_name);
11853 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
11854 } else {
11855 r->monitor_name = NULL;
11857 ndr->flags = _flags_save_string;
11860 uint32_t _flags_save_string = ndr->flags;
11861 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11862 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
11863 if (_ptr_default_datatype) {
11864 NDR_PULL_ALLOC(ndr, r->default_datatype);
11865 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
11866 } else {
11867 r->default_datatype = NULL;
11869 ndr->flags = _flags_save_string;
11872 uint32_t _flags_save_string_array = ndr->flags;
11873 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11874 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
11875 if (_ptr_previous_names) {
11876 NDR_PULL_ALLOC(ndr, r->previous_names);
11877 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
11878 } else {
11879 r->previous_names = NULL;
11881 ndr->flags = _flags_save_string_array;
11883 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
11884 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
11886 uint32_t _flags_save_string = ndr->flags;
11887 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11888 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
11889 if (_ptr_manufacturer_name) {
11890 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
11891 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
11892 } else {
11893 r->manufacturer_name = NULL;
11895 ndr->flags = _flags_save_string;
11898 uint32_t _flags_save_string = ndr->flags;
11899 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11900 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
11901 if (_ptr_manufacturer_url) {
11902 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
11903 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
11904 } else {
11905 r->manufacturer_url = NULL;
11907 ndr->flags = _flags_save_string;
11910 uint32_t _flags_save_string = ndr->flags;
11911 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11912 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
11913 if (_ptr_hardware_id) {
11914 NDR_PULL_ALLOC(ndr, r->hardware_id);
11915 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
11916 } else {
11917 r->hardware_id = NULL;
11919 ndr->flags = _flags_save_string;
11922 uint32_t _flags_save_string = ndr->flags;
11923 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11924 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
11925 if (_ptr_provider) {
11926 NDR_PULL_ALLOC(ndr, r->provider);
11927 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
11928 } else {
11929 r->provider = NULL;
11931 ndr->flags = _flags_save_string;
11934 if (ndr_flags & NDR_BUFFERS) {
11936 uint32_t _flags_save_string = ndr->flags;
11937 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11938 if (r->driver_name) {
11939 uint32_t _relative_save_offset;
11940 _relative_save_offset = ndr->offset;
11941 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11942 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11943 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11944 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11945 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11946 ndr->offset = _relative_save_offset;
11948 ndr->flags = _flags_save_string;
11951 uint32_t _flags_save_string = ndr->flags;
11952 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11953 if (r->architecture) {
11954 uint32_t _relative_save_offset;
11955 _relative_save_offset = ndr->offset;
11956 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11957 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11958 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11959 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11960 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11961 ndr->offset = _relative_save_offset;
11963 ndr->flags = _flags_save_string;
11966 uint32_t _flags_save_string = ndr->flags;
11967 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11968 if (r->driver_path) {
11969 uint32_t _relative_save_offset;
11970 _relative_save_offset = ndr->offset;
11971 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11972 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11973 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11974 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11975 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11976 ndr->offset = _relative_save_offset;
11978 ndr->flags = _flags_save_string;
11981 uint32_t _flags_save_string = ndr->flags;
11982 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11983 if (r->data_file) {
11984 uint32_t _relative_save_offset;
11985 _relative_save_offset = ndr->offset;
11986 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11987 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11988 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11989 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11990 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11991 ndr->offset = _relative_save_offset;
11993 ndr->flags = _flags_save_string;
11996 uint32_t _flags_save_string = ndr->flags;
11997 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11998 if (r->config_file) {
11999 uint32_t _relative_save_offset;
12000 _relative_save_offset = ndr->offset;
12001 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12002 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12003 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12004 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12005 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12006 ndr->offset = _relative_save_offset;
12008 ndr->flags = _flags_save_string;
12011 uint32_t _flags_save_string = ndr->flags;
12012 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12013 if (r->help_file) {
12014 uint32_t _relative_save_offset;
12015 _relative_save_offset = ndr->offset;
12016 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
12017 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12018 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
12019 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
12020 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
12021 ndr->offset = _relative_save_offset;
12023 ndr->flags = _flags_save_string;
12026 uint32_t _flags_save_string_array = ndr->flags;
12027 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12028 if (r->dependent_files) {
12029 uint32_t _relative_save_offset;
12030 _relative_save_offset = ndr->offset;
12031 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
12032 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
12033 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
12034 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
12035 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
12036 ndr->offset = _relative_save_offset;
12038 ndr->flags = _flags_save_string_array;
12041 uint32_t _flags_save_string = ndr->flags;
12042 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12043 if (r->monitor_name) {
12044 uint32_t _relative_save_offset;
12045 _relative_save_offset = ndr->offset;
12046 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12047 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12048 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12049 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12050 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12051 ndr->offset = _relative_save_offset;
12053 ndr->flags = _flags_save_string;
12056 uint32_t _flags_save_string = ndr->flags;
12057 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12058 if (r->default_datatype) {
12059 uint32_t _relative_save_offset;
12060 _relative_save_offset = ndr->offset;
12061 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
12062 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
12063 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
12064 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
12065 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
12066 ndr->offset = _relative_save_offset;
12068 ndr->flags = _flags_save_string;
12071 uint32_t _flags_save_string_array = ndr->flags;
12072 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12073 if (r->previous_names) {
12074 uint32_t _relative_save_offset;
12075 _relative_save_offset = ndr->offset;
12076 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
12077 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
12078 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
12079 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
12080 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
12081 ndr->offset = _relative_save_offset;
12083 ndr->flags = _flags_save_string_array;
12086 uint32_t _flags_save_string = ndr->flags;
12087 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12088 if (r->manufacturer_name) {
12089 uint32_t _relative_save_offset;
12090 _relative_save_offset = ndr->offset;
12091 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
12092 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12093 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
12094 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
12095 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
12096 ndr->offset = _relative_save_offset;
12098 ndr->flags = _flags_save_string;
12101 uint32_t _flags_save_string = ndr->flags;
12102 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12103 if (r->manufacturer_url) {
12104 uint32_t _relative_save_offset;
12105 _relative_save_offset = ndr->offset;
12106 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
12107 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
12108 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
12109 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
12110 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
12111 ndr->offset = _relative_save_offset;
12113 ndr->flags = _flags_save_string;
12116 uint32_t _flags_save_string = ndr->flags;
12117 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12118 if (r->hardware_id) {
12119 uint32_t _relative_save_offset;
12120 _relative_save_offset = ndr->offset;
12121 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
12122 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
12123 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
12124 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
12125 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
12126 ndr->offset = _relative_save_offset;
12128 ndr->flags = _flags_save_string;
12131 uint32_t _flags_save_string = ndr->flags;
12132 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12133 if (r->provider) {
12134 uint32_t _relative_save_offset;
12135 _relative_save_offset = ndr->offset;
12136 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
12137 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
12138 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
12139 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
12140 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
12141 ndr->offset = _relative_save_offset;
12143 ndr->flags = _flags_save_string;
12146 return NDR_ERR_SUCCESS;
12149 _PUBLIC_ void ndr_print_spoolss_DriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo6 *r)
12151 ndr_print_struct(ndr, name, "spoolss_DriverInfo6");
12152 ndr->depth++;
12153 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
12154 ndr_print_ptr(ndr, "driver_name", r->driver_name);
12155 ndr->depth++;
12156 if (r->driver_name) {
12157 ndr_print_string(ndr, "driver_name", r->driver_name);
12159 ndr->depth--;
12160 ndr_print_ptr(ndr, "architecture", r->architecture);
12161 ndr->depth++;
12162 if (r->architecture) {
12163 ndr_print_string(ndr, "architecture", r->architecture);
12165 ndr->depth--;
12166 ndr_print_ptr(ndr, "driver_path", r->driver_path);
12167 ndr->depth++;
12168 if (r->driver_path) {
12169 ndr_print_string(ndr, "driver_path", r->driver_path);
12171 ndr->depth--;
12172 ndr_print_ptr(ndr, "data_file", r->data_file);
12173 ndr->depth++;
12174 if (r->data_file) {
12175 ndr_print_string(ndr, "data_file", r->data_file);
12177 ndr->depth--;
12178 ndr_print_ptr(ndr, "config_file", r->config_file);
12179 ndr->depth++;
12180 if (r->config_file) {
12181 ndr_print_string(ndr, "config_file", r->config_file);
12183 ndr->depth--;
12184 ndr_print_ptr(ndr, "help_file", r->help_file);
12185 ndr->depth++;
12186 if (r->help_file) {
12187 ndr_print_string(ndr, "help_file", r->help_file);
12189 ndr->depth--;
12190 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
12191 ndr->depth++;
12192 if (r->dependent_files) {
12193 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
12195 ndr->depth--;
12196 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12197 ndr->depth++;
12198 if (r->monitor_name) {
12199 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12201 ndr->depth--;
12202 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
12203 ndr->depth++;
12204 if (r->default_datatype) {
12205 ndr_print_string(ndr, "default_datatype", r->default_datatype);
12207 ndr->depth--;
12208 ndr_print_ptr(ndr, "previous_names", r->previous_names);
12209 ndr->depth++;
12210 if (r->previous_names) {
12211 ndr_print_string_array(ndr, "previous_names", r->previous_names);
12213 ndr->depth--;
12214 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
12215 ndr_print_hyper(ndr, "driver_version", r->driver_version);
12216 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
12217 ndr->depth++;
12218 if (r->manufacturer_name) {
12219 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
12221 ndr->depth--;
12222 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
12223 ndr->depth++;
12224 if (r->manufacturer_url) {
12225 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
12227 ndr->depth--;
12228 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
12229 ndr->depth++;
12230 if (r->hardware_id) {
12231 ndr_print_string(ndr, "hardware_id", r->hardware_id);
12233 ndr->depth--;
12234 ndr_print_ptr(ndr, "provider", r->provider);
12235 ndr->depth++;
12236 if (r->provider) {
12237 ndr_print_string(ndr, "provider", r->provider);
12239 ndr->depth--;
12240 ndr->depth--;
12243 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6 *r, struct smb_iconv_convenience *ic, int flags)
12245 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo6, ic);
12248 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo8 *r)
12250 if (ndr_flags & NDR_SCALARS) {
12251 NDR_CHECK(ndr_push_align(ndr, 8));
12252 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12254 uint32_t _flags_save_string = ndr->flags;
12255 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12256 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12257 ndr->flags = _flags_save_string;
12260 uint32_t _flags_save_string = ndr->flags;
12261 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12262 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12263 ndr->flags = _flags_save_string;
12266 uint32_t _flags_save_string = ndr->flags;
12267 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12268 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
12269 ndr->flags = _flags_save_string;
12272 uint32_t _flags_save_string = ndr->flags;
12273 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12274 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
12275 ndr->flags = _flags_save_string;
12278 uint32_t _flags_save_string = ndr->flags;
12279 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12280 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12281 ndr->flags = _flags_save_string;
12284 uint32_t _flags_save_string = ndr->flags;
12285 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12286 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
12287 ndr->flags = _flags_save_string;
12290 uint32_t _flags_save_string = ndr->flags;
12291 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12292 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12293 ndr->flags = _flags_save_string;
12296 uint32_t _flags_save_string = ndr->flags;
12297 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12298 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
12299 ndr->flags = _flags_save_string;
12302 uint32_t _flags_save_string_array = ndr->flags;
12303 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12304 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
12305 ndr->flags = _flags_save_string_array;
12308 uint32_t _flags_save_string_array = ndr->flags;
12309 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12310 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
12311 ndr->flags = _flags_save_string_array;
12313 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
12314 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
12316 uint32_t _flags_save_string = ndr->flags;
12317 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12318 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
12319 ndr->flags = _flags_save_string;
12322 uint32_t _flags_save_string = ndr->flags;
12323 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12324 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
12325 ndr->flags = _flags_save_string;
12328 uint32_t _flags_save_string = ndr->flags;
12329 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12330 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
12331 ndr->flags = _flags_save_string;
12334 uint32_t _flags_save_string = ndr->flags;
12335 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12336 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
12337 ndr->flags = _flags_save_string;
12340 uint32_t _flags_save_string = ndr->flags;
12341 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12342 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
12343 ndr->flags = _flags_save_string;
12346 uint32_t _flags_save_string = ndr->flags;
12347 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12348 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->vendor_setup));
12349 ndr->flags = _flags_save_string;
12352 uint32_t _flags_save_string_array = ndr->flags;
12353 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12354 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->color_profiles));
12355 ndr->flags = _flags_save_string_array;
12358 uint32_t _flags_save_string = ndr->flags;
12359 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12360 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_path));
12361 ndr->flags = _flags_save_string;
12363 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
12365 uint32_t _flags_save_string_array = ndr->flags;
12366 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12367 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->core_driver_dependencies));
12368 ndr->flags = _flags_save_string_array;
12370 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
12371 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
12373 if (ndr_flags & NDR_BUFFERS) {
12375 uint32_t _flags_save_string = ndr->flags;
12376 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12377 if (r->driver_name) {
12378 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
12379 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12381 ndr->flags = _flags_save_string;
12384 uint32_t _flags_save_string = ndr->flags;
12385 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12386 if (r->architecture) {
12387 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
12388 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
12390 ndr->flags = _flags_save_string;
12393 uint32_t _flags_save_string = ndr->flags;
12394 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12395 if (r->driver_path) {
12396 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
12397 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
12399 ndr->flags = _flags_save_string;
12402 uint32_t _flags_save_string = ndr->flags;
12403 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12404 if (r->data_file) {
12405 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
12406 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
12408 ndr->flags = _flags_save_string;
12411 uint32_t _flags_save_string = ndr->flags;
12412 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12413 if (r->config_file) {
12414 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
12415 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
12417 ndr->flags = _flags_save_string;
12420 uint32_t _flags_save_string = ndr->flags;
12421 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12422 if (r->help_file) {
12423 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
12424 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
12426 ndr->flags = _flags_save_string;
12429 uint32_t _flags_save_string = ndr->flags;
12430 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12431 if (r->monitor_name) {
12432 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
12433 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12435 ndr->flags = _flags_save_string;
12438 uint32_t _flags_save_string = ndr->flags;
12439 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12440 if (r->default_datatype) {
12441 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
12442 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
12444 ndr->flags = _flags_save_string;
12447 uint32_t _flags_save_string_array = ndr->flags;
12448 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12449 if (r->dependent_files) {
12450 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
12451 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
12453 ndr->flags = _flags_save_string_array;
12456 uint32_t _flags_save_string_array = ndr->flags;
12457 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12458 if (r->previous_names) {
12459 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
12460 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
12462 ndr->flags = _flags_save_string_array;
12465 uint32_t _flags_save_string = ndr->flags;
12466 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12467 if (r->manufacturer_name) {
12468 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
12469 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_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->manufacturer_url) {
12477 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
12478 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
12480 ndr->flags = _flags_save_string;
12483 uint32_t _flags_save_string = ndr->flags;
12484 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12485 if (r->hardware_id) {
12486 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
12487 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
12489 ndr->flags = _flags_save_string;
12492 uint32_t _flags_save_string = ndr->flags;
12493 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12494 if (r->provider) {
12495 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
12496 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
12498 ndr->flags = _flags_save_string;
12501 uint32_t _flags_save_string = ndr->flags;
12502 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12503 if (r->print_processor) {
12504 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
12505 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
12507 ndr->flags = _flags_save_string;
12510 uint32_t _flags_save_string = ndr->flags;
12511 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12512 if (r->vendor_setup) {
12513 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->vendor_setup));
12514 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->vendor_setup));
12516 ndr->flags = _flags_save_string;
12519 uint32_t _flags_save_string_array = ndr->flags;
12520 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12521 if (r->color_profiles) {
12522 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->color_profiles));
12523 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->color_profiles));
12525 ndr->flags = _flags_save_string_array;
12528 uint32_t _flags_save_string = ndr->flags;
12529 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12530 if (r->inf_path) {
12531 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->inf_path));
12532 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_path));
12534 ndr->flags = _flags_save_string;
12537 uint32_t _flags_save_string_array = ndr->flags;
12538 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12539 if (r->core_driver_dependencies) {
12540 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->core_driver_dependencies));
12541 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->core_driver_dependencies));
12543 ndr->flags = _flags_save_string_array;
12546 return NDR_ERR_SUCCESS;
12549 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo8 *r)
12551 uint32_t _ptr_driver_name;
12552 TALLOC_CTX *_mem_save_driver_name_0;
12553 uint32_t _ptr_architecture;
12554 TALLOC_CTX *_mem_save_architecture_0;
12555 uint32_t _ptr_driver_path;
12556 TALLOC_CTX *_mem_save_driver_path_0;
12557 uint32_t _ptr_data_file;
12558 TALLOC_CTX *_mem_save_data_file_0;
12559 uint32_t _ptr_config_file;
12560 TALLOC_CTX *_mem_save_config_file_0;
12561 uint32_t _ptr_help_file;
12562 TALLOC_CTX *_mem_save_help_file_0;
12563 uint32_t _ptr_monitor_name;
12564 TALLOC_CTX *_mem_save_monitor_name_0;
12565 uint32_t _ptr_default_datatype;
12566 TALLOC_CTX *_mem_save_default_datatype_0;
12567 uint32_t _ptr_dependent_files;
12568 TALLOC_CTX *_mem_save_dependent_files_0;
12569 uint32_t _ptr_previous_names;
12570 TALLOC_CTX *_mem_save_previous_names_0;
12571 uint32_t _ptr_manufacturer_name;
12572 TALLOC_CTX *_mem_save_manufacturer_name_0;
12573 uint32_t _ptr_manufacturer_url;
12574 TALLOC_CTX *_mem_save_manufacturer_url_0;
12575 uint32_t _ptr_hardware_id;
12576 TALLOC_CTX *_mem_save_hardware_id_0;
12577 uint32_t _ptr_provider;
12578 TALLOC_CTX *_mem_save_provider_0;
12579 uint32_t _ptr_print_processor;
12580 TALLOC_CTX *_mem_save_print_processor_0;
12581 uint32_t _ptr_vendor_setup;
12582 TALLOC_CTX *_mem_save_vendor_setup_0;
12583 uint32_t _ptr_color_profiles;
12584 TALLOC_CTX *_mem_save_color_profiles_0;
12585 uint32_t _ptr_inf_path;
12586 TALLOC_CTX *_mem_save_inf_path_0;
12587 uint32_t _ptr_core_driver_dependencies;
12588 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
12589 if (ndr_flags & NDR_SCALARS) {
12590 NDR_CHECK(ndr_pull_align(ndr, 8));
12591 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12593 uint32_t _flags_save_string = ndr->flags;
12594 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12595 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12596 if (_ptr_driver_name) {
12597 NDR_PULL_ALLOC(ndr, r->driver_name);
12598 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12599 } else {
12600 r->driver_name = NULL;
12602 ndr->flags = _flags_save_string;
12605 uint32_t _flags_save_string = ndr->flags;
12606 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12607 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
12608 if (_ptr_architecture) {
12609 NDR_PULL_ALLOC(ndr, r->architecture);
12610 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12611 } else {
12612 r->architecture = NULL;
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 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
12620 if (_ptr_driver_path) {
12621 NDR_PULL_ALLOC(ndr, r->driver_path);
12622 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
12623 } else {
12624 r->driver_path = NULL;
12626 ndr->flags = _flags_save_string;
12629 uint32_t _flags_save_string = ndr->flags;
12630 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12631 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
12632 if (_ptr_data_file) {
12633 NDR_PULL_ALLOC(ndr, r->data_file);
12634 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
12635 } else {
12636 r->data_file = NULL;
12638 ndr->flags = _flags_save_string;
12641 uint32_t _flags_save_string = ndr->flags;
12642 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12643 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
12644 if (_ptr_config_file) {
12645 NDR_PULL_ALLOC(ndr, r->config_file);
12646 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
12647 } else {
12648 r->config_file = NULL;
12650 ndr->flags = _flags_save_string;
12653 uint32_t _flags_save_string = ndr->flags;
12654 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12655 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
12656 if (_ptr_help_file) {
12657 NDR_PULL_ALLOC(ndr, r->help_file);
12658 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
12659 } else {
12660 r->help_file = NULL;
12662 ndr->flags = _flags_save_string;
12665 uint32_t _flags_save_string = ndr->flags;
12666 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12667 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12668 if (_ptr_monitor_name) {
12669 NDR_PULL_ALLOC(ndr, r->monitor_name);
12670 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12671 } else {
12672 r->monitor_name = NULL;
12674 ndr->flags = _flags_save_string;
12677 uint32_t _flags_save_string = ndr->flags;
12678 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12679 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
12680 if (_ptr_default_datatype) {
12681 NDR_PULL_ALLOC(ndr, r->default_datatype);
12682 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
12683 } else {
12684 r->default_datatype = NULL;
12686 ndr->flags = _flags_save_string;
12689 uint32_t _flags_save_string_array = ndr->flags;
12690 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12691 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
12692 if (_ptr_dependent_files) {
12693 NDR_PULL_ALLOC(ndr, r->dependent_files);
12694 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
12695 } else {
12696 r->dependent_files = NULL;
12698 ndr->flags = _flags_save_string_array;
12701 uint32_t _flags_save_string_array = ndr->flags;
12702 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12703 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
12704 if (_ptr_previous_names) {
12705 NDR_PULL_ALLOC(ndr, r->previous_names);
12706 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
12707 } else {
12708 r->previous_names = NULL;
12710 ndr->flags = _flags_save_string_array;
12712 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
12713 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
12715 uint32_t _flags_save_string = ndr->flags;
12716 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12717 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
12718 if (_ptr_manufacturer_name) {
12719 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
12720 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
12721 } else {
12722 r->manufacturer_name = NULL;
12724 ndr->flags = _flags_save_string;
12727 uint32_t _flags_save_string = ndr->flags;
12728 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12729 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
12730 if (_ptr_manufacturer_url) {
12731 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
12732 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
12733 } else {
12734 r->manufacturer_url = NULL;
12736 ndr->flags = _flags_save_string;
12739 uint32_t _flags_save_string = ndr->flags;
12740 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12741 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
12742 if (_ptr_hardware_id) {
12743 NDR_PULL_ALLOC(ndr, r->hardware_id);
12744 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
12745 } else {
12746 r->hardware_id = NULL;
12748 ndr->flags = _flags_save_string;
12751 uint32_t _flags_save_string = ndr->flags;
12752 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12753 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
12754 if (_ptr_provider) {
12755 NDR_PULL_ALLOC(ndr, r->provider);
12756 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
12757 } else {
12758 r->provider = NULL;
12760 ndr->flags = _flags_save_string;
12763 uint32_t _flags_save_string = ndr->flags;
12764 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12765 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
12766 if (_ptr_print_processor) {
12767 NDR_PULL_ALLOC(ndr, r->print_processor);
12768 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
12769 } else {
12770 r->print_processor = NULL;
12772 ndr->flags = _flags_save_string;
12775 uint32_t _flags_save_string = ndr->flags;
12776 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12777 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
12778 if (_ptr_vendor_setup) {
12779 NDR_PULL_ALLOC(ndr, r->vendor_setup);
12780 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->vendor_setup, _ptr_vendor_setup));
12781 } else {
12782 r->vendor_setup = NULL;
12784 ndr->flags = _flags_save_string;
12787 uint32_t _flags_save_string_array = ndr->flags;
12788 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12789 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
12790 if (_ptr_color_profiles) {
12791 NDR_PULL_ALLOC(ndr, r->color_profiles);
12792 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->color_profiles, _ptr_color_profiles));
12793 } else {
12794 r->color_profiles = NULL;
12796 ndr->flags = _flags_save_string_array;
12799 uint32_t _flags_save_string = ndr->flags;
12800 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12801 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
12802 if (_ptr_inf_path) {
12803 NDR_PULL_ALLOC(ndr, r->inf_path);
12804 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_path, _ptr_inf_path));
12805 } else {
12806 r->inf_path = NULL;
12808 ndr->flags = _flags_save_string;
12810 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
12812 uint32_t _flags_save_string_array = ndr->flags;
12813 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12814 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
12815 if (_ptr_core_driver_dependencies) {
12816 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
12817 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->core_driver_dependencies, _ptr_core_driver_dependencies));
12818 } else {
12819 r->core_driver_dependencies = NULL;
12821 ndr->flags = _flags_save_string_array;
12823 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
12824 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
12826 if (ndr_flags & NDR_BUFFERS) {
12828 uint32_t _flags_save_string = ndr->flags;
12829 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12830 if (r->driver_name) {
12831 uint32_t _relative_save_offset;
12832 _relative_save_offset = ndr->offset;
12833 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12834 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12835 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12836 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12837 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12838 ndr->offset = _relative_save_offset;
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 uint32_t _relative_save_offset;
12847 _relative_save_offset = ndr->offset;
12848 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12849 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12850 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12851 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12852 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12853 ndr->offset = _relative_save_offset;
12855 ndr->flags = _flags_save_string;
12858 uint32_t _flags_save_string = ndr->flags;
12859 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12860 if (r->driver_path) {
12861 uint32_t _relative_save_offset;
12862 _relative_save_offset = ndr->offset;
12863 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12864 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12865 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12866 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12867 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
12868 ndr->offset = _relative_save_offset;
12870 ndr->flags = _flags_save_string;
12873 uint32_t _flags_save_string = ndr->flags;
12874 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12875 if (r->data_file) {
12876 uint32_t _relative_save_offset;
12877 _relative_save_offset = ndr->offset;
12878 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12879 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12880 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12881 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12882 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12883 ndr->offset = _relative_save_offset;
12885 ndr->flags = _flags_save_string;
12888 uint32_t _flags_save_string = ndr->flags;
12889 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12890 if (r->config_file) {
12891 uint32_t _relative_save_offset;
12892 _relative_save_offset = ndr->offset;
12893 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12894 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12895 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12896 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12897 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12898 ndr->offset = _relative_save_offset;
12900 ndr->flags = _flags_save_string;
12903 uint32_t _flags_save_string = ndr->flags;
12904 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12905 if (r->help_file) {
12906 uint32_t _relative_save_offset;
12907 _relative_save_offset = ndr->offset;
12908 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
12909 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12910 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
12911 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
12912 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
12913 ndr->offset = _relative_save_offset;
12915 ndr->flags = _flags_save_string;
12918 uint32_t _flags_save_string = ndr->flags;
12919 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12920 if (r->monitor_name) {
12921 uint32_t _relative_save_offset;
12922 _relative_save_offset = ndr->offset;
12923 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12924 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12925 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12926 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12927 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12928 ndr->offset = _relative_save_offset;
12930 ndr->flags = _flags_save_string;
12933 uint32_t _flags_save_string = ndr->flags;
12934 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12935 if (r->default_datatype) {
12936 uint32_t _relative_save_offset;
12937 _relative_save_offset = ndr->offset;
12938 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
12939 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
12940 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
12941 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
12942 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
12943 ndr->offset = _relative_save_offset;
12945 ndr->flags = _flags_save_string;
12948 uint32_t _flags_save_string_array = ndr->flags;
12949 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12950 if (r->dependent_files) {
12951 uint32_t _relative_save_offset;
12952 _relative_save_offset = ndr->offset;
12953 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
12954 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
12955 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
12956 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
12957 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
12958 ndr->offset = _relative_save_offset;
12960 ndr->flags = _flags_save_string_array;
12963 uint32_t _flags_save_string_array = ndr->flags;
12964 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12965 if (r->previous_names) {
12966 uint32_t _relative_save_offset;
12967 _relative_save_offset = ndr->offset;
12968 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
12969 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
12970 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
12971 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
12972 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
12973 ndr->offset = _relative_save_offset;
12975 ndr->flags = _flags_save_string_array;
12978 uint32_t _flags_save_string = ndr->flags;
12979 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12980 if (r->manufacturer_name) {
12981 uint32_t _relative_save_offset;
12982 _relative_save_offset = ndr->offset;
12983 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
12984 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12985 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
12986 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
12987 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
12988 ndr->offset = _relative_save_offset;
12990 ndr->flags = _flags_save_string;
12993 uint32_t _flags_save_string = ndr->flags;
12994 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12995 if (r->manufacturer_url) {
12996 uint32_t _relative_save_offset;
12997 _relative_save_offset = ndr->offset;
12998 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
12999 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
13000 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
13001 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
13002 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
13003 ndr->offset = _relative_save_offset;
13005 ndr->flags = _flags_save_string;
13008 uint32_t _flags_save_string = ndr->flags;
13009 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13010 if (r->hardware_id) {
13011 uint32_t _relative_save_offset;
13012 _relative_save_offset = ndr->offset;
13013 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
13014 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
13015 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
13016 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
13017 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
13018 ndr->offset = _relative_save_offset;
13020 ndr->flags = _flags_save_string;
13023 uint32_t _flags_save_string = ndr->flags;
13024 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13025 if (r->provider) {
13026 uint32_t _relative_save_offset;
13027 _relative_save_offset = ndr->offset;
13028 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
13029 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
13030 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
13031 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
13032 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
13033 ndr->offset = _relative_save_offset;
13035 ndr->flags = _flags_save_string;
13038 uint32_t _flags_save_string = ndr->flags;
13039 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13040 if (r->print_processor) {
13041 uint32_t _relative_save_offset;
13042 _relative_save_offset = ndr->offset;
13043 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
13044 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
13045 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
13046 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
13047 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
13048 ndr->offset = _relative_save_offset;
13050 ndr->flags = _flags_save_string;
13053 uint32_t _flags_save_string = ndr->flags;
13054 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13055 if (r->vendor_setup) {
13056 uint32_t _relative_save_offset;
13057 _relative_save_offset = ndr->offset;
13058 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->vendor_setup));
13059 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
13060 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
13061 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->vendor_setup));
13062 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
13063 ndr->offset = _relative_save_offset;
13065 ndr->flags = _flags_save_string;
13068 uint32_t _flags_save_string_array = ndr->flags;
13069 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13070 if (r->color_profiles) {
13071 uint32_t _relative_save_offset;
13072 _relative_save_offset = ndr->offset;
13073 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->color_profiles));
13074 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
13075 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
13076 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->color_profiles));
13077 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
13078 ndr->offset = _relative_save_offset;
13080 ndr->flags = _flags_save_string_array;
13083 uint32_t _flags_save_string = ndr->flags;
13084 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13085 if (r->inf_path) {
13086 uint32_t _relative_save_offset;
13087 _relative_save_offset = ndr->offset;
13088 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_path));
13089 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
13090 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
13091 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_path));
13092 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
13093 ndr->offset = _relative_save_offset;
13095 ndr->flags = _flags_save_string;
13098 uint32_t _flags_save_string_array = ndr->flags;
13099 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13100 if (r->core_driver_dependencies) {
13101 uint32_t _relative_save_offset;
13102 _relative_save_offset = ndr->offset;
13103 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->core_driver_dependencies));
13104 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
13105 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
13106 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->core_driver_dependencies));
13107 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
13108 ndr->offset = _relative_save_offset;
13110 ndr->flags = _flags_save_string_array;
13113 return NDR_ERR_SUCCESS;
13116 _PUBLIC_ void ndr_print_spoolss_DriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo8 *r)
13118 ndr_print_struct(ndr, name, "spoolss_DriverInfo8");
13119 ndr->depth++;
13120 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13121 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13122 ndr->depth++;
13123 if (r->driver_name) {
13124 ndr_print_string(ndr, "driver_name", r->driver_name);
13126 ndr->depth--;
13127 ndr_print_ptr(ndr, "architecture", r->architecture);
13128 ndr->depth++;
13129 if (r->architecture) {
13130 ndr_print_string(ndr, "architecture", r->architecture);
13132 ndr->depth--;
13133 ndr_print_ptr(ndr, "driver_path", r->driver_path);
13134 ndr->depth++;
13135 if (r->driver_path) {
13136 ndr_print_string(ndr, "driver_path", r->driver_path);
13138 ndr->depth--;
13139 ndr_print_ptr(ndr, "data_file", r->data_file);
13140 ndr->depth++;
13141 if (r->data_file) {
13142 ndr_print_string(ndr, "data_file", r->data_file);
13144 ndr->depth--;
13145 ndr_print_ptr(ndr, "config_file", r->config_file);
13146 ndr->depth++;
13147 if (r->config_file) {
13148 ndr_print_string(ndr, "config_file", r->config_file);
13150 ndr->depth--;
13151 ndr_print_ptr(ndr, "help_file", r->help_file);
13152 ndr->depth++;
13153 if (r->help_file) {
13154 ndr_print_string(ndr, "help_file", r->help_file);
13156 ndr->depth--;
13157 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13158 ndr->depth++;
13159 if (r->monitor_name) {
13160 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13162 ndr->depth--;
13163 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
13164 ndr->depth++;
13165 if (r->default_datatype) {
13166 ndr_print_string(ndr, "default_datatype", r->default_datatype);
13168 ndr->depth--;
13169 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
13170 ndr->depth++;
13171 if (r->dependent_files) {
13172 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
13174 ndr->depth--;
13175 ndr_print_ptr(ndr, "previous_names", r->previous_names);
13176 ndr->depth++;
13177 if (r->previous_names) {
13178 ndr_print_string_array(ndr, "previous_names", r->previous_names);
13180 ndr->depth--;
13181 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
13182 ndr_print_hyper(ndr, "driver_version", r->driver_version);
13183 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
13184 ndr->depth++;
13185 if (r->manufacturer_name) {
13186 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
13188 ndr->depth--;
13189 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
13190 ndr->depth++;
13191 if (r->manufacturer_url) {
13192 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
13194 ndr->depth--;
13195 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
13196 ndr->depth++;
13197 if (r->hardware_id) {
13198 ndr_print_string(ndr, "hardware_id", r->hardware_id);
13200 ndr->depth--;
13201 ndr_print_ptr(ndr, "provider", r->provider);
13202 ndr->depth++;
13203 if (r->provider) {
13204 ndr_print_string(ndr, "provider", r->provider);
13206 ndr->depth--;
13207 ndr_print_ptr(ndr, "print_processor", r->print_processor);
13208 ndr->depth++;
13209 if (r->print_processor) {
13210 ndr_print_string(ndr, "print_processor", r->print_processor);
13212 ndr->depth--;
13213 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
13214 ndr->depth++;
13215 if (r->vendor_setup) {
13216 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
13218 ndr->depth--;
13219 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
13220 ndr->depth++;
13221 if (r->color_profiles) {
13222 ndr_print_string_array(ndr, "color_profiles", r->color_profiles);
13224 ndr->depth--;
13225 ndr_print_ptr(ndr, "inf_path", r->inf_path);
13226 ndr->depth++;
13227 if (r->inf_path) {
13228 ndr_print_string(ndr, "inf_path", r->inf_path);
13230 ndr->depth--;
13231 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
13232 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
13233 ndr->depth++;
13234 if (r->core_driver_dependencies) {
13235 ndr_print_string_array(ndr, "core_driver_dependencies", r->core_driver_dependencies);
13237 ndr->depth--;
13238 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
13239 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
13240 ndr->depth--;
13243 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8 *r, struct smb_iconv_convenience *ic, int flags)
13245 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo8, ic);
13248 static enum ndr_err_code ndr_push_spoolss_DriverFileType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverFileType r)
13250 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
13251 return NDR_ERR_SUCCESS;
13254 static enum ndr_err_code ndr_pull_spoolss_DriverFileType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverFileType *r)
13256 uint32_t v;
13257 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
13258 *r = v;
13259 return NDR_ERR_SUCCESS;
13262 _PUBLIC_ void ndr_print_spoolss_DriverFileType(struct ndr_print *ndr, const char *name, enum spoolss_DriverFileType r)
13264 const char *val = NULL;
13266 switch (r) {
13267 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING: val = "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
13268 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION: val = "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
13269 case SPOOLSS_DRIVER_FILE_TYPE_DATA: val = "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
13270 case SPOOLSS_DRIVER_FILE_TYPE_HELP: val = "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
13271 case SPOOLSS_DRIVER_FILE_TYPE_OTHER: val = "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
13273 ndr_print_enum(ndr, name, "ENUM", val, r);
13276 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverFileInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverFileInfo *r)
13278 if (ndr_flags & NDR_SCALARS) {
13279 NDR_CHECK(ndr_push_align(ndr, 4));
13281 uint32_t _flags_save_string = ndr->flags;
13282 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13283 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->file_name));
13284 ndr->flags = _flags_save_string;
13286 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr, NDR_SCALARS, r->file_type));
13287 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->file_version));
13289 if (ndr_flags & NDR_BUFFERS) {
13291 uint32_t _flags_save_string = ndr->flags;
13292 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13293 if (r->file_name) {
13294 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->file_name));
13295 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->file_name));
13297 ndr->flags = _flags_save_string;
13300 return NDR_ERR_SUCCESS;
13303 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverFileInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverFileInfo *r)
13305 uint32_t _ptr_file_name;
13306 TALLOC_CTX *_mem_save_file_name_0;
13307 if (ndr_flags & NDR_SCALARS) {
13308 NDR_CHECK(ndr_pull_align(ndr, 4));
13310 uint32_t _flags_save_string = ndr->flags;
13311 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13312 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_file_name));
13313 if (_ptr_file_name) {
13314 NDR_PULL_ALLOC(ndr, r->file_name);
13315 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->file_name, _ptr_file_name));
13316 } else {
13317 r->file_name = NULL;
13319 ndr->flags = _flags_save_string;
13321 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr, NDR_SCALARS, &r->file_type));
13322 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->file_version));
13324 if (ndr_flags & NDR_BUFFERS) {
13326 uint32_t _flags_save_string = ndr->flags;
13327 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13328 if (r->file_name) {
13329 uint32_t _relative_save_offset;
13330 _relative_save_offset = ndr->offset;
13331 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->file_name));
13332 _mem_save_file_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13333 NDR_PULL_SET_MEM_CTX(ndr, r->file_name, 0);
13334 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->file_name));
13335 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_file_name_0, 0);
13336 ndr->offset = _relative_save_offset;
13338 ndr->flags = _flags_save_string;
13341 return NDR_ERR_SUCCESS;
13344 _PUBLIC_ void ndr_print_spoolss_DriverFileInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DriverFileInfo *r)
13346 ndr_print_struct(ndr, name, "spoolss_DriverFileInfo");
13347 ndr->depth++;
13348 ndr_print_ptr(ndr, "file_name", r->file_name);
13349 ndr->depth++;
13350 if (r->file_name) {
13351 ndr_print_string(ndr, "file_name", r->file_name);
13353 ndr->depth--;
13354 ndr_print_spoolss_DriverFileType(ndr, "file_type", r->file_type);
13355 ndr_print_uint32(ndr, "file_version", r->file_version);
13356 ndr->depth--;
13359 _PUBLIC_ void ndr_print_spoolss_DriverInfo101(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo101 *r)
13361 uint32_t cntr_file_info_1;
13362 ndr_print_struct(ndr, name, "spoolss_DriverInfo101");
13363 ndr->depth++;
13364 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13365 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13366 ndr->depth++;
13367 if (r->driver_name) {
13368 ndr_print_string(ndr, "driver_name", r->driver_name);
13370 ndr->depth--;
13371 ndr_print_ptr(ndr, "architecture", r->architecture);
13372 ndr->depth++;
13373 if (r->architecture) {
13374 ndr_print_string(ndr, "architecture", r->architecture);
13376 ndr->depth--;
13377 ndr_print_ptr(ndr, "file_info", r->file_info);
13378 ndr->depth++;
13379 if (r->file_info) {
13380 ndr->print(ndr, "%s: ARRAY(%d)", "file_info", (int)r->file_count);
13381 ndr->depth++;
13382 for (cntr_file_info_1=0;cntr_file_info_1<r->file_count;cntr_file_info_1++) {
13383 char *idx_1=NULL;
13384 if (asprintf(&idx_1, "[%d]", cntr_file_info_1) != -1) {
13385 ndr_print_spoolss_DriverFileInfo(ndr, "file_info", &r->file_info[cntr_file_info_1]);
13386 free(idx_1);
13389 ndr->depth--;
13391 ndr->depth--;
13392 ndr_print_uint32(ndr, "file_count", r->file_count);
13393 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13394 ndr->depth++;
13395 if (r->monitor_name) {
13396 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13398 ndr->depth--;
13399 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
13400 ndr->depth++;
13401 if (r->default_datatype) {
13402 ndr_print_string(ndr, "default_datatype", r->default_datatype);
13404 ndr->depth--;
13405 ndr_print_ptr(ndr, "previous_names", r->previous_names);
13406 ndr->depth++;
13407 if (r->previous_names) {
13408 ndr_print_string_array(ndr, "previous_names", r->previous_names);
13410 ndr->depth--;
13411 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
13412 ndr_print_hyper(ndr, "driver_version", r->driver_version);
13413 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
13414 ndr->depth++;
13415 if (r->manufacturer_name) {
13416 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
13418 ndr->depth--;
13419 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
13420 ndr->depth++;
13421 if (r->manufacturer_url) {
13422 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
13424 ndr->depth--;
13425 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
13426 ndr->depth++;
13427 if (r->hardware_id) {
13428 ndr_print_string(ndr, "hardware_id", r->hardware_id);
13430 ndr->depth--;
13431 ndr_print_ptr(ndr, "provider", r->provider);
13432 ndr->depth++;
13433 if (r->provider) {
13434 ndr_print_string(ndr, "provider", r->provider);
13436 ndr->depth--;
13437 ndr->depth--;
13440 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101 *r, struct smb_iconv_convenience *ic, int flags)
13442 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo101, ic);
13445 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverInfo *r)
13447 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
13448 if (ndr_flags & NDR_SCALARS) {
13449 int level = ndr_push_get_switch_value(ndr, r);
13450 switch (level) {
13451 case 1: {
13452 NDR_CHECK(ndr_push_align(ndr, 4));
13453 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13454 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
13455 break; }
13457 case 2: {
13458 NDR_CHECK(ndr_push_align(ndr, 4));
13459 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13460 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
13461 break; }
13463 case 3: {
13464 NDR_CHECK(ndr_push_align(ndr, 4));
13465 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13466 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
13467 break; }
13469 case 4: {
13470 NDR_CHECK(ndr_push_align(ndr, 4));
13471 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13472 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
13473 break; }
13475 case 5: {
13476 NDR_CHECK(ndr_push_align(ndr, 4));
13477 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13478 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
13479 break; }
13481 case 6: {
13482 NDR_CHECK(ndr_push_align(ndr, 8));
13483 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13484 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
13485 break; }
13487 case 8: {
13488 NDR_CHECK(ndr_push_align(ndr, 8));
13489 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13490 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
13491 break; }
13493 case 101: {
13494 NDR_CHECK(ndr_push_align(ndr, 8));
13495 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13496 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
13497 break; }
13499 default: {
13500 break; }
13504 if (ndr_flags & NDR_BUFFERS) {
13505 int level = ndr_push_get_switch_value(ndr, r);
13506 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
13507 switch (level) {
13508 case 1:
13509 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
13510 break;
13512 case 2:
13513 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
13514 break;
13516 case 3:
13517 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
13518 break;
13520 case 4:
13521 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
13522 break;
13524 case 5:
13525 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
13526 break;
13528 case 6:
13529 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
13530 break;
13532 case 8:
13533 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
13534 break;
13536 case 101:
13537 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
13538 break;
13540 default:
13541 break;
13545 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
13546 return NDR_ERR_SUCCESS;
13549 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverInfo *r)
13551 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
13552 int level;
13553 level = ndr_pull_get_switch_value(ndr, r);
13554 if (ndr_flags & NDR_SCALARS) {
13555 switch (level) {
13556 case 1: {
13557 NDR_CHECK(ndr_pull_align(ndr, 4));
13558 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13559 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
13560 break; }
13562 case 2: {
13563 NDR_CHECK(ndr_pull_align(ndr, 4));
13564 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13565 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
13566 break; }
13568 case 3: {
13569 NDR_CHECK(ndr_pull_align(ndr, 4));
13570 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13571 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
13572 break; }
13574 case 4: {
13575 NDR_CHECK(ndr_pull_align(ndr, 4));
13576 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13577 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
13578 break; }
13580 case 5: {
13581 NDR_CHECK(ndr_pull_align(ndr, 4));
13582 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13583 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
13584 break; }
13586 case 6: {
13587 NDR_CHECK(ndr_pull_align(ndr, 8));
13588 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13589 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
13590 break; }
13592 case 8: {
13593 NDR_CHECK(ndr_pull_align(ndr, 8));
13594 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13595 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
13596 break; }
13598 case 101: {
13599 NDR_CHECK(ndr_pull_align(ndr, 8));
13600 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13601 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
13602 break; }
13604 default: {
13605 break; }
13609 if (ndr_flags & NDR_BUFFERS) {
13610 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
13611 switch (level) {
13612 case 1:
13613 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
13614 break;
13616 case 2:
13617 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
13618 break;
13620 case 3:
13621 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
13622 break;
13624 case 4:
13625 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
13626 break;
13628 case 5:
13629 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
13630 break;
13632 case 6:
13633 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
13634 break;
13636 case 8:
13637 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
13638 break;
13640 case 101:
13641 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
13642 break;
13644 default:
13645 break;
13649 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
13650 return NDR_ERR_SUCCESS;
13653 _PUBLIC_ void ndr_print_spoolss_DriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverInfo *r)
13655 int level;
13656 level = ndr_print_get_switch_value(ndr, r);
13657 ndr_print_union(ndr, name, level, "spoolss_DriverInfo");
13658 switch (level) {
13659 case 1:
13660 ndr_print_spoolss_DriverInfo1(ndr, "info1", &r->info1);
13661 break;
13663 case 2:
13664 ndr_print_spoolss_DriverInfo2(ndr, "info2", &r->info2);
13665 break;
13667 case 3:
13668 ndr_print_spoolss_DriverInfo3(ndr, "info3", &r->info3);
13669 break;
13671 case 4:
13672 ndr_print_spoolss_DriverInfo4(ndr, "info4", &r->info4);
13673 break;
13675 case 5:
13676 ndr_print_spoolss_DriverInfo5(ndr, "info5", &r->info5);
13677 break;
13679 case 6:
13680 ndr_print_spoolss_DriverInfo6(ndr, "info6", &r->info6);
13681 break;
13683 case 8:
13684 ndr_print_spoolss_DriverInfo8(ndr, "info8", &r->info8);
13685 break;
13687 case 101:
13688 ndr_print_spoolss_DriverInfo101(ndr, "info101", &r->info101);
13689 break;
13691 default:
13692 break;
13697 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverDirectoryInfo1 *r)
13699 if (ndr_flags & NDR_SCALARS) {
13700 NDR_CHECK(ndr_push_align(ndr, 4));
13702 uint32_t _flags_save_string = ndr->flags;
13703 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13704 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
13705 ndr->flags = _flags_save_string;
13708 if (ndr_flags & NDR_BUFFERS) {
13710 return NDR_ERR_SUCCESS;
13713 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverDirectoryInfo1 *r)
13715 if (ndr_flags & NDR_SCALARS) {
13716 NDR_CHECK(ndr_pull_align(ndr, 4));
13718 uint32_t _flags_save_string = ndr->flags;
13719 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13720 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
13721 ndr->flags = _flags_save_string;
13724 if (ndr_flags & NDR_BUFFERS) {
13726 return NDR_ERR_SUCCESS;
13729 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverDirectoryInfo1 *r)
13731 ndr_print_struct(ndr, name, "spoolss_DriverDirectoryInfo1");
13732 ndr->depth++;
13733 ndr_print_string(ndr, "directory_name", r->directory_name);
13734 ndr->depth--;
13737 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
13739 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo1, ic);
13742 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverDirectoryInfo *r)
13744 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
13745 if (ndr_flags & NDR_SCALARS) {
13746 int level = ndr_push_get_switch_value(ndr, r);
13747 switch (level) {
13748 case 1: {
13749 NDR_CHECK(ndr_push_align(ndr, 4));
13750 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13751 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
13752 break; }
13754 default: {
13755 NDR_CHECK(ndr_push_align(ndr, 4));
13756 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13757 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
13758 break; }
13762 if (ndr_flags & NDR_BUFFERS) {
13763 int level = ndr_push_get_switch_value(ndr, r);
13764 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
13765 switch (level) {
13766 case 1:
13767 break;
13769 default:
13770 break;
13774 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
13775 return NDR_ERR_SUCCESS;
13778 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverDirectoryInfo *r)
13780 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
13781 int level;
13782 level = ndr_pull_get_switch_value(ndr, r);
13783 if (ndr_flags & NDR_SCALARS) {
13784 switch (level) {
13785 case 1: {
13786 NDR_CHECK(ndr_pull_align(ndr, 4));
13787 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13788 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
13789 break; }
13791 default: {
13792 NDR_CHECK(ndr_pull_align(ndr, 4));
13793 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13794 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
13795 break; }
13799 if (ndr_flags & NDR_BUFFERS) {
13800 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
13801 switch (level) {
13802 case 1:
13803 break;
13805 default:
13806 break;
13810 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
13811 return NDR_ERR_SUCCESS;
13814 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverDirectoryInfo *r)
13816 int level;
13817 level = ndr_print_get_switch_value(ndr, r);
13818 ndr_print_union(ndr, name, level, "spoolss_DriverDirectoryInfo");
13819 switch (level) {
13820 case 1:
13821 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
13822 break;
13824 default:
13825 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
13826 break;
13831 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
13833 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo, ic);
13836 static enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorInfo1 *r)
13838 if (ndr_flags & NDR_SCALARS) {
13839 NDR_CHECK(ndr_push_align(ndr, 4));
13841 uint32_t _flags_save_string = ndr->flags;
13842 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13843 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor_name));
13844 ndr->flags = _flags_save_string;
13847 if (ndr_flags & NDR_BUFFERS) {
13849 uint32_t _flags_save_string = ndr->flags;
13850 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13851 if (r->print_processor_name) {
13852 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor_name));
13853 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor_name));
13855 ndr->flags = _flags_save_string;
13858 return NDR_ERR_SUCCESS;
13861 static enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorInfo1 *r)
13863 uint32_t _ptr_print_processor_name;
13864 TALLOC_CTX *_mem_save_print_processor_name_0;
13865 if (ndr_flags & NDR_SCALARS) {
13866 NDR_CHECK(ndr_pull_align(ndr, 4));
13868 uint32_t _flags_save_string = ndr->flags;
13869 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13870 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
13871 if (_ptr_print_processor_name) {
13872 NDR_PULL_ALLOC(ndr, r->print_processor_name);
13873 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor_name, _ptr_print_processor_name));
13874 } else {
13875 r->print_processor_name = NULL;
13877 ndr->flags = _flags_save_string;
13880 if (ndr_flags & NDR_BUFFERS) {
13882 uint32_t _flags_save_string = ndr->flags;
13883 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13884 if (r->print_processor_name) {
13885 uint32_t _relative_save_offset;
13886 _relative_save_offset = ndr->offset;
13887 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor_name));
13888 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13889 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor_name, 0);
13890 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor_name));
13891 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
13892 ndr->offset = _relative_save_offset;
13894 ndr->flags = _flags_save_string;
13897 return NDR_ERR_SUCCESS;
13900 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorInfo1 *r)
13902 ndr_print_struct(ndr, name, "spoolss_PrintProcessorInfo1");
13903 ndr->depth++;
13904 ndr_print_ptr(ndr, "print_processor_name", r->print_processor_name);
13905 ndr->depth++;
13906 if (r->print_processor_name) {
13907 ndr_print_string(ndr, "print_processor_name", r->print_processor_name);
13909 ndr->depth--;
13910 ndr->depth--;
13913 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorInfo *r)
13915 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
13916 if (ndr_flags & NDR_SCALARS) {
13917 int level = ndr_push_get_switch_value(ndr, r);
13918 switch (level) {
13919 case 1: {
13920 NDR_CHECK(ndr_push_align(ndr, 4));
13921 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13922 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
13923 break; }
13925 default: {
13926 break; }
13930 if (ndr_flags & NDR_BUFFERS) {
13931 int level = ndr_push_get_switch_value(ndr, r);
13932 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
13933 switch (level) {
13934 case 1:
13935 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
13936 break;
13938 default:
13939 break;
13943 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
13944 return NDR_ERR_SUCCESS;
13947 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorInfo *r)
13949 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
13950 int level;
13951 level = ndr_pull_get_switch_value(ndr, r);
13952 if (ndr_flags & NDR_SCALARS) {
13953 switch (level) {
13954 case 1: {
13955 NDR_CHECK(ndr_pull_align(ndr, 4));
13956 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13957 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
13958 break; }
13960 default: {
13961 break; }
13965 if (ndr_flags & NDR_BUFFERS) {
13966 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
13967 switch (level) {
13968 case 1:
13969 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
13970 break;
13972 default:
13973 break;
13977 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
13978 return NDR_ERR_SUCCESS;
13981 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorInfo *r)
13983 int level;
13984 level = ndr_print_get_switch_value(ndr, r);
13985 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorInfo");
13986 switch (level) {
13987 case 1:
13988 ndr_print_spoolss_PrintProcessorInfo1(ndr, "info1", &r->info1);
13989 break;
13991 default:
13992 break;
13997 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
13999 if (ndr_flags & NDR_SCALARS) {
14000 NDR_CHECK(ndr_push_align(ndr, 4));
14002 uint32_t _flags_save_string = ndr->flags;
14003 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14004 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
14005 ndr->flags = _flags_save_string;
14008 if (ndr_flags & NDR_BUFFERS) {
14010 return NDR_ERR_SUCCESS;
14013 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorDirectoryInfo1 *r)
14015 if (ndr_flags & NDR_SCALARS) {
14016 NDR_CHECK(ndr_pull_align(ndr, 4));
14018 uint32_t _flags_save_string = ndr->flags;
14019 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14020 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
14021 ndr->flags = _flags_save_string;
14024 if (ndr_flags & NDR_BUFFERS) {
14026 return NDR_ERR_SUCCESS;
14029 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
14031 ndr_print_struct(ndr, name, "spoolss_PrintProcessorDirectoryInfo1");
14032 ndr->depth++;
14033 ndr_print_string(ndr, "directory_name", r->directory_name);
14034 ndr->depth--;
14037 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
14039 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo1, ic);
14042 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorDirectoryInfo *r)
14044 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14045 if (ndr_flags & NDR_SCALARS) {
14046 int level = ndr_push_get_switch_value(ndr, r);
14047 switch (level) {
14048 case 1: {
14049 NDR_CHECK(ndr_push_align(ndr, 4));
14050 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14051 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14052 break; }
14054 default: {
14055 NDR_CHECK(ndr_push_align(ndr, 4));
14056 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14057 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14058 break; }
14062 if (ndr_flags & NDR_BUFFERS) {
14063 int level = ndr_push_get_switch_value(ndr, r);
14064 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14065 switch (level) {
14066 case 1:
14067 break;
14069 default:
14070 break;
14074 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14075 return NDR_ERR_SUCCESS;
14078 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorDirectoryInfo *r)
14080 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14081 int level;
14082 level = ndr_pull_get_switch_value(ndr, r);
14083 if (ndr_flags & NDR_SCALARS) {
14084 switch (level) {
14085 case 1: {
14086 NDR_CHECK(ndr_pull_align(ndr, 4));
14087 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14088 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14089 break; }
14091 default: {
14092 NDR_CHECK(ndr_pull_align(ndr, 4));
14093 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14094 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14095 break; }
14099 if (ndr_flags & NDR_BUFFERS) {
14100 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14101 switch (level) {
14102 case 1:
14103 break;
14105 default:
14106 break;
14110 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14111 return NDR_ERR_SUCCESS;
14114 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorDirectoryInfo *r)
14116 int level;
14117 level = ndr_print_get_switch_value(ndr, r);
14118 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorDirectoryInfo");
14119 switch (level) {
14120 case 1:
14121 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
14122 break;
14124 default:
14125 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
14126 break;
14131 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14133 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo, ic);
14136 static enum ndr_err_code ndr_push_spoolss_DocumentInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DocumentInfo1 *r)
14138 if (ndr_flags & NDR_SCALARS) {
14139 NDR_CHECK(ndr_push_align(ndr, 4));
14140 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
14141 NDR_CHECK(ndr_push_unique_ptr(ndr, r->output_file));
14142 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
14144 if (ndr_flags & NDR_BUFFERS) {
14145 if (r->document_name) {
14146 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
14147 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14148 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
14149 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14151 if (r->output_file) {
14152 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
14153 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14154 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
14155 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->output_file, ndr_charset_length(r->output_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14157 if (r->datatype) {
14158 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
14159 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14160 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
14161 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14164 return NDR_ERR_SUCCESS;
14167 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DocumentInfo1 *r)
14169 uint32_t _ptr_document_name;
14170 TALLOC_CTX *_mem_save_document_name_0;
14171 uint32_t _ptr_output_file;
14172 TALLOC_CTX *_mem_save_output_file_0;
14173 uint32_t _ptr_datatype;
14174 TALLOC_CTX *_mem_save_datatype_0;
14175 if (ndr_flags & NDR_SCALARS) {
14176 NDR_CHECK(ndr_pull_align(ndr, 4));
14177 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
14178 if (_ptr_document_name) {
14179 NDR_PULL_ALLOC(ndr, r->document_name);
14180 } else {
14181 r->document_name = NULL;
14183 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_output_file));
14184 if (_ptr_output_file) {
14185 NDR_PULL_ALLOC(ndr, r->output_file);
14186 } else {
14187 r->output_file = NULL;
14189 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
14190 if (_ptr_datatype) {
14191 NDR_PULL_ALLOC(ndr, r->datatype);
14192 } else {
14193 r->datatype = NULL;
14196 if (ndr_flags & NDR_BUFFERS) {
14197 if (r->document_name) {
14198 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14199 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
14200 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
14201 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
14202 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
14203 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));
14205 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
14206 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
14207 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
14209 if (r->output_file) {
14210 _mem_save_output_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
14211 NDR_PULL_SET_MEM_CTX(ndr, r->output_file, 0);
14212 NDR_CHECK(ndr_pull_array_size(ndr, &r->output_file));
14213 NDR_CHECK(ndr_pull_array_length(ndr, &r->output_file));
14214 if (ndr_get_array_length(ndr, &r->output_file) > ndr_get_array_size(ndr, &r->output_file)) {
14215 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));
14217 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t)));
14218 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->output_file, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t), CH_UTF16));
14219 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_output_file_0, 0);
14221 if (r->datatype) {
14222 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
14223 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
14224 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
14225 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
14226 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
14227 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));
14229 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
14230 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
14231 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
14234 return NDR_ERR_SUCCESS;
14237 _PUBLIC_ void ndr_print_spoolss_DocumentInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DocumentInfo1 *r)
14239 ndr_print_struct(ndr, name, "spoolss_DocumentInfo1");
14240 ndr->depth++;
14241 ndr_print_ptr(ndr, "document_name", r->document_name);
14242 ndr->depth++;
14243 if (r->document_name) {
14244 ndr_print_string(ndr, "document_name", r->document_name);
14246 ndr->depth--;
14247 ndr_print_ptr(ndr, "output_file", r->output_file);
14248 ndr->depth++;
14249 if (r->output_file) {
14250 ndr_print_string(ndr, "output_file", r->output_file);
14252 ndr->depth--;
14253 ndr_print_ptr(ndr, "datatype", r->datatype);
14254 ndr->depth++;
14255 if (r->datatype) {
14256 ndr_print_string(ndr, "datatype", r->datatype);
14258 ndr->depth--;
14259 ndr->depth--;
14262 static enum ndr_err_code ndr_push_spoolss_DocumentInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DocumentInfo *r)
14264 if (ndr_flags & NDR_SCALARS) {
14265 int level = ndr_push_get_switch_value(ndr, r);
14266 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
14267 switch (level) {
14268 case 1: {
14269 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
14270 break; }
14272 case 2: {
14273 break; }
14275 case 3: {
14276 break; }
14278 default: {
14279 break; }
14283 if (ndr_flags & NDR_BUFFERS) {
14284 int level = ndr_push_get_switch_value(ndr, r);
14285 switch (level) {
14286 case 1:
14287 if (r->info1) {
14288 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
14290 break;
14292 case 2:
14293 break;
14295 case 3:
14296 break;
14298 default:
14299 break;
14303 return NDR_ERR_SUCCESS;
14306 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DocumentInfo *r)
14308 int level;
14309 uint32_t _level;
14310 TALLOC_CTX *_mem_save_info1_0;
14311 level = ndr_pull_get_switch_value(ndr, r);
14312 if (ndr_flags & NDR_SCALARS) {
14313 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
14314 if (_level != level) {
14315 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
14317 switch (level) {
14318 case 1: {
14319 uint32_t _ptr_info1;
14320 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
14321 if (_ptr_info1) {
14322 NDR_PULL_ALLOC(ndr, r->info1);
14323 } else {
14324 r->info1 = NULL;
14326 break; }
14328 case 2: {
14329 break; }
14331 case 3: {
14332 break; }
14334 default: {
14335 break; }
14339 if (ndr_flags & NDR_BUFFERS) {
14340 switch (level) {
14341 case 1:
14342 if (r->info1) {
14343 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
14344 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
14345 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
14346 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
14348 break;
14350 case 2:
14351 break;
14353 case 3:
14354 break;
14356 default:
14357 break;
14361 return NDR_ERR_SUCCESS;
14364 _PUBLIC_ void ndr_print_spoolss_DocumentInfo(struct ndr_print *ndr, const char *name, const union spoolss_DocumentInfo *r)
14366 int level;
14367 level = ndr_print_get_switch_value(ndr, r);
14368 ndr_print_union(ndr, name, level, "spoolss_DocumentInfo");
14369 switch (level) {
14370 case 1:
14371 ndr_print_ptr(ndr, "info1", r->info1);
14372 ndr->depth++;
14373 if (r->info1) {
14374 ndr_print_spoolss_DocumentInfo1(ndr, "info1", r->info1);
14376 ndr->depth--;
14377 break;
14379 case 2:
14380 break;
14382 case 3:
14383 break;
14385 default:
14386 break;
14391 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersion(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersion *r)
14393 if (ndr_flags & NDR_SCALARS) {
14394 NDR_CHECK(ndr_push_align(ndr, 4));
14395 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersion(r, ndr->iconv_convenience, ndr->flags)));
14396 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
14397 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
14398 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
14399 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
14401 uint32_t _flags_save_string = ndr->flags;
14402 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14404 struct ndr_push *_ndr_extra_string;
14405 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
14406 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
14407 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
14409 ndr->flags = _flags_save_string;
14412 if (ndr_flags & NDR_BUFFERS) {
14414 return NDR_ERR_SUCCESS;
14417 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersion(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersion *r)
14419 if (ndr_flags & NDR_SCALARS) {
14420 NDR_CHECK(ndr_pull_align(ndr, 4));
14421 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
14422 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
14423 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
14424 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
14425 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
14427 uint32_t _flags_save_string = ndr->flags;
14428 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14430 struct ndr_pull *_ndr_extra_string;
14431 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
14432 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
14433 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
14435 ndr->flags = _flags_save_string;
14438 if (ndr_flags & NDR_BUFFERS) {
14440 return NDR_ERR_SUCCESS;
14443 _PUBLIC_ void ndr_print_spoolss_OSVersion(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersion *r)
14445 ndr_print_struct(ndr, name, "spoolss_OSVersion");
14446 ndr->depth++;
14447 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);
14448 ndr_print_uint32(ndr, "major", r->major);
14449 ndr_print_uint32(ndr, "minor", r->minor);
14450 ndr_print_uint32(ndr, "build", r->build);
14451 ndr_print_uint32(ndr, "unknown", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown);
14452 ndr_print_string(ndr, "extra_string", r->extra_string);
14453 ndr->depth--;
14456 _PUBLIC_ size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion *r, struct smb_iconv_convenience *ic, int flags)
14458 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion, ic);
14461 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersionEx(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersionEx *r)
14463 if (ndr_flags & NDR_SCALARS) {
14464 NDR_CHECK(ndr_push_align(ndr, 4));
14465 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersionEx(r, ndr->iconv_convenience, ndr->flags)));
14466 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
14467 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
14468 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
14469 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
14471 uint32_t _flags_save_string = ndr->flags;
14472 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14474 struct ndr_push *_ndr_extra_string;
14475 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
14476 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
14477 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
14479 ndr->flags = _flags_save_string;
14481 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
14482 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
14484 if (ndr_flags & NDR_BUFFERS) {
14486 return NDR_ERR_SUCCESS;
14489 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersionEx(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersionEx *r)
14491 if (ndr_flags & NDR_SCALARS) {
14492 NDR_CHECK(ndr_pull_align(ndr, 4));
14493 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
14494 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
14495 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
14496 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
14497 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
14499 uint32_t _flags_save_string = ndr->flags;
14500 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14502 struct ndr_pull *_ndr_extra_string;
14503 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
14504 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
14505 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
14507 ndr->flags = _flags_save_string;
14509 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
14510 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
14512 if (ndr_flags & NDR_BUFFERS) {
14514 return NDR_ERR_SUCCESS;
14517 _PUBLIC_ void ndr_print_spoolss_OSVersionEx(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersionEx *r)
14519 ndr_print_struct(ndr, name, "spoolss_OSVersionEx");
14520 ndr->depth++;
14521 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);
14522 ndr_print_uint32(ndr, "major", r->major);
14523 ndr_print_uint32(ndr, "minor", r->minor);
14524 ndr_print_uint32(ndr, "build", r->build);
14525 ndr_print_uint32(ndr, "unknown1", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown1);
14526 ndr_print_string(ndr, "extra_string", r->extra_string);
14527 ndr_print_uint32(ndr, "unknown2", r->unknown2);
14528 ndr_print_uint32(ndr, "unknown3", r->unknown3);
14529 ndr->depth--;
14532 _PUBLIC_ size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx *r, struct smb_iconv_convenience *ic, int flags)
14534 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx, ic);
14537 static enum ndr_err_code ndr_push_spoolss_PrinterDataType(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterDataType r)
14539 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14540 return NDR_ERR_SUCCESS;
14543 static enum ndr_err_code ndr_pull_spoolss_PrinterDataType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterDataType *r)
14545 uint32_t v;
14546 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14547 *r = v;
14548 return NDR_ERR_SUCCESS;
14551 _PUBLIC_ void ndr_print_spoolss_PrinterDataType(struct ndr_print *ndr, const char *name, enum spoolss_PrinterDataType r)
14553 const char *val = NULL;
14555 switch (r) {
14556 case SPOOLSS_PRINTER_DATA_TYPE_NULL: val = "SPOOLSS_PRINTER_DATA_TYPE_NULL"; break;
14557 case SPOOLSS_PRINTER_DATA_TYPE_STRING: val = "SPOOLSS_PRINTER_DATA_TYPE_STRING"; break;
14558 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: val = "SPOOLSS_PRINTER_DATA_TYPE_BINARY"; break;
14559 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: val = "SPOOLSS_PRINTER_DATA_TYPE_UINT32"; break;
14560 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: val = "SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY"; break;
14562 ndr_print_enum(ndr, name, "ENUM", val, r);
14565 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterData *r)
14567 if (ndr_flags & NDR_SCALARS) {
14568 int level = ndr_push_get_switch_value(ndr, r);
14569 switch (level) {
14570 case SPOOLSS_PRINTER_DATA_TYPE_NULL: {
14571 break; }
14573 case SPOOLSS_PRINTER_DATA_TYPE_STRING: {
14575 uint32_t _flags_save_string = ndr->flags;
14576 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14577 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
14578 ndr->flags = _flags_save_string;
14580 break; }
14582 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: {
14584 uint32_t _flags_save_DATA_BLOB = ndr->flags;
14585 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
14586 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
14587 ndr->flags = _flags_save_DATA_BLOB;
14589 break; }
14591 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: {
14592 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
14593 break; }
14595 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: {
14597 uint32_t _flags_save_string_array = ndr->flags;
14598 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14599 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
14600 ndr->flags = _flags_save_string_array;
14602 break; }
14604 default: {
14606 uint32_t _flags_save_DATA_BLOB = ndr->flags;
14607 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
14608 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
14609 ndr->flags = _flags_save_DATA_BLOB;
14611 break; }
14615 if (ndr_flags & NDR_BUFFERS) {
14616 int level = ndr_push_get_switch_value(ndr, r);
14617 switch (level) {
14618 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
14619 break;
14621 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
14622 break;
14624 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
14625 break;
14627 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
14628 break;
14630 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
14631 break;
14633 default:
14634 break;
14638 return NDR_ERR_SUCCESS;
14641 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterData *r)
14643 int level;
14644 level = ndr_pull_get_switch_value(ndr, r);
14645 if (ndr_flags & NDR_SCALARS) {
14646 switch (level) {
14647 case SPOOLSS_PRINTER_DATA_TYPE_NULL: {
14648 break; }
14650 case SPOOLSS_PRINTER_DATA_TYPE_STRING: {
14652 uint32_t _flags_save_string = ndr->flags;
14653 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14654 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
14655 ndr->flags = _flags_save_string;
14657 break; }
14659 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: {
14661 uint32_t _flags_save_DATA_BLOB = ndr->flags;
14662 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
14663 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
14664 ndr->flags = _flags_save_DATA_BLOB;
14666 break; }
14668 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: {
14669 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
14670 break; }
14672 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: {
14674 uint32_t _flags_save_string_array = ndr->flags;
14675 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14676 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
14677 ndr->flags = _flags_save_string_array;
14679 break; }
14681 default: {
14683 uint32_t _flags_save_DATA_BLOB = ndr->flags;
14684 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
14685 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
14686 ndr->flags = _flags_save_DATA_BLOB;
14688 break; }
14692 if (ndr_flags & NDR_BUFFERS) {
14693 switch (level) {
14694 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
14695 break;
14697 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
14698 break;
14700 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
14701 break;
14703 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
14704 break;
14706 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
14707 break;
14709 default:
14710 break;
14714 return NDR_ERR_SUCCESS;
14717 _PUBLIC_ void ndr_print_spoolss_PrinterData(struct ndr_print *ndr, const char *name, const union spoolss_PrinterData *r)
14719 int level;
14720 level = ndr_print_get_switch_value(ndr, r);
14721 ndr_print_union(ndr, name, level, "spoolss_PrinterData");
14722 switch (level) {
14723 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
14724 break;
14726 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
14727 ndr_print_string(ndr, "string", r->string);
14728 break;
14730 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
14731 ndr_print_DATA_BLOB(ndr, "binary", r->binary);
14732 break;
14734 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
14735 ndr_print_uint32(ndr, "value", r->value);
14736 break;
14738 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
14739 ndr_print_string_array(ndr, "string_array", r->string_array);
14740 break;
14742 default:
14743 ndr_print_DATA_BLOB(ndr, "data", r->data);
14744 break;
14749 _PUBLIC_ size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14751 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterData, ic);
14754 static enum ndr_err_code ndr_push_spoolss_FormFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_FormFlags r)
14756 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14757 return NDR_ERR_SUCCESS;
14760 static enum ndr_err_code ndr_pull_spoolss_FormFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_FormFlags *r)
14762 uint32_t v;
14763 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14764 *r = v;
14765 return NDR_ERR_SUCCESS;
14768 _PUBLIC_ void ndr_print_spoolss_FormFlags(struct ndr_print *ndr, const char *name, enum spoolss_FormFlags r)
14770 const char *val = NULL;
14772 switch (r) {
14773 case SPOOLSS_FORM_USER: val = "SPOOLSS_FORM_USER"; break;
14774 case SPOOLSS_FORM_BUILTIN: val = "SPOOLSS_FORM_BUILTIN"; break;
14775 case SPOOLSS_FORM_PRINTER: val = "SPOOLSS_FORM_PRINTER"; break;
14777 ndr_print_enum(ndr, name, "ENUM", val, r);
14780 static enum ndr_err_code ndr_push_spoolss_FormSize(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormSize *r)
14782 if (ndr_flags & NDR_SCALARS) {
14783 NDR_CHECK(ndr_push_align(ndr, 4));
14784 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->width));
14785 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->height));
14787 if (ndr_flags & NDR_BUFFERS) {
14789 return NDR_ERR_SUCCESS;
14792 static enum ndr_err_code ndr_pull_spoolss_FormSize(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormSize *r)
14794 if (ndr_flags & NDR_SCALARS) {
14795 NDR_CHECK(ndr_pull_align(ndr, 4));
14796 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->width));
14797 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->height));
14799 if (ndr_flags & NDR_BUFFERS) {
14801 return NDR_ERR_SUCCESS;
14804 _PUBLIC_ void ndr_print_spoolss_FormSize(struct ndr_print *ndr, const char *name, const struct spoolss_FormSize *r)
14806 ndr_print_struct(ndr, name, "spoolss_FormSize");
14807 ndr->depth++;
14808 ndr_print_uint32(ndr, "width", r->width);
14809 ndr_print_uint32(ndr, "height", r->height);
14810 ndr->depth--;
14813 static enum ndr_err_code ndr_push_spoolss_FormArea(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormArea *r)
14815 if (ndr_flags & NDR_SCALARS) {
14816 NDR_CHECK(ndr_push_align(ndr, 4));
14817 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->left));
14818 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->top));
14819 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->right));
14820 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bottom));
14822 if (ndr_flags & NDR_BUFFERS) {
14824 return NDR_ERR_SUCCESS;
14827 static enum ndr_err_code ndr_pull_spoolss_FormArea(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormArea *r)
14829 if (ndr_flags & NDR_SCALARS) {
14830 NDR_CHECK(ndr_pull_align(ndr, 4));
14831 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->left));
14832 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->top));
14833 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->right));
14834 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bottom));
14836 if (ndr_flags & NDR_BUFFERS) {
14838 return NDR_ERR_SUCCESS;
14841 _PUBLIC_ void ndr_print_spoolss_FormArea(struct ndr_print *ndr, const char *name, const struct spoolss_FormArea *r)
14843 ndr_print_struct(ndr, name, "spoolss_FormArea");
14844 ndr->depth++;
14845 ndr_print_uint32(ndr, "left", r->left);
14846 ndr_print_uint32(ndr, "top", r->top);
14847 ndr_print_uint32(ndr, "right", r->right);
14848 ndr_print_uint32(ndr, "bottom", r->bottom);
14849 ndr->depth--;
14852 static enum ndr_err_code ndr_push_spoolss_FormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo1 *r)
14854 if (ndr_flags & NDR_SCALARS) {
14855 NDR_CHECK(ndr_push_align(ndr, 4));
14856 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
14858 uint32_t _flags_save_string = ndr->flags;
14859 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14860 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
14861 ndr->flags = _flags_save_string;
14863 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
14864 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
14866 if (ndr_flags & NDR_BUFFERS) {
14868 uint32_t _flags_save_string = ndr->flags;
14869 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14870 if (r->form_name) {
14871 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
14872 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
14874 ndr->flags = _flags_save_string;
14877 return NDR_ERR_SUCCESS;
14880 static enum ndr_err_code ndr_pull_spoolss_FormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo1 *r)
14882 uint32_t _ptr_form_name;
14883 TALLOC_CTX *_mem_save_form_name_0;
14884 if (ndr_flags & NDR_SCALARS) {
14885 NDR_CHECK(ndr_pull_align(ndr, 4));
14886 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
14888 uint32_t _flags_save_string = ndr->flags;
14889 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14890 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
14891 if (_ptr_form_name) {
14892 NDR_PULL_ALLOC(ndr, r->form_name);
14893 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
14894 } else {
14895 r->form_name = NULL;
14897 ndr->flags = _flags_save_string;
14899 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
14900 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
14902 if (ndr_flags & NDR_BUFFERS) {
14904 uint32_t _flags_save_string = ndr->flags;
14905 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14906 if (r->form_name) {
14907 uint32_t _relative_save_offset;
14908 _relative_save_offset = ndr->offset;
14909 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
14910 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14911 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
14912 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
14913 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
14914 ndr->offset = _relative_save_offset;
14916 ndr->flags = _flags_save_string;
14919 return NDR_ERR_SUCCESS;
14922 _PUBLIC_ void ndr_print_spoolss_FormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo1 *r)
14924 ndr_print_struct(ndr, name, "spoolss_FormInfo1");
14925 ndr->depth++;
14926 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
14927 ndr_print_ptr(ndr, "form_name", r->form_name);
14928 ndr->depth++;
14929 if (r->form_name) {
14930 ndr_print_string(ndr, "form_name", r->form_name);
14932 ndr->depth--;
14933 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
14934 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
14935 ndr->depth--;
14938 static enum ndr_err_code ndr_push_spoolss_FormStringType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
14940 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14941 return NDR_ERR_SUCCESS;
14944 static enum ndr_err_code ndr_pull_spoolss_FormStringType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
14946 uint32_t v;
14947 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14948 *r = v;
14949 return NDR_ERR_SUCCESS;
14952 _PUBLIC_ void ndr_print_spoolss_FormStringType(struct ndr_print *ndr, const char *name, uint32_t r)
14954 ndr_print_uint32(ndr, name, r);
14955 ndr->depth++;
14956 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE, r);
14957 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL, r);
14958 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR, r);
14959 ndr->depth--;
14962 static enum ndr_err_code ndr_push_spoolss_FormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo2 *r)
14964 if (ndr_flags & NDR_SCALARS) {
14965 NDR_CHECK(ndr_push_align(ndr, 4));
14966 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
14968 uint32_t _flags_save_string = ndr->flags;
14969 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14970 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
14971 ndr->flags = _flags_save_string;
14973 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
14974 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
14976 uint32_t _flags_save_string = ndr->flags;
14977 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
14978 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->keyword));
14979 ndr->flags = _flags_save_string;
14981 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
14983 uint32_t _flags_save_string = ndr->flags;
14984 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14985 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->mui_dll));
14986 ndr->flags = _flags_save_string;
14988 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
14990 uint32_t _flags_save_string = ndr->flags;
14991 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14992 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->display_name));
14993 ndr->flags = _flags_save_string;
14995 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
14997 if (ndr_flags & NDR_BUFFERS) {
14999 uint32_t _flags_save_string = ndr->flags;
15000 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15001 if (r->form_name) {
15002 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
15003 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
15005 ndr->flags = _flags_save_string;
15008 uint32_t _flags_save_string = ndr->flags;
15009 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15010 if (r->keyword) {
15011 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->keyword));
15012 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->keyword));
15014 ndr->flags = _flags_save_string;
15017 uint32_t _flags_save_string = ndr->flags;
15018 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15019 if (r->mui_dll) {
15020 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->mui_dll));
15021 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mui_dll));
15023 ndr->flags = _flags_save_string;
15026 uint32_t _flags_save_string = ndr->flags;
15027 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15028 if (r->display_name) {
15029 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->display_name));
15030 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->display_name));
15032 ndr->flags = _flags_save_string;
15035 return NDR_ERR_SUCCESS;
15038 static enum ndr_err_code ndr_pull_spoolss_FormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo2 *r)
15040 uint32_t _ptr_form_name;
15041 TALLOC_CTX *_mem_save_form_name_0;
15042 uint32_t _ptr_keyword;
15043 TALLOC_CTX *_mem_save_keyword_0;
15044 uint32_t _ptr_mui_dll;
15045 TALLOC_CTX *_mem_save_mui_dll_0;
15046 uint32_t _ptr_display_name;
15047 TALLOC_CTX *_mem_save_display_name_0;
15048 if (ndr_flags & NDR_SCALARS) {
15049 NDR_CHECK(ndr_pull_align(ndr, 4));
15050 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15052 uint32_t _flags_save_string = ndr->flags;
15053 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15054 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15055 if (_ptr_form_name) {
15056 NDR_PULL_ALLOC(ndr, r->form_name);
15057 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
15058 } else {
15059 r->form_name = NULL;
15061 ndr->flags = _flags_save_string;
15063 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15064 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15066 uint32_t _flags_save_string = ndr->flags;
15067 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15068 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
15069 if (_ptr_keyword) {
15070 NDR_PULL_ALLOC(ndr, r->keyword);
15071 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->keyword, _ptr_keyword));
15072 } else {
15073 r->keyword = NULL;
15075 ndr->flags = _flags_save_string;
15077 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
15079 uint32_t _flags_save_string = ndr->flags;
15080 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15081 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
15082 if (_ptr_mui_dll) {
15083 NDR_PULL_ALLOC(ndr, r->mui_dll);
15084 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->mui_dll, _ptr_mui_dll));
15085 } else {
15086 r->mui_dll = NULL;
15088 ndr->flags = _flags_save_string;
15090 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
15092 uint32_t _flags_save_string = ndr->flags;
15093 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15094 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
15095 if (_ptr_display_name) {
15096 NDR_PULL_ALLOC(ndr, r->display_name);
15097 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->display_name, _ptr_display_name));
15098 } else {
15099 r->display_name = NULL;
15101 ndr->flags = _flags_save_string;
15103 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
15105 if (ndr_flags & NDR_BUFFERS) {
15107 uint32_t _flags_save_string = ndr->flags;
15108 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15109 if (r->form_name) {
15110 uint32_t _relative_save_offset;
15111 _relative_save_offset = ndr->offset;
15112 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
15113 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15114 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15115 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
15116 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15117 ndr->offset = _relative_save_offset;
15119 ndr->flags = _flags_save_string;
15122 uint32_t _flags_save_string = ndr->flags;
15123 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15124 if (r->keyword) {
15125 uint32_t _relative_save_offset;
15126 _relative_save_offset = ndr->offset;
15127 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->keyword));
15128 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
15129 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
15130 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->keyword));
15131 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
15132 ndr->offset = _relative_save_offset;
15134 ndr->flags = _flags_save_string;
15137 uint32_t _flags_save_string = ndr->flags;
15138 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15139 if (r->mui_dll) {
15140 uint32_t _relative_save_offset;
15141 _relative_save_offset = ndr->offset;
15142 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->mui_dll));
15143 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
15144 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
15145 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mui_dll));
15146 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
15147 ndr->offset = _relative_save_offset;
15149 ndr->flags = _flags_save_string;
15152 uint32_t _flags_save_string = ndr->flags;
15153 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15154 if (r->display_name) {
15155 uint32_t _relative_save_offset;
15156 _relative_save_offset = ndr->offset;
15157 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->display_name));
15158 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15159 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
15160 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->display_name));
15161 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
15162 ndr->offset = _relative_save_offset;
15164 ndr->flags = _flags_save_string;
15167 return NDR_ERR_SUCCESS;
15170 _PUBLIC_ void ndr_print_spoolss_FormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo2 *r)
15172 ndr_print_struct(ndr, name, "spoolss_FormInfo2");
15173 ndr->depth++;
15174 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15175 ndr_print_ptr(ndr, "form_name", r->form_name);
15176 ndr->depth++;
15177 if (r->form_name) {
15178 ndr_print_string(ndr, "form_name", r->form_name);
15180 ndr->depth--;
15181 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15182 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15183 ndr_print_ptr(ndr, "keyword", r->keyword);
15184 ndr->depth++;
15185 if (r->keyword) {
15186 ndr_print_string(ndr, "keyword", r->keyword);
15188 ndr->depth--;
15189 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
15190 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
15191 ndr->depth++;
15192 if (r->mui_dll) {
15193 ndr_print_string(ndr, "mui_dll", r->mui_dll);
15195 ndr->depth--;
15196 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
15197 ndr_print_ptr(ndr, "display_name", r->display_name);
15198 ndr->depth++;
15199 if (r->display_name) {
15200 ndr_print_string(ndr, "display_name", r->display_name);
15202 ndr->depth--;
15203 ndr_print_uint32(ndr, "lang_id", r->lang_id);
15204 ndr->depth--;
15207 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_FormInfo *r)
15209 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
15210 if (ndr_flags & NDR_SCALARS) {
15211 int level = ndr_push_get_switch_value(ndr, r);
15212 switch (level) {
15213 case 1: {
15214 NDR_CHECK(ndr_push_align(ndr, 4));
15215 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15216 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
15217 break; }
15219 case 2: {
15220 NDR_CHECK(ndr_push_align(ndr, 4));
15221 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15222 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
15223 break; }
15225 default: {
15226 break; }
15230 if (ndr_flags & NDR_BUFFERS) {
15231 int level = ndr_push_get_switch_value(ndr, r);
15232 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
15233 switch (level) {
15234 case 1:
15235 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
15236 break;
15238 case 2:
15239 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
15240 break;
15242 default:
15243 break;
15247 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
15248 return NDR_ERR_SUCCESS;
15251 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_FormInfo *r)
15253 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
15254 int level;
15255 level = ndr_pull_get_switch_value(ndr, r);
15256 if (ndr_flags & NDR_SCALARS) {
15257 switch (level) {
15258 case 1: {
15259 NDR_CHECK(ndr_pull_align(ndr, 4));
15260 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15261 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
15262 break; }
15264 case 2: {
15265 NDR_CHECK(ndr_pull_align(ndr, 4));
15266 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15267 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
15268 break; }
15270 default: {
15271 break; }
15275 if (ndr_flags & NDR_BUFFERS) {
15276 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15277 switch (level) {
15278 case 1:
15279 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
15280 break;
15282 case 2:
15283 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
15284 break;
15286 default:
15287 break;
15291 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15292 return NDR_ERR_SUCCESS;
15295 _PUBLIC_ void ndr_print_spoolss_FormInfo(struct ndr_print *ndr, const char *name, const union spoolss_FormInfo *r)
15297 int level;
15298 level = ndr_print_get_switch_value(ndr, r);
15299 ndr_print_union(ndr, name, level, "spoolss_FormInfo");
15300 switch (level) {
15301 case 1:
15302 ndr_print_spoolss_FormInfo1(ndr, "info1", &r->info1);
15303 break;
15305 case 2:
15306 ndr_print_spoolss_FormInfo2(ndr, "info2", &r->info2);
15307 break;
15309 default:
15310 break;
15315 _PUBLIC_ size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15317 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo, ic);
15320 static enum ndr_err_code ndr_push_spoolss_AddFormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo1 *r)
15322 if (ndr_flags & NDR_SCALARS) {
15323 NDR_CHECK(ndr_push_align(ndr, 4));
15324 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15325 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
15326 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15327 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15329 if (ndr_flags & NDR_BUFFERS) {
15330 if (r->form_name) {
15331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15332 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15333 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15334 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15337 return NDR_ERR_SUCCESS;
15340 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo1 *r)
15342 uint32_t _ptr_form_name;
15343 TALLOC_CTX *_mem_save_form_name_0;
15344 if (ndr_flags & NDR_SCALARS) {
15345 NDR_CHECK(ndr_pull_align(ndr, 4));
15346 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15347 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15348 if (_ptr_form_name) {
15349 NDR_PULL_ALLOC(ndr, r->form_name);
15350 } else {
15351 r->form_name = NULL;
15353 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15354 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15356 if (ndr_flags & NDR_BUFFERS) {
15357 if (r->form_name) {
15358 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15359 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15360 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
15361 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
15362 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
15363 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));
15365 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
15366 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
15367 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15370 return NDR_ERR_SUCCESS;
15373 _PUBLIC_ void ndr_print_spoolss_AddFormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo1 *r)
15375 ndr_print_struct(ndr, name, "spoolss_AddFormInfo1");
15376 ndr->depth++;
15377 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15378 ndr_print_ptr(ndr, "form_name", r->form_name);
15379 ndr->depth++;
15380 if (r->form_name) {
15381 ndr_print_string(ndr, "form_name", r->form_name);
15383 ndr->depth--;
15384 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15385 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15386 ndr->depth--;
15389 static enum ndr_err_code ndr_push_spoolss_AddFormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo2 *r)
15391 if (ndr_flags & NDR_SCALARS) {
15392 NDR_CHECK(ndr_push_align(ndr, 4));
15393 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15394 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
15395 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15396 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15397 NDR_CHECK(ndr_push_unique_ptr(ndr, r->keyword));
15398 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
15399 NDR_CHECK(ndr_push_unique_ptr(ndr, r->mui_dll));
15400 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
15401 NDR_CHECK(ndr_push_unique_ptr(ndr, r->display_name));
15402 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
15404 if (ndr_flags & NDR_BUFFERS) {
15405 if (r->form_name) {
15406 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15407 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15408 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15409 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15411 if (r->keyword) {
15412 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
15413 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15414 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
15415 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->keyword, ndr_charset_length(r->keyword, CH_DOS), sizeof(uint8_t), CH_DOS));
15417 if (r->mui_dll) {
15418 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
15419 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15420 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
15421 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->mui_dll, ndr_charset_length(r->mui_dll, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15423 if (r->display_name) {
15424 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
15425 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15426 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
15427 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->display_name, ndr_charset_length(r->display_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15430 return NDR_ERR_SUCCESS;
15433 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo2 *r)
15435 uint32_t _ptr_form_name;
15436 TALLOC_CTX *_mem_save_form_name_0;
15437 uint32_t _ptr_keyword;
15438 TALLOC_CTX *_mem_save_keyword_0;
15439 uint32_t _ptr_mui_dll;
15440 TALLOC_CTX *_mem_save_mui_dll_0;
15441 uint32_t _ptr_display_name;
15442 TALLOC_CTX *_mem_save_display_name_0;
15443 if (ndr_flags & NDR_SCALARS) {
15444 NDR_CHECK(ndr_pull_align(ndr, 4));
15445 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15446 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15447 if (_ptr_form_name) {
15448 NDR_PULL_ALLOC(ndr, r->form_name);
15449 } else {
15450 r->form_name = NULL;
15452 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15453 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15454 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
15455 if (_ptr_keyword) {
15456 NDR_PULL_ALLOC(ndr, r->keyword);
15457 } else {
15458 r->keyword = NULL;
15460 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
15461 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
15462 if (_ptr_mui_dll) {
15463 NDR_PULL_ALLOC(ndr, r->mui_dll);
15464 } else {
15465 r->mui_dll = NULL;
15467 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
15468 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
15469 if (_ptr_display_name) {
15470 NDR_PULL_ALLOC(ndr, r->display_name);
15471 } else {
15472 r->display_name = NULL;
15474 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
15476 if (ndr_flags & NDR_BUFFERS) {
15477 if (r->form_name) {
15478 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15479 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15480 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
15481 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
15482 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
15483 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));
15485 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
15486 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
15487 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15489 if (r->keyword) {
15490 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
15491 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
15492 NDR_CHECK(ndr_pull_array_size(ndr, &r->keyword));
15493 NDR_CHECK(ndr_pull_array_length(ndr, &r->keyword));
15494 if (ndr_get_array_length(ndr, &r->keyword) > ndr_get_array_size(ndr, &r->keyword)) {
15495 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));
15497 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t)));
15498 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->keyword, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t), CH_DOS));
15499 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
15501 if (r->mui_dll) {
15502 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
15503 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
15504 NDR_CHECK(ndr_pull_array_size(ndr, &r->mui_dll));
15505 NDR_CHECK(ndr_pull_array_length(ndr, &r->mui_dll));
15506 if (ndr_get_array_length(ndr, &r->mui_dll) > ndr_get_array_size(ndr, &r->mui_dll)) {
15507 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));
15509 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t)));
15510 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->mui_dll, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t), CH_UTF16));
15511 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
15513 if (r->display_name) {
15514 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15515 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
15516 NDR_CHECK(ndr_pull_array_size(ndr, &r->display_name));
15517 NDR_CHECK(ndr_pull_array_length(ndr, &r->display_name));
15518 if (ndr_get_array_length(ndr, &r->display_name) > ndr_get_array_size(ndr, &r->display_name)) {
15519 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));
15521 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t)));
15522 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->display_name, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t), CH_UTF16));
15523 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
15526 return NDR_ERR_SUCCESS;
15529 _PUBLIC_ void ndr_print_spoolss_AddFormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo2 *r)
15531 ndr_print_struct(ndr, name, "spoolss_AddFormInfo2");
15532 ndr->depth++;
15533 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15534 ndr_print_ptr(ndr, "form_name", r->form_name);
15535 ndr->depth++;
15536 if (r->form_name) {
15537 ndr_print_string(ndr, "form_name", r->form_name);
15539 ndr->depth--;
15540 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15541 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15542 ndr_print_ptr(ndr, "keyword", r->keyword);
15543 ndr->depth++;
15544 if (r->keyword) {
15545 ndr_print_string(ndr, "keyword", r->keyword);
15547 ndr->depth--;
15548 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
15549 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
15550 ndr->depth++;
15551 if (r->mui_dll) {
15552 ndr_print_string(ndr, "mui_dll", r->mui_dll);
15554 ndr->depth--;
15555 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
15556 ndr_print_ptr(ndr, "display_name", r->display_name);
15557 ndr->depth++;
15558 if (r->display_name) {
15559 ndr_print_string(ndr, "display_name", r->display_name);
15561 ndr->depth--;
15562 ndr_print_uint32(ndr, "lang_id", r->lang_id);
15563 ndr->depth--;
15566 static enum ndr_err_code ndr_push_spoolss_AddFormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddFormInfo *r)
15568 if (ndr_flags & NDR_SCALARS) {
15569 int level = ndr_push_get_switch_value(ndr, r);
15570 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
15571 switch (level) {
15572 case 1: {
15573 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
15574 break; }
15576 case 2: {
15577 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
15578 break; }
15580 default:
15581 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
15584 if (ndr_flags & NDR_BUFFERS) {
15585 int level = ndr_push_get_switch_value(ndr, r);
15586 switch (level) {
15587 case 1:
15588 if (r->info1) {
15589 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
15591 break;
15593 case 2:
15594 if (r->info2) {
15595 NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
15597 break;
15599 default:
15600 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
15603 return NDR_ERR_SUCCESS;
15606 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddFormInfo *r)
15608 int level;
15609 uint32_t _level;
15610 TALLOC_CTX *_mem_save_info1_0;
15611 TALLOC_CTX *_mem_save_info2_0;
15612 level = ndr_pull_get_switch_value(ndr, r);
15613 if (ndr_flags & NDR_SCALARS) {
15614 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
15615 if (_level != level) {
15616 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
15618 switch (level) {
15619 case 1: {
15620 uint32_t _ptr_info1;
15621 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
15622 if (_ptr_info1) {
15623 NDR_PULL_ALLOC(ndr, r->info1);
15624 } else {
15625 r->info1 = NULL;
15627 break; }
15629 case 2: {
15630 uint32_t _ptr_info2;
15631 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
15632 if (_ptr_info2) {
15633 NDR_PULL_ALLOC(ndr, r->info2);
15634 } else {
15635 r->info2 = NULL;
15637 break; }
15639 default:
15640 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
15643 if (ndr_flags & NDR_BUFFERS) {
15644 switch (level) {
15645 case 1:
15646 if (r->info1) {
15647 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
15648 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
15649 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
15650 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
15652 break;
15654 case 2:
15655 if (r->info2) {
15656 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
15657 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
15658 NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
15659 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
15661 break;
15663 default:
15664 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
15667 return NDR_ERR_SUCCESS;
15670 _PUBLIC_ void ndr_print_spoolss_AddFormInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddFormInfo *r)
15672 int level;
15673 level = ndr_print_get_switch_value(ndr, r);
15674 ndr_print_union(ndr, name, level, "spoolss_AddFormInfo");
15675 switch (level) {
15676 case 1:
15677 ndr_print_ptr(ndr, "info1", r->info1);
15678 ndr->depth++;
15679 if (r->info1) {
15680 ndr_print_spoolss_AddFormInfo1(ndr, "info1", r->info1);
15682 ndr->depth--;
15683 break;
15685 case 2:
15686 ndr_print_ptr(ndr, "info2", r->info2);
15687 ndr->depth++;
15688 if (r->info2) {
15689 ndr_print_spoolss_AddFormInfo2(ndr, "info2", r->info2);
15691 ndr->depth--;
15692 break;
15694 default:
15695 ndr_print_bad_level(ndr, name, level);
15699 static enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo1 *r)
15701 if (ndr_flags & NDR_SCALARS) {
15702 NDR_CHECK(ndr_push_align(ndr, 4));
15704 uint32_t _flags_save_string = ndr->flags;
15705 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15706 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
15707 ndr->flags = _flags_save_string;
15710 if (ndr_flags & NDR_BUFFERS) {
15712 uint32_t _flags_save_string = ndr->flags;
15713 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15714 if (r->port_name) {
15715 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
15716 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
15718 ndr->flags = _flags_save_string;
15721 return NDR_ERR_SUCCESS;
15724 static enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo1 *r)
15726 uint32_t _ptr_port_name;
15727 TALLOC_CTX *_mem_save_port_name_0;
15728 if (ndr_flags & NDR_SCALARS) {
15729 NDR_CHECK(ndr_pull_align(ndr, 4));
15731 uint32_t _flags_save_string = ndr->flags;
15732 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15733 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
15734 if (_ptr_port_name) {
15735 NDR_PULL_ALLOC(ndr, r->port_name);
15736 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
15737 } else {
15738 r->port_name = NULL;
15740 ndr->flags = _flags_save_string;
15743 if (ndr_flags & NDR_BUFFERS) {
15745 uint32_t _flags_save_string = ndr->flags;
15746 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15747 if (r->port_name) {
15748 uint32_t _relative_save_offset;
15749 _relative_save_offset = ndr->offset;
15750 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
15751 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15752 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
15753 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
15754 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
15755 ndr->offset = _relative_save_offset;
15757 ndr->flags = _flags_save_string;
15760 return NDR_ERR_SUCCESS;
15763 _PUBLIC_ void ndr_print_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo1 *r)
15765 ndr_print_struct(ndr, name, "spoolss_PortInfo1");
15766 ndr->depth++;
15767 ndr_print_ptr(ndr, "port_name", r->port_name);
15768 ndr->depth++;
15769 if (r->port_name) {
15770 ndr_print_string(ndr, "port_name", r->port_name);
15772 ndr->depth--;
15773 ndr->depth--;
15776 static enum ndr_err_code ndr_push_spoolss_PortType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
15778 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
15779 return NDR_ERR_SUCCESS;
15782 static enum ndr_err_code ndr_pull_spoolss_PortType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
15784 uint32_t v;
15785 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
15786 *r = v;
15787 return NDR_ERR_SUCCESS;
15790 _PUBLIC_ void ndr_print_spoolss_PortType(struct ndr_print *ndr, const char *name, uint32_t r)
15792 ndr_print_uint32(ndr, name, r);
15793 ndr->depth++;
15794 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE, r);
15795 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ, r);
15796 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED, r);
15797 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED, r);
15798 ndr->depth--;
15801 static enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo2 *r)
15803 if (ndr_flags & NDR_SCALARS) {
15804 NDR_CHECK(ndr_push_align(ndr, 4));
15806 uint32_t _flags_save_string = ndr->flags;
15807 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15808 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
15809 ndr->flags = _flags_save_string;
15812 uint32_t _flags_save_string = ndr->flags;
15813 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15814 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
15815 ndr->flags = _flags_save_string;
15818 uint32_t _flags_save_string = ndr->flags;
15819 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15820 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
15821 ndr->flags = _flags_save_string;
15823 NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
15824 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
15826 if (ndr_flags & NDR_BUFFERS) {
15828 uint32_t _flags_save_string = ndr->flags;
15829 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15830 if (r->port_name) {
15831 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
15832 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
15834 ndr->flags = _flags_save_string;
15837 uint32_t _flags_save_string = ndr->flags;
15838 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15839 if (r->monitor_name) {
15840 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
15841 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
15843 ndr->flags = _flags_save_string;
15846 uint32_t _flags_save_string = ndr->flags;
15847 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15848 if (r->description) {
15849 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
15850 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
15852 ndr->flags = _flags_save_string;
15855 return NDR_ERR_SUCCESS;
15858 static enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo2 *r)
15860 uint32_t _ptr_port_name;
15861 TALLOC_CTX *_mem_save_port_name_0;
15862 uint32_t _ptr_monitor_name;
15863 TALLOC_CTX *_mem_save_monitor_name_0;
15864 uint32_t _ptr_description;
15865 TALLOC_CTX *_mem_save_description_0;
15866 if (ndr_flags & NDR_SCALARS) {
15867 NDR_CHECK(ndr_pull_align(ndr, 4));
15869 uint32_t _flags_save_string = ndr->flags;
15870 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15871 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
15872 if (_ptr_port_name) {
15873 NDR_PULL_ALLOC(ndr, r->port_name);
15874 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
15875 } else {
15876 r->port_name = NULL;
15878 ndr->flags = _flags_save_string;
15881 uint32_t _flags_save_string = ndr->flags;
15882 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15883 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
15884 if (_ptr_monitor_name) {
15885 NDR_PULL_ALLOC(ndr, r->monitor_name);
15886 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
15887 } else {
15888 r->monitor_name = NULL;
15890 ndr->flags = _flags_save_string;
15893 uint32_t _flags_save_string = ndr->flags;
15894 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15895 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
15896 if (_ptr_description) {
15897 NDR_PULL_ALLOC(ndr, r->description);
15898 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
15899 } else {
15900 r->description = NULL;
15902 ndr->flags = _flags_save_string;
15904 NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
15905 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
15907 if (ndr_flags & NDR_BUFFERS) {
15909 uint32_t _flags_save_string = ndr->flags;
15910 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15911 if (r->port_name) {
15912 uint32_t _relative_save_offset;
15913 _relative_save_offset = ndr->offset;
15914 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
15915 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15916 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
15917 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
15918 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
15919 ndr->offset = _relative_save_offset;
15921 ndr->flags = _flags_save_string;
15924 uint32_t _flags_save_string = ndr->flags;
15925 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15926 if (r->monitor_name) {
15927 uint32_t _relative_save_offset;
15928 _relative_save_offset = ndr->offset;
15929 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
15930 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15931 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
15932 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
15933 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
15934 ndr->offset = _relative_save_offset;
15936 ndr->flags = _flags_save_string;
15939 uint32_t _flags_save_string = ndr->flags;
15940 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15941 if (r->description) {
15942 uint32_t _relative_save_offset;
15943 _relative_save_offset = ndr->offset;
15944 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
15945 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
15946 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
15947 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
15948 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
15949 ndr->offset = _relative_save_offset;
15951 ndr->flags = _flags_save_string;
15954 return NDR_ERR_SUCCESS;
15957 _PUBLIC_ void ndr_print_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo2 *r)
15959 ndr_print_struct(ndr, name, "spoolss_PortInfo2");
15960 ndr->depth++;
15961 ndr_print_ptr(ndr, "port_name", r->port_name);
15962 ndr->depth++;
15963 if (r->port_name) {
15964 ndr_print_string(ndr, "port_name", r->port_name);
15966 ndr->depth--;
15967 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
15968 ndr->depth++;
15969 if (r->monitor_name) {
15970 ndr_print_string(ndr, "monitor_name", r->monitor_name);
15972 ndr->depth--;
15973 ndr_print_ptr(ndr, "description", r->description);
15974 ndr->depth++;
15975 if (r->description) {
15976 ndr_print_string(ndr, "description", r->description);
15978 ndr->depth--;
15979 ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
15980 ndr_print_uint32(ndr, "reserved", r->reserved);
15981 ndr->depth--;
15984 static enum ndr_err_code ndr_push_spoolss_PortStatus(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortStatus r)
15986 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
15987 return NDR_ERR_SUCCESS;
15990 static enum ndr_err_code ndr_pull_spoolss_PortStatus(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortStatus *r)
15992 uint32_t v;
15993 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
15994 *r = v;
15995 return NDR_ERR_SUCCESS;
15998 _PUBLIC_ void ndr_print_spoolss_PortStatus(struct ndr_print *ndr, const char *name, enum spoolss_PortStatus r)
16000 const char *val = NULL;
16002 switch (r) {
16003 case PORT_STATUS_CLEAR: val = "PORT_STATUS_CLEAR"; break;
16004 case PORT_STATUS_OFFLINE: val = "PORT_STATUS_OFFLINE"; break;
16005 case PORT_STATUS_PAPER_JAM: val = "PORT_STATUS_PAPER_JAM"; break;
16006 case PORT_STATUS_PAPER_OUT: val = "PORT_STATUS_PAPER_OUT"; break;
16007 case PORT_STATUS_OUTPUT_BIN_FULL: val = "PORT_STATUS_OUTPUT_BIN_FULL"; break;
16008 case PORT_STATUS_PAPER_PROBLEM: val = "PORT_STATUS_PAPER_PROBLEM"; break;
16009 case PORT_STATUS_NO_TONER: val = "PORT_STATUS_NO_TONER"; break;
16010 case PORT_STATUS_DOOR_OPEN: val = "PORT_STATUS_DOOR_OPEN"; break;
16011 case PORT_STATUS_USER_INTERVENTION: val = "PORT_STATUS_USER_INTERVENTION"; break;
16012 case PORT_STATUS_OUT_OF_MEMORY: val = "PORT_STATUS_OUT_OF_MEMORY"; break;
16013 case PORT_STATUS_TONER_LOW: val = "PORT_STATUS_TONER_LOW"; break;
16014 case PORT_STATUS_WARMING_UP: val = "PORT_STATUS_WARMING_UP"; break;
16015 case PORT_STATUS_POWER_SAVE: val = "PORT_STATUS_POWER_SAVE"; break;
16017 ndr_print_enum(ndr, name, "ENUM", val, r);
16020 static enum ndr_err_code ndr_push_spoolss_PortSeverity(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortSeverity r)
16022 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16023 return NDR_ERR_SUCCESS;
16026 static enum ndr_err_code ndr_pull_spoolss_PortSeverity(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortSeverity *r)
16028 uint32_t v;
16029 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16030 *r = v;
16031 return NDR_ERR_SUCCESS;
16034 _PUBLIC_ void ndr_print_spoolss_PortSeverity(struct ndr_print *ndr, const char *name, enum spoolss_PortSeverity r)
16036 const char *val = NULL;
16038 switch (r) {
16039 case PORT_STATUS_TYPE_ERROR: val = "PORT_STATUS_TYPE_ERROR"; break;
16040 case PORT_STATUS_TYPE_WARNING: val = "PORT_STATUS_TYPE_WARNING"; break;
16041 case PORT_STATUS_TYPE_INFO: val = "PORT_STATUS_TYPE_INFO"; break;
16043 ndr_print_enum(ndr, name, "ENUM", val, r);
16046 static enum ndr_err_code ndr_push_spoolss_PortInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo3 *r)
16048 if (ndr_flags & NDR_SCALARS) {
16049 NDR_CHECK(ndr_push_align(ndr, 4));
16050 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr, NDR_SCALARS, r->status));
16052 uint32_t _flags_save_string = ndr->flags;
16053 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16054 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->status_string));
16055 ndr->flags = _flags_save_string;
16057 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr, NDR_SCALARS, r->severity));
16059 if (ndr_flags & NDR_BUFFERS) {
16061 uint32_t _flags_save_string = ndr->flags;
16062 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16063 if (r->status_string) {
16064 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->status_string));
16065 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->status_string));
16067 ndr->flags = _flags_save_string;
16070 return NDR_ERR_SUCCESS;
16073 static enum ndr_err_code ndr_pull_spoolss_PortInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo3 *r)
16075 uint32_t _ptr_status_string;
16076 TALLOC_CTX *_mem_save_status_string_0;
16077 if (ndr_flags & NDR_SCALARS) {
16078 NDR_CHECK(ndr_pull_align(ndr, 4));
16079 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr, NDR_SCALARS, &r->status));
16081 uint32_t _flags_save_string = ndr->flags;
16082 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16083 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_status_string));
16084 if (_ptr_status_string) {
16085 NDR_PULL_ALLOC(ndr, r->status_string);
16086 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->status_string, _ptr_status_string));
16087 } else {
16088 r->status_string = NULL;
16090 ndr->flags = _flags_save_string;
16092 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr, NDR_SCALARS, &r->severity));
16094 if (ndr_flags & NDR_BUFFERS) {
16096 uint32_t _flags_save_string = ndr->flags;
16097 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16098 if (r->status_string) {
16099 uint32_t _relative_save_offset;
16100 _relative_save_offset = ndr->offset;
16101 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->status_string));
16102 _mem_save_status_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
16103 NDR_PULL_SET_MEM_CTX(ndr, r->status_string, 0);
16104 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->status_string));
16105 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_string_0, 0);
16106 ndr->offset = _relative_save_offset;
16108 ndr->flags = _flags_save_string;
16111 return NDR_ERR_SUCCESS;
16114 _PUBLIC_ void ndr_print_spoolss_PortInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo3 *r)
16116 ndr_print_struct(ndr, name, "spoolss_PortInfo3");
16117 ndr->depth++;
16118 ndr_print_spoolss_PortStatus(ndr, "status", r->status);
16119 ndr_print_ptr(ndr, "status_string", r->status_string);
16120 ndr->depth++;
16121 if (r->status_string) {
16122 ndr_print_string(ndr, "status_string", r->status_string);
16124 ndr->depth--;
16125 ndr_print_spoolss_PortSeverity(ndr, "severity", r->severity);
16126 ndr->depth--;
16129 static enum ndr_err_code ndr_push_spoolss_PortInfoFF(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfoFF *r)
16131 if (ndr_flags & NDR_SCALARS) {
16132 NDR_CHECK(ndr_push_align(ndr, 4));
16134 uint32_t _flags_save_string = ndr->flags;
16135 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16136 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
16137 ndr->flags = _flags_save_string;
16139 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->monitor_data));
16141 if (ndr_flags & NDR_BUFFERS) {
16143 uint32_t _flags_save_string = ndr->flags;
16144 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16145 if (r->port_name) {
16146 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
16147 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
16149 ndr->flags = _flags_save_string;
16152 return NDR_ERR_SUCCESS;
16155 static enum ndr_err_code ndr_pull_spoolss_PortInfoFF(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfoFF *r)
16157 uint32_t _ptr_port_name;
16158 TALLOC_CTX *_mem_save_port_name_0;
16159 if (ndr_flags & NDR_SCALARS) {
16160 NDR_CHECK(ndr_pull_align(ndr, 4));
16162 uint32_t _flags_save_string = ndr->flags;
16163 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16164 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
16165 if (_ptr_port_name) {
16166 NDR_PULL_ALLOC(ndr, r->port_name);
16167 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
16168 } else {
16169 r->port_name = NULL;
16171 ndr->flags = _flags_save_string;
16173 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->monitor_data));
16175 if (ndr_flags & NDR_BUFFERS) {
16177 uint32_t _flags_save_string = ndr->flags;
16178 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16179 if (r->port_name) {
16180 uint32_t _relative_save_offset;
16181 _relative_save_offset = ndr->offset;
16182 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
16183 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16184 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
16185 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
16186 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
16187 ndr->offset = _relative_save_offset;
16189 ndr->flags = _flags_save_string;
16192 return NDR_ERR_SUCCESS;
16195 _PUBLIC_ void ndr_print_spoolss_PortInfoFF(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfoFF *r)
16197 ndr_print_struct(ndr, name, "spoolss_PortInfoFF");
16198 ndr->depth++;
16199 ndr_print_ptr(ndr, "port_name", r->port_name);
16200 ndr->depth++;
16201 if (r->port_name) {
16202 ndr_print_string(ndr, "port_name", r->port_name);
16204 ndr->depth--;
16205 ndr_print_DATA_BLOB(ndr, "monitor_data", r->monitor_data);
16206 ndr->depth--;
16209 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PortInfo *r)
16211 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16212 if (ndr_flags & NDR_SCALARS) {
16213 int level = ndr_push_get_switch_value(ndr, r);
16214 switch (level) {
16215 case 1: {
16216 NDR_CHECK(ndr_push_align(ndr, 4));
16217 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16218 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
16219 break; }
16221 case 2: {
16222 NDR_CHECK(ndr_push_align(ndr, 4));
16223 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16224 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
16225 break; }
16227 case 3: {
16228 NDR_CHECK(ndr_push_align(ndr, 4));
16229 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16230 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
16231 break; }
16233 case 0xff: {
16234 NDR_CHECK(ndr_push_align(ndr, 4));
16235 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16236 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
16237 break; }
16239 default: {
16240 break; }
16244 if (ndr_flags & NDR_BUFFERS) {
16245 int level = ndr_push_get_switch_value(ndr, r);
16246 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16247 switch (level) {
16248 case 1:
16249 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
16250 break;
16252 case 2:
16253 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
16254 break;
16256 case 3:
16257 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
16258 break;
16260 case 0xff:
16261 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
16262 break;
16264 default:
16265 break;
16269 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16270 return NDR_ERR_SUCCESS;
16273 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PortInfo *r)
16275 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16276 int level;
16277 level = ndr_pull_get_switch_value(ndr, r);
16278 if (ndr_flags & NDR_SCALARS) {
16279 switch (level) {
16280 case 1: {
16281 NDR_CHECK(ndr_pull_align(ndr, 4));
16282 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16283 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
16284 break; }
16286 case 2: {
16287 NDR_CHECK(ndr_pull_align(ndr, 4));
16288 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16289 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
16290 break; }
16292 case 3: {
16293 NDR_CHECK(ndr_pull_align(ndr, 4));
16294 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16295 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
16296 break; }
16298 case 0xff: {
16299 NDR_CHECK(ndr_pull_align(ndr, 4));
16300 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16301 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
16302 break; }
16304 default: {
16305 break; }
16309 if (ndr_flags & NDR_BUFFERS) {
16310 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16311 switch (level) {
16312 case 1:
16313 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
16314 break;
16316 case 2:
16317 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
16318 break;
16320 case 3:
16321 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
16322 break;
16324 case 0xff:
16325 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
16326 break;
16328 default:
16329 break;
16333 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16334 return NDR_ERR_SUCCESS;
16337 _PUBLIC_ void ndr_print_spoolss_PortInfo(struct ndr_print *ndr, const char *name, const union spoolss_PortInfo *r)
16339 int level;
16340 level = ndr_print_get_switch_value(ndr, r);
16341 ndr_print_union(ndr, name, level, "spoolss_PortInfo");
16342 switch (level) {
16343 case 1:
16344 ndr_print_spoolss_PortInfo1(ndr, "info1", &r->info1);
16345 break;
16347 case 2:
16348 ndr_print_spoolss_PortInfo2(ndr, "info2", &r->info2);
16349 break;
16351 case 3:
16352 ndr_print_spoolss_PortInfo3(ndr, "info3", &r->info3);
16353 break;
16355 case 0xff:
16356 ndr_print_spoolss_PortInfoFF(ndr, "infoFF", &r->infoFF);
16357 break;
16359 default:
16360 break;
16365 static enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo1 *r)
16367 if (ndr_flags & NDR_SCALARS) {
16368 NDR_CHECK(ndr_push_align(ndr, 4));
16370 uint32_t _flags_save_string = ndr->flags;
16371 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16372 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
16373 ndr->flags = _flags_save_string;
16376 if (ndr_flags & NDR_BUFFERS) {
16378 uint32_t _flags_save_string = ndr->flags;
16379 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16380 if (r->monitor_name) {
16381 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
16382 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
16384 ndr->flags = _flags_save_string;
16387 return NDR_ERR_SUCCESS;
16390 static enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo1 *r)
16392 uint32_t _ptr_monitor_name;
16393 TALLOC_CTX *_mem_save_monitor_name_0;
16394 if (ndr_flags & NDR_SCALARS) {
16395 NDR_CHECK(ndr_pull_align(ndr, 4));
16397 uint32_t _flags_save_string = ndr->flags;
16398 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16399 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
16400 if (_ptr_monitor_name) {
16401 NDR_PULL_ALLOC(ndr, r->monitor_name);
16402 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
16403 } else {
16404 r->monitor_name = NULL;
16406 ndr->flags = _flags_save_string;
16409 if (ndr_flags & NDR_BUFFERS) {
16411 uint32_t _flags_save_string = ndr->flags;
16412 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16413 if (r->monitor_name) {
16414 uint32_t _relative_save_offset;
16415 _relative_save_offset = ndr->offset;
16416 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
16417 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16418 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
16419 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
16420 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
16421 ndr->offset = _relative_save_offset;
16423 ndr->flags = _flags_save_string;
16426 return NDR_ERR_SUCCESS;
16429 _PUBLIC_ void ndr_print_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo1 *r)
16431 ndr_print_struct(ndr, name, "spoolss_MonitorInfo1");
16432 ndr->depth++;
16433 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
16434 ndr->depth++;
16435 if (r->monitor_name) {
16436 ndr_print_string(ndr, "monitor_name", r->monitor_name);
16438 ndr->depth--;
16439 ndr->depth--;
16442 static enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo2 *r)
16444 if (ndr_flags & NDR_SCALARS) {
16445 NDR_CHECK(ndr_push_align(ndr, 4));
16447 uint32_t _flags_save_string = ndr->flags;
16448 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16449 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
16450 ndr->flags = _flags_save_string;
16453 uint32_t _flags_save_string = ndr->flags;
16454 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16455 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->environment));
16456 ndr->flags = _flags_save_string;
16459 uint32_t _flags_save_string = ndr->flags;
16460 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16461 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name));
16462 ndr->flags = _flags_save_string;
16465 if (ndr_flags & NDR_BUFFERS) {
16467 uint32_t _flags_save_string = ndr->flags;
16468 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16469 if (r->monitor_name) {
16470 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
16471 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
16473 ndr->flags = _flags_save_string;
16476 uint32_t _flags_save_string = ndr->flags;
16477 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16478 if (r->environment) {
16479 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->environment));
16480 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
16482 ndr->flags = _flags_save_string;
16485 uint32_t _flags_save_string = ndr->flags;
16486 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16487 if (r->dll_name) {
16488 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dll_name));
16489 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
16491 ndr->flags = _flags_save_string;
16494 return NDR_ERR_SUCCESS;
16497 static enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo2 *r)
16499 uint32_t _ptr_monitor_name;
16500 TALLOC_CTX *_mem_save_monitor_name_0;
16501 uint32_t _ptr_environment;
16502 TALLOC_CTX *_mem_save_environment_0;
16503 uint32_t _ptr_dll_name;
16504 TALLOC_CTX *_mem_save_dll_name_0;
16505 if (ndr_flags & NDR_SCALARS) {
16506 NDR_CHECK(ndr_pull_align(ndr, 4));
16508 uint32_t _flags_save_string = ndr->flags;
16509 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16510 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
16511 if (_ptr_monitor_name) {
16512 NDR_PULL_ALLOC(ndr, r->monitor_name);
16513 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
16514 } else {
16515 r->monitor_name = NULL;
16517 ndr->flags = _flags_save_string;
16520 uint32_t _flags_save_string = ndr->flags;
16521 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16522 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
16523 if (_ptr_environment) {
16524 NDR_PULL_ALLOC(ndr, r->environment);
16525 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->environment, _ptr_environment));
16526 } else {
16527 r->environment = NULL;
16529 ndr->flags = _flags_save_string;
16532 uint32_t _flags_save_string = ndr->flags;
16533 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16534 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name));
16535 if (_ptr_dll_name) {
16536 NDR_PULL_ALLOC(ndr, r->dll_name);
16537 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dll_name, _ptr_dll_name));
16538 } else {
16539 r->dll_name = NULL;
16541 ndr->flags = _flags_save_string;
16544 if (ndr_flags & NDR_BUFFERS) {
16546 uint32_t _flags_save_string = ndr->flags;
16547 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16548 if (r->monitor_name) {
16549 uint32_t _relative_save_offset;
16550 _relative_save_offset = ndr->offset;
16551 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
16552 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16553 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
16554 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
16555 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
16556 ndr->offset = _relative_save_offset;
16558 ndr->flags = _flags_save_string;
16561 uint32_t _flags_save_string = ndr->flags;
16562 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16563 if (r->environment) {
16564 uint32_t _relative_save_offset;
16565 _relative_save_offset = ndr->offset;
16566 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->environment));
16567 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
16568 NDR_PULL_SET_MEM_CTX(ndr, r->environment, 0);
16569 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
16570 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
16571 ndr->offset = _relative_save_offset;
16573 ndr->flags = _flags_save_string;
16576 uint32_t _flags_save_string = ndr->flags;
16577 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16578 if (r->dll_name) {
16579 uint32_t _relative_save_offset;
16580 _relative_save_offset = ndr->offset;
16581 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dll_name));
16582 _mem_save_dll_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16583 NDR_PULL_SET_MEM_CTX(ndr, r->dll_name, 0);
16584 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
16585 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dll_name_0, 0);
16586 ndr->offset = _relative_save_offset;
16588 ndr->flags = _flags_save_string;
16591 return NDR_ERR_SUCCESS;
16594 _PUBLIC_ void ndr_print_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo2 *r)
16596 ndr_print_struct(ndr, name, "spoolss_MonitorInfo2");
16597 ndr->depth++;
16598 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
16599 ndr->depth++;
16600 if (r->monitor_name) {
16601 ndr_print_string(ndr, "monitor_name", r->monitor_name);
16603 ndr->depth--;
16604 ndr_print_ptr(ndr, "environment", r->environment);
16605 ndr->depth++;
16606 if (r->environment) {
16607 ndr_print_string(ndr, "environment", r->environment);
16609 ndr->depth--;
16610 ndr_print_ptr(ndr, "dll_name", r->dll_name);
16611 ndr->depth++;
16612 if (r->dll_name) {
16613 ndr_print_string(ndr, "dll_name", r->dll_name);
16615 ndr->depth--;
16616 ndr->depth--;
16619 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_MonitorInfo *r)
16621 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16622 if (ndr_flags & NDR_SCALARS) {
16623 int level = ndr_push_get_switch_value(ndr, r);
16624 switch (level) {
16625 case 1: {
16626 NDR_CHECK(ndr_push_align(ndr, 4));
16627 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16628 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
16629 break; }
16631 case 2: {
16632 NDR_CHECK(ndr_push_align(ndr, 4));
16633 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16634 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
16635 break; }
16637 default: {
16638 break; }
16642 if (ndr_flags & NDR_BUFFERS) {
16643 int level = ndr_push_get_switch_value(ndr, r);
16644 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16645 switch (level) {
16646 case 1:
16647 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
16648 break;
16650 case 2:
16651 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
16652 break;
16654 default:
16655 break;
16659 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16660 return NDR_ERR_SUCCESS;
16663 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_MonitorInfo *r)
16665 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16666 int level;
16667 level = ndr_pull_get_switch_value(ndr, r);
16668 if (ndr_flags & NDR_SCALARS) {
16669 switch (level) {
16670 case 1: {
16671 NDR_CHECK(ndr_pull_align(ndr, 4));
16672 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16673 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
16674 break; }
16676 case 2: {
16677 NDR_CHECK(ndr_pull_align(ndr, 4));
16678 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16679 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
16680 break; }
16682 default: {
16683 break; }
16687 if (ndr_flags & NDR_BUFFERS) {
16688 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16689 switch (level) {
16690 case 1:
16691 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
16692 break;
16694 case 2:
16695 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
16696 break;
16698 default:
16699 break;
16703 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16704 return NDR_ERR_SUCCESS;
16707 _PUBLIC_ void ndr_print_spoolss_MonitorInfo(struct ndr_print *ndr, const char *name, const union spoolss_MonitorInfo *r)
16709 int level;
16710 level = ndr_print_get_switch_value(ndr, r);
16711 ndr_print_union(ndr, name, level, "spoolss_MonitorInfo");
16712 switch (level) {
16713 case 1:
16714 ndr_print_spoolss_MonitorInfo1(ndr, "info1", &r->info1);
16715 break;
16717 case 2:
16718 ndr_print_spoolss_MonitorInfo2(ndr, "info2", &r->info2);
16719 break;
16721 default:
16722 break;
16727 static enum ndr_err_code ndr_push_spoolss_PrinterChangeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
16729 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16730 return NDR_ERR_SUCCESS;
16733 static enum ndr_err_code ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
16735 uint32_t v;
16736 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16737 *r = v;
16738 return NDR_ERR_SUCCESS;
16741 _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
16743 ndr_print_uint32(ndr, name, r);
16744 ndr->depth++;
16745 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER, r);
16746 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER, r);
16747 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER, r);
16748 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, r);
16749 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB, r);
16750 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB, r);
16751 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB, r);
16752 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB, r);
16753 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM, r);
16754 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM, r);
16755 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM, r);
16756 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT, r);
16757 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT, r);
16758 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
16759 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
16760 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
16761 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER, r);
16762 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
16763 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
16764 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
16765 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT, r);
16766 ndr->depth--;
16769 static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, int ndr_flags, enum spoolss_Field r)
16771 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
16772 return NDR_ERR_SUCCESS;
16775 static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, int ndr_flags, enum spoolss_Field *r)
16777 uint16_t v;
16778 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
16779 *r = v;
16780 return NDR_ERR_SUCCESS;
16783 _PUBLIC_ void ndr_print_spoolss_Field(struct ndr_print *ndr, const char *name, enum spoolss_Field r)
16785 const char *val = NULL;
16787 switch (r) {
16788 case SPOOLSS_FIELD_SERVER_NAME: val = "SPOOLSS_FIELD_SERVER_NAME"; break;
16789 case SPOOLSS_FIELD_PRINTER_NAME: val = "SPOOLSS_FIELD_PRINTER_NAME"; break;
16790 case SPOOLSS_FIELD_SHARE_NAME: val = "SPOOLSS_FIELD_SHARE_NAME"; break;
16791 case SPOOLSS_FIELD_PORT_NAME: val = "SPOOLSS_FIELD_PORT_NAME"; break;
16792 case SPOOLSS_FIELD_DRIVER_NAME: val = "SPOOLSS_FIELD_DRIVER_NAME"; break;
16793 case SPOOLSS_FIELD_COMMENT: val = "SPOOLSS_FIELD_COMMENT"; break;
16794 case SPOOLSS_FIELD_LOCATION: val = "SPOOLSS_FIELD_LOCATION"; break;
16795 case SPOOLSS_FIELD_DEVMODE: val = "SPOOLSS_FIELD_DEVMODE"; break;
16796 case SPOOLSS_FIELD_SEPFILE: val = "SPOOLSS_FIELD_SEPFILE"; break;
16797 case SPOOLSS_FIELD_PRINT_PROCESSOR: val = "SPOOLSS_FIELD_PRINT_PROCESSOR"; break;
16798 case SPOOLSS_FIELD_PARAMETERS: val = "SPOOLSS_FIELD_PARAMETERS"; break;
16799 case SPOOLSS_FIELD_DATATYPE: val = "SPOOLSS_FIELD_DATATYPE"; break;
16800 case SPOOLSS_FIELD_SECURITY_DESCRIPTOR: val = "SPOOLSS_FIELD_SECURITY_DESCRIPTOR"; break;
16801 case SPOOLSS_FIELD_ATTRIBUTES: val = "SPOOLSS_FIELD_ATTRIBUTES"; break;
16802 case SPOOLSS_FIELD_PRIORITY: val = "SPOOLSS_FIELD_PRIORITY"; break;
16803 case SPOOLSS_FIELD_DEFAULT_PRIORITY: val = "SPOOLSS_FIELD_DEFAULT_PRIORITY"; break;
16804 case SPOOLSS_FIELD_START_TIME: val = "SPOOLSS_FIELD_START_TIME"; break;
16805 case SPOOLSS_FIELD_UNTIL_TIME: val = "SPOOLSS_FIELD_UNTIL_TIME"; break;
16806 case SPOOLSS_FIELD_STATUS: val = "SPOOLSS_FIELD_STATUS"; break;
16807 case SPOOLSS_FIELD_STATUS_STRING: val = "SPOOLSS_FIELD_STATUS_STRING"; break;
16808 case SPOOLSS_FIELD_CJOBS: val = "SPOOLSS_FIELD_CJOBS"; break;
16809 case SPOOLSS_FIELD_AVERAGE_PPM: val = "SPOOLSS_FIELD_AVERAGE_PPM"; break;
16810 case SPOOLSS_FIELD_TOTAL_PAGES: val = "SPOOLSS_FIELD_TOTAL_PAGES"; break;
16811 case SPOOLSS_FIELD_PAGES_PRINTED: val = "SPOOLSS_FIELD_PAGES_PRINTED"; break;
16812 case SPOOLSS_FIELD_TOTAL_BYTES: val = "SPOOLSS_FIELD_TOTAL_BYTES"; break;
16813 case SPOOLSS_FIELD_BYTES_PRINTED: val = "SPOOLSS_FIELD_BYTES_PRINTED"; break;
16815 ndr_print_enum(ndr, name, "ENUM", val, r);
16818 static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyType r)
16820 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
16821 return NDR_ERR_SUCCESS;
16824 static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyType *r)
16826 uint16_t v;
16827 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
16828 *r = v;
16829 return NDR_ERR_SUCCESS;
16832 _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
16834 const char *val = NULL;
16836 switch (r) {
16837 case SPOOLSS_NOTIFY_PRINTER: val = "SPOOLSS_NOTIFY_PRINTER"; break;
16838 case SPOOLSS_NOTIFY_JOB: val = "SPOOLSS_NOTIFY_JOB"; break;
16840 ndr_print_enum(ndr, name, "ENUM", val, r);
16843 static enum ndr_err_code ndr_push_spoolss_NotifyOptionType(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOptionType *r)
16845 uint32_t cntr_fields_1;
16846 if (ndr_flags & NDR_SCALARS) {
16847 NDR_CHECK(ndr_push_align(ndr, 4));
16848 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
16849 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
16850 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
16851 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
16852 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
16853 NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
16855 if (ndr_flags & NDR_BUFFERS) {
16856 if (r->fields) {
16857 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
16858 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
16859 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, r->fields[cntr_fields_1]));
16863 return NDR_ERR_SUCCESS;
16866 static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionType *r)
16868 uint32_t _ptr_fields;
16869 uint32_t cntr_fields_1;
16870 TALLOC_CTX *_mem_save_fields_0;
16871 TALLOC_CTX *_mem_save_fields_1;
16872 if (ndr_flags & NDR_SCALARS) {
16873 NDR_CHECK(ndr_pull_align(ndr, 4));
16874 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
16875 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
16876 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
16877 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
16878 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
16879 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
16880 if (_ptr_fields) {
16881 NDR_PULL_ALLOC(ndr, r->fields);
16882 } else {
16883 r->fields = NULL;
16886 if (ndr_flags & NDR_BUFFERS) {
16887 if (r->fields) {
16888 _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
16889 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
16890 NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
16891 NDR_PULL_ALLOC_N(ndr, r->fields, ndr_get_array_size(ndr, &r->fields));
16892 _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
16893 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
16894 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
16895 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
16897 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
16898 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
16900 if (r->fields) {
16901 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->fields, r->count));
16904 return NDR_ERR_SUCCESS;
16907 _PUBLIC_ void ndr_print_spoolss_NotifyOptionType(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionType *r)
16909 uint32_t cntr_fields_1;
16910 ndr_print_struct(ndr, name, "spoolss_NotifyOptionType");
16911 ndr->depth++;
16912 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
16913 ndr_print_uint16(ndr, "u1", r->u1);
16914 ndr_print_uint32(ndr, "u2", r->u2);
16915 ndr_print_uint32(ndr, "u3", r->u3);
16916 ndr_print_uint32(ndr, "count", r->count);
16917 ndr_print_ptr(ndr, "fields", r->fields);
16918 ndr->depth++;
16919 if (r->fields) {
16920 ndr->print(ndr, "%s: ARRAY(%d)", "fields", (int)r->count);
16921 ndr->depth++;
16922 for (cntr_fields_1=0;cntr_fields_1<r->count;cntr_fields_1++) {
16923 char *idx_1=NULL;
16924 if (asprintf(&idx_1, "[%d]", cntr_fields_1) != -1) {
16925 ndr_print_spoolss_Field(ndr, "fields", r->fields[cntr_fields_1]);
16926 free(idx_1);
16929 ndr->depth--;
16931 ndr->depth--;
16932 ndr->depth--;
16935 static enum ndr_err_code ndr_push_spoolssNotifyOptionFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
16937 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16938 return NDR_ERR_SUCCESS;
16941 static enum ndr_err_code ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
16943 uint32_t v;
16944 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16945 *r = v;
16946 return NDR_ERR_SUCCESS;
16949 _PUBLIC_ void ndr_print_spoolssNotifyOptionFlags(struct ndr_print *ndr, const char *name, uint32_t r)
16951 ndr_print_uint32(ndr, name, r);
16952 ndr->depth++;
16953 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH, r);
16954 ndr->depth--;
16957 static enum ndr_err_code ndr_push_spoolss_NotifyOption(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOption *r)
16959 uint32_t cntr_types_1;
16960 if (ndr_flags & NDR_SCALARS) {
16961 NDR_CHECK(ndr_push_align(ndr, 4));
16962 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
16963 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, r->flags));
16964 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
16965 NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
16967 if (ndr_flags & NDR_BUFFERS) {
16968 if (r->types) {
16969 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
16970 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
16971 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
16973 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
16974 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
16978 return NDR_ERR_SUCCESS;
16981 static enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOption *r)
16983 uint32_t _ptr_types;
16984 uint32_t cntr_types_1;
16985 TALLOC_CTX *_mem_save_types_0;
16986 TALLOC_CTX *_mem_save_types_1;
16987 if (ndr_flags & NDR_SCALARS) {
16988 NDR_CHECK(ndr_pull_align(ndr, 4));
16989 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
16990 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, &r->flags));
16991 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
16992 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
16993 if (_ptr_types) {
16994 NDR_PULL_ALLOC(ndr, r->types);
16995 } else {
16996 r->types = NULL;
16999 if (ndr_flags & NDR_BUFFERS) {
17000 if (r->types) {
17001 _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
17002 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
17003 NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
17004 NDR_PULL_ALLOC_N(ndr, r->types, ndr_get_array_size(ndr, &r->types));
17005 _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
17006 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
17007 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17008 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
17010 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17011 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
17013 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
17014 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
17016 if (r->types) {
17017 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
17020 return NDR_ERR_SUCCESS;
17023 _PUBLIC_ void ndr_print_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOption *r)
17025 uint32_t cntr_types_1;
17026 ndr_print_struct(ndr, name, "spoolss_NotifyOption");
17027 ndr->depth++;
17028 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
17029 ndr_print_spoolssNotifyOptionFlags(ndr, "flags", r->flags);
17030 ndr_print_uint32(ndr, "count", r->count);
17031 ndr_print_ptr(ndr, "types", r->types);
17032 ndr->depth++;
17033 if (r->types) {
17034 ndr->print(ndr, "%s: ARRAY(%d)", "types", (int)r->count);
17035 ndr->depth++;
17036 for (cntr_types_1=0;cntr_types_1<r->count;cntr_types_1++) {
17037 char *idx_1=NULL;
17038 if (asprintf(&idx_1, "[%d]", cntr_types_1) != -1) {
17039 ndr_print_spoolss_NotifyOptionType(ndr, "types", &r->types[cntr_types_1]);
17040 free(idx_1);
17043 ndr->depth--;
17045 ndr->depth--;
17046 ndr->depth--;
17049 static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyString *r)
17051 if (ndr_flags & NDR_SCALARS) {
17052 NDR_CHECK(ndr_push_align(ndr, 4));
17053 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
17054 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
17056 if (ndr_flags & NDR_BUFFERS) {
17057 if (r->string) {
17058 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
17059 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
17062 return NDR_ERR_SUCCESS;
17065 static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyString *r)
17067 uint32_t _ptr_string;
17068 TALLOC_CTX *_mem_save_string_0;
17069 if (ndr_flags & NDR_SCALARS) {
17070 NDR_CHECK(ndr_pull_align(ndr, 4));
17071 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
17072 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
17073 if (_ptr_string) {
17074 NDR_PULL_ALLOC(ndr, r->string);
17075 } else {
17076 r->string = NULL;
17079 if (ndr_flags & NDR_BUFFERS) {
17080 if (r->string) {
17081 _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
17082 NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
17083 NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
17084 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_size(ndr, &r->string), sizeof(uint16_t), CH_UTF16));
17085 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
17087 if (r->string) {
17088 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size / 2));
17091 return NDR_ERR_SUCCESS;
17094 _PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
17096 ndr_print_struct(ndr, name, "spoolss_NotifyString");
17097 ndr->depth++;
17098 ndr_print_uint32(ndr, "size", r->size);
17099 ndr_print_ptr(ndr, "string", r->string);
17100 ndr->depth++;
17101 if (r->string) {
17102 ndr_print_string(ndr, "string", r->string);
17104 ndr->depth--;
17105 ndr->depth--;
17108 static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyTable r)
17110 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17111 return NDR_ERR_SUCCESS;
17114 static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyTable *r)
17116 uint32_t v;
17117 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17118 *r = v;
17119 return NDR_ERR_SUCCESS;
17122 _PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
17124 const char *val = NULL;
17126 switch (r) {
17127 case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
17128 case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
17129 case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
17130 case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
17131 case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
17133 ndr_print_enum(ndr, name, "ENUM", val, r);
17136 static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int ndr_flags, const union spoolss_NotifyData *r)
17138 if (ndr_flags & NDR_SCALARS) {
17139 int level = ndr_push_get_switch_value(ndr, r);
17140 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
17141 switch (level) {
17142 case 1: {
17143 uint32_t cntr_integer_0;
17144 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
17145 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
17147 break; }
17149 case 2: {
17150 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
17151 break; }
17153 case 3: {
17154 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
17155 break; }
17157 case 4: {
17158 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
17159 break; }
17161 case 5: {
17162 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
17163 break; }
17165 default:
17166 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17169 if (ndr_flags & NDR_BUFFERS) {
17170 int level = ndr_push_get_switch_value(ndr, r);
17171 switch (level) {
17172 case 1:
17173 break;
17175 case 2:
17176 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
17177 break;
17179 case 3:
17180 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
17181 break;
17183 case 4:
17184 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
17185 break;
17187 case 5:
17188 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
17189 break;
17191 default:
17192 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17195 return NDR_ERR_SUCCESS;
17198 static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int ndr_flags, union spoolss_NotifyData *r)
17200 int level;
17201 uint32_t _level;
17202 level = ndr_pull_get_switch_value(ndr, r);
17203 if (ndr_flags & NDR_SCALARS) {
17204 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
17205 if (_level != level) {
17206 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
17208 switch (level) {
17209 case 1: {
17210 uint32_t cntr_integer_0;
17211 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
17212 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
17214 break; }
17216 case 2: {
17217 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
17218 break; }
17220 case 3: {
17221 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
17222 break; }
17224 case 4: {
17225 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
17226 break; }
17228 case 5: {
17229 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
17230 break; }
17232 default:
17233 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17236 if (ndr_flags & NDR_BUFFERS) {
17237 switch (level) {
17238 case 1:
17239 break;
17241 case 2:
17242 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
17243 break;
17245 case 3:
17246 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
17247 break;
17249 case 4:
17250 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
17251 break;
17253 case 5:
17254 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
17255 break;
17257 default:
17258 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17261 return NDR_ERR_SUCCESS;
17264 _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
17266 int level;
17267 uint32_t cntr_integer_0;
17268 level = ndr_print_get_switch_value(ndr, r);
17269 ndr_print_union(ndr, name, level, "spoolss_NotifyData");
17270 switch (level) {
17271 case 1:
17272 ndr->print(ndr, "%s: ARRAY(%d)", "integer", (int)2);
17273 ndr->depth++;
17274 for (cntr_integer_0=0;cntr_integer_0<2;cntr_integer_0++) {
17275 char *idx_0=NULL;
17276 if (asprintf(&idx_0, "[%d]", cntr_integer_0) != -1) {
17277 ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
17278 free(idx_0);
17281 ndr->depth--;
17282 break;
17284 case 2:
17285 ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
17286 break;
17288 case 3:
17289 ndr_print_spoolss_DevmodeContainer(ndr, "devmode", &r->devmode);
17290 break;
17292 case 4:
17293 ndr_print_spoolss_TimeCtr(ndr, "time", &r->time);
17294 break;
17296 case 5:
17297 ndr_print_sec_desc_buf(ndr, "sd", &r->sd);
17298 break;
17300 default:
17301 ndr_print_bad_level(ndr, name, level);
17305 static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Notify *r)
17307 if (ndr_flags & NDR_SCALARS) {
17308 NDR_CHECK(ndr_push_align(ndr, 4));
17309 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
17310 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, r->field));
17311 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr, NDR_SCALARS, r->variable_type));
17312 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
17313 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
17314 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
17316 if (ndr_flags & NDR_BUFFERS) {
17317 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
17319 return NDR_ERR_SUCCESS;
17322 static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Notify *r)
17324 if (ndr_flags & NDR_SCALARS) {
17325 NDR_CHECK(ndr_pull_align(ndr, 4));
17326 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
17327 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
17328 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr, NDR_SCALARS, &r->variable_type));
17329 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
17330 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
17331 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
17333 if (ndr_flags & NDR_BUFFERS) {
17334 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
17336 return NDR_ERR_SUCCESS;
17339 _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
17341 ndr_print_struct(ndr, name, "spoolss_Notify");
17342 ndr->depth++;
17343 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
17344 ndr_print_spoolss_Field(ndr, "field", r->field);
17345 ndr_print_spoolss_NotifyTable(ndr, "variable_type", r->variable_type);
17346 ndr_print_uint32(ndr, "job_id", r->job_id);
17347 ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
17348 ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
17349 ndr->depth--;
17352 static enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyInfo *r)
17354 uint32_t cntr_notifies_0;
17355 if (ndr_flags & NDR_SCALARS) {
17356 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17357 NDR_CHECK(ndr_push_align(ndr, 4));
17358 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
17359 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
17360 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17361 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
17362 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
17365 if (ndr_flags & NDR_BUFFERS) {
17366 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
17367 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
17370 return NDR_ERR_SUCCESS;
17373 static enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyInfo *r)
17375 uint32_t cntr_notifies_0;
17376 TALLOC_CTX *_mem_save_notifies_0;
17377 if (ndr_flags & NDR_SCALARS) {
17378 NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
17379 NDR_CHECK(ndr_pull_align(ndr, 4));
17380 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
17381 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
17382 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
17383 NDR_PULL_ALLOC_N(ndr, r->notifies, ndr_get_array_size(ndr, &r->notifies));
17384 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
17385 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
17386 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
17387 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
17389 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
17390 if (r->notifies) {
17391 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
17394 if (ndr_flags & NDR_BUFFERS) {
17395 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
17396 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
17397 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
17398 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
17400 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
17402 return NDR_ERR_SUCCESS;
17405 _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
17407 uint32_t cntr_notifies_0;
17408 ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
17409 ndr->depth++;
17410 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
17411 ndr_print_uint32(ndr, "flags", r->flags);
17412 ndr_print_uint32(ndr, "count", r->count);
17413 ndr->print(ndr, "%s: ARRAY(%d)", "notifies", (int)r->count);
17414 ndr->depth++;
17415 for (cntr_notifies_0=0;cntr_notifies_0<r->count;cntr_notifies_0++) {
17416 char *idx_0=NULL;
17417 if (asprintf(&idx_0, "[%d]", cntr_notifies_0) != -1) {
17418 ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
17419 free(idx_0);
17422 ndr->depth--;
17423 ndr->depth--;
17426 static enum ndr_err_code ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_ReplyPrinterInfo *r)
17428 if (ndr_flags & NDR_SCALARS) {
17429 int level = ndr_push_get_switch_value(ndr, r);
17430 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
17431 switch (level) {
17432 case 0: {
17433 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
17434 break; }
17436 default:
17437 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17440 if (ndr_flags & NDR_BUFFERS) {
17441 int level = ndr_push_get_switch_value(ndr, r);
17442 switch (level) {
17443 case 0:
17444 if (r->info0) {
17445 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
17447 break;
17449 default:
17450 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17453 return NDR_ERR_SUCCESS;
17456 static enum ndr_err_code ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_ReplyPrinterInfo *r)
17458 int level;
17459 uint32_t _level;
17460 TALLOC_CTX *_mem_save_info0_0;
17461 level = ndr_pull_get_switch_value(ndr, r);
17462 if (ndr_flags & NDR_SCALARS) {
17463 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
17464 if (_level != level) {
17465 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
17467 switch (level) {
17468 case 0: {
17469 uint32_t _ptr_info0;
17470 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
17471 if (_ptr_info0) {
17472 NDR_PULL_ALLOC(ndr, r->info0);
17473 } else {
17474 r->info0 = NULL;
17476 break; }
17478 default:
17479 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17482 if (ndr_flags & NDR_BUFFERS) {
17483 switch (level) {
17484 case 0:
17485 if (r->info0) {
17486 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
17487 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
17488 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
17489 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
17491 break;
17493 default:
17494 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17497 return NDR_ERR_SUCCESS;
17500 _PUBLIC_ void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_ReplyPrinterInfo *r)
17502 int level;
17503 level = ndr_print_get_switch_value(ndr, r);
17504 ndr_print_union(ndr, name, level, "spoolss_ReplyPrinterInfo");
17505 switch (level) {
17506 case 0:
17507 ndr_print_ptr(ndr, "info0", r->info0);
17508 ndr->depth++;
17509 if (r->info0) {
17510 ndr_print_spoolss_NotifyInfo(ndr, "info0", r->info0);
17512 ndr->depth--;
17513 break;
17515 default:
17516 ndr_print_bad_level(ndr, name, level);
17520 static enum ndr_err_code ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
17522 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17523 return NDR_ERR_SUCCESS;
17526 static enum ndr_err_code ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17528 uint32_t v;
17529 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17530 *r = v;
17531 return NDR_ERR_SUCCESS;
17534 _PUBLIC_ void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print *ndr, const char *name, uint32_t r)
17536 ndr_print_uint32(ndr, name, r);
17537 ndr->depth++;
17538 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED, r);
17539 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED, r);
17540 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH, r);
17541 ndr->depth--;
17544 static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel1 *r)
17546 if (ndr_flags & NDR_SCALARS) {
17547 NDR_CHECK(ndr_push_align(ndr, 4));
17548 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
17549 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
17550 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
17551 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
17552 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
17553 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
17554 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
17556 if (ndr_flags & NDR_BUFFERS) {
17557 if (r->client) {
17558 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
17559 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17560 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
17561 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17563 if (r->user) {
17564 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
17565 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17566 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
17567 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17570 return NDR_ERR_SUCCESS;
17573 static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel1 *r)
17575 uint32_t _ptr_client;
17576 TALLOC_CTX *_mem_save_client_0;
17577 uint32_t _ptr_user;
17578 TALLOC_CTX *_mem_save_user_0;
17579 if (ndr_flags & NDR_SCALARS) {
17580 NDR_CHECK(ndr_pull_align(ndr, 4));
17581 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
17582 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
17583 if (_ptr_client) {
17584 NDR_PULL_ALLOC(ndr, r->client);
17585 } else {
17586 r->client = NULL;
17588 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
17589 if (_ptr_user) {
17590 NDR_PULL_ALLOC(ndr, r->user);
17591 } else {
17592 r->user = NULL;
17594 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
17595 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
17596 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
17597 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
17599 if (ndr_flags & NDR_BUFFERS) {
17600 if (r->client) {
17601 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
17602 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
17603 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
17604 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
17605 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
17606 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));
17608 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
17609 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
17610 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
17612 if (r->user) {
17613 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
17614 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
17615 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
17616 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
17617 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
17618 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));
17620 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
17621 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
17622 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
17625 return NDR_ERR_SUCCESS;
17628 _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
17630 ndr_print_struct(ndr, name, "spoolss_UserLevel1");
17631 ndr->depth++;
17632 ndr_print_uint32(ndr, "size", r->size);
17633 ndr_print_ptr(ndr, "client", r->client);
17634 ndr->depth++;
17635 if (r->client) {
17636 ndr_print_string(ndr, "client", r->client);
17638 ndr->depth--;
17639 ndr_print_ptr(ndr, "user", r->user);
17640 ndr->depth++;
17641 if (r->user) {
17642 ndr_print_string(ndr, "user", r->user);
17644 ndr->depth--;
17645 ndr_print_uint32(ndr, "build", r->build);
17646 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
17647 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
17648 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
17649 ndr->depth--;
17652 static enum ndr_err_code ndr_push_spoolss_UserLevel2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel2 *r)
17654 if (ndr_flags & NDR_SCALARS) {
17655 NDR_CHECK(ndr_push_align(ndr, 4));
17656 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->not_used));
17658 if (ndr_flags & NDR_BUFFERS) {
17660 return NDR_ERR_SUCCESS;
17663 static enum ndr_err_code ndr_pull_spoolss_UserLevel2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel2 *r)
17665 if (ndr_flags & NDR_SCALARS) {
17666 NDR_CHECK(ndr_pull_align(ndr, 4));
17667 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->not_used));
17669 if (ndr_flags & NDR_BUFFERS) {
17671 return NDR_ERR_SUCCESS;
17674 _PUBLIC_ void ndr_print_spoolss_UserLevel2(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel2 *r)
17676 ndr_print_struct(ndr, name, "spoolss_UserLevel2");
17677 ndr->depth++;
17678 ndr_print_uint32(ndr, "not_used", r->not_used);
17679 ndr->depth--;
17682 static enum ndr_err_code ndr_push_spoolss_UserLevel3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel3 *r)
17684 if (ndr_flags & NDR_SCALARS) {
17685 NDR_CHECK(ndr_push_align(ndr, 4));
17686 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
17687 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
17688 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size2));
17689 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
17690 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
17691 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
17692 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
17693 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
17694 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
17695 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reserved));
17697 if (ndr_flags & NDR_BUFFERS) {
17698 if (r->client) {
17699 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
17700 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17701 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
17702 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17704 if (r->user) {
17705 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
17706 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17707 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
17708 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17711 return NDR_ERR_SUCCESS;
17714 static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel3 *r)
17716 uint32_t _ptr_client;
17717 TALLOC_CTX *_mem_save_client_0;
17718 uint32_t _ptr_user;
17719 TALLOC_CTX *_mem_save_user_0;
17720 if (ndr_flags & NDR_SCALARS) {
17721 NDR_CHECK(ndr_pull_align(ndr, 4));
17722 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
17723 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
17724 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size2));
17725 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
17726 if (_ptr_client) {
17727 NDR_PULL_ALLOC(ndr, r->client);
17728 } else {
17729 r->client = NULL;
17731 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
17732 if (_ptr_user) {
17733 NDR_PULL_ALLOC(ndr, r->user);
17734 } else {
17735 r->user = NULL;
17737 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
17738 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
17739 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
17740 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
17741 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reserved));
17743 if (ndr_flags & NDR_BUFFERS) {
17744 if (r->client) {
17745 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
17746 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
17747 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
17748 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
17749 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
17750 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));
17752 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
17753 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
17754 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
17756 if (r->user) {
17757 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
17758 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
17759 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
17760 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
17761 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
17762 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));
17764 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
17765 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
17766 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
17769 return NDR_ERR_SUCCESS;
17772 _PUBLIC_ void ndr_print_spoolss_UserLevel3(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel3 *r)
17774 ndr_print_struct(ndr, name, "spoolss_UserLevel3");
17775 ndr->depth++;
17776 ndr_print_uint32(ndr, "size", r->size);
17777 ndr_print_uint32(ndr, "flags", r->flags);
17778 ndr_print_uint32(ndr, "size2", r->size2);
17779 ndr_print_ptr(ndr, "client", r->client);
17780 ndr->depth++;
17781 if (r->client) {
17782 ndr_print_string(ndr, "client", r->client);
17784 ndr->depth--;
17785 ndr_print_ptr(ndr, "user", r->user);
17786 ndr->depth++;
17787 if (r->user) {
17788 ndr_print_string(ndr, "user", r->user);
17790 ndr->depth--;
17791 ndr_print_uint32(ndr, "build", r->build);
17792 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
17793 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
17794 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
17795 ndr_print_udlong(ndr, "reserved", r->reserved);
17796 ndr->depth--;
17799 static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, int ndr_flags, const union spoolss_UserLevel *r)
17801 if (ndr_flags & NDR_SCALARS) {
17802 int level = ndr_push_get_switch_value(ndr, r);
17803 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
17804 switch (level) {
17805 case 1: {
17806 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
17807 break; }
17809 case 2: {
17810 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level2));
17811 break; }
17813 case 3: {
17814 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level3));
17815 break; }
17817 default:
17818 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17821 if (ndr_flags & NDR_BUFFERS) {
17822 int level = ndr_push_get_switch_value(ndr, r);
17823 switch (level) {
17824 case 1:
17825 if (r->level1) {
17826 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
17828 break;
17830 case 2:
17831 if (r->level2) {
17832 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
17834 break;
17836 case 3:
17837 if (r->level3) {
17838 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
17840 break;
17842 default:
17843 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17846 return NDR_ERR_SUCCESS;
17849 static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, int ndr_flags, union spoolss_UserLevel *r)
17851 int level;
17852 uint32_t _level;
17853 TALLOC_CTX *_mem_save_level1_0;
17854 TALLOC_CTX *_mem_save_level2_0;
17855 TALLOC_CTX *_mem_save_level3_0;
17856 level = ndr_pull_get_switch_value(ndr, r);
17857 if (ndr_flags & NDR_SCALARS) {
17858 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
17859 if (_level != level) {
17860 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
17862 switch (level) {
17863 case 1: {
17864 uint32_t _ptr_level1;
17865 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
17866 if (_ptr_level1) {
17867 NDR_PULL_ALLOC(ndr, r->level1);
17868 } else {
17869 r->level1 = NULL;
17871 break; }
17873 case 2: {
17874 uint32_t _ptr_level2;
17875 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
17876 if (_ptr_level2) {
17877 NDR_PULL_ALLOC(ndr, r->level2);
17878 } else {
17879 r->level2 = NULL;
17881 break; }
17883 case 3: {
17884 uint32_t _ptr_level3;
17885 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
17886 if (_ptr_level3) {
17887 NDR_PULL_ALLOC(ndr, r->level3);
17888 } else {
17889 r->level3 = NULL;
17891 break; }
17893 default:
17894 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17897 if (ndr_flags & NDR_BUFFERS) {
17898 switch (level) {
17899 case 1:
17900 if (r->level1) {
17901 _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
17902 NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
17903 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
17904 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
17906 break;
17908 case 2:
17909 if (r->level2) {
17910 _mem_save_level2_0 = NDR_PULL_GET_MEM_CTX(ndr);
17911 NDR_PULL_SET_MEM_CTX(ndr, r->level2, 0);
17912 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
17913 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level2_0, 0);
17915 break;
17917 case 3:
17918 if (r->level3) {
17919 _mem_save_level3_0 = NDR_PULL_GET_MEM_CTX(ndr);
17920 NDR_PULL_SET_MEM_CTX(ndr, r->level3, 0);
17921 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
17922 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level3_0, 0);
17924 break;
17926 default:
17927 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17930 return NDR_ERR_SUCCESS;
17933 _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
17935 int level;
17936 level = ndr_print_get_switch_value(ndr, r);
17937 ndr_print_union(ndr, name, level, "spoolss_UserLevel");
17938 switch (level) {
17939 case 1:
17940 ndr_print_ptr(ndr, "level1", r->level1);
17941 ndr->depth++;
17942 if (r->level1) {
17943 ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
17945 ndr->depth--;
17946 break;
17948 case 2:
17949 ndr_print_ptr(ndr, "level2", r->level2);
17950 ndr->depth++;
17951 if (r->level2) {
17952 ndr_print_spoolss_UserLevel2(ndr, "level2", r->level2);
17954 ndr->depth--;
17955 break;
17957 case 3:
17958 ndr_print_ptr(ndr, "level3", r->level3);
17959 ndr->depth++;
17960 if (r->level3) {
17961 ndr_print_spoolss_UserLevel3(ndr, "level3", r->level3);
17963 ndr->depth--;
17964 break;
17966 default:
17967 ndr_print_bad_level(ndr, name, level);
17971 static enum ndr_err_code ndr_push_spoolss_UserLevelCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevelCtr *r)
17973 if (ndr_flags & NDR_SCALARS) {
17974 NDR_CHECK(ndr_push_align(ndr, 4));
17975 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
17976 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
17977 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
17979 if (ndr_flags & NDR_BUFFERS) {
17980 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
17982 return NDR_ERR_SUCCESS;
17985 static enum ndr_err_code ndr_pull_spoolss_UserLevelCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevelCtr *r)
17987 if (ndr_flags & NDR_SCALARS) {
17988 NDR_CHECK(ndr_pull_align(ndr, 4));
17989 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
17990 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
17991 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
17993 if (ndr_flags & NDR_BUFFERS) {
17994 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
17996 return NDR_ERR_SUCCESS;
17999 _PUBLIC_ void ndr_print_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevelCtr *r)
18001 ndr_print_struct(ndr, name, "spoolss_UserLevelCtr");
18002 ndr->depth++;
18003 ndr_print_uint32(ndr, "level", r->level);
18004 ndr_print_set_switch_value(ndr, &r->user_info, r->level);
18005 ndr_print_spoolss_UserLevel(ndr, "user_info", &r->user_info);
18006 ndr->depth--;
18009 static enum ndr_err_code ndr_push_spoolss_AccessRights(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18011 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18012 return NDR_ERR_SUCCESS;
18015 static enum ndr_err_code ndr_pull_spoolss_AccessRights(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18017 uint32_t v;
18018 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18019 *r = v;
18020 return NDR_ERR_SUCCESS;
18023 _PUBLIC_ void ndr_print_spoolss_AccessRights(struct ndr_print *ndr, const char *name, uint32_t r)
18025 ndr_print_uint32(ndr, name, r);
18026 ndr->depth++;
18027 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER, r);
18028 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE, r);
18029 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER, r);
18030 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE, r);
18031 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER, r);
18032 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ, r);
18033 ndr->depth--;
18036 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18038 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18039 return NDR_ERR_SUCCESS;
18042 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18044 uint32_t v;
18045 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18046 *r = v;
18047 return NDR_ERR_SUCCESS;
18050 _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18052 ndr_print_uint32(ndr, name, r);
18053 ndr->depth++;
18054 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
18055 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
18056 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
18057 ndr->depth--;
18060 static enum ndr_err_code ndr_push_spoolss_PortProtocol(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortProtocol r)
18062 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18063 return NDR_ERR_SUCCESS;
18066 static enum ndr_err_code ndr_pull_spoolss_PortProtocol(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortProtocol *r)
18068 uint32_t v;
18069 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18070 *r = v;
18071 return NDR_ERR_SUCCESS;
18074 _PUBLIC_ void ndr_print_spoolss_PortProtocol(struct ndr_print *ndr, const char *name, enum spoolss_PortProtocol r)
18076 const char *val = NULL;
18078 switch (r) {
18079 case PROTOCOL_RAWTCP_TYPE: val = "PROTOCOL_RAWTCP_TYPE"; break;
18080 case PROTOCOL_LPR_TYPE: val = "PROTOCOL_LPR_TYPE"; break;
18082 ndr_print_enum(ndr, name, "ENUM", val, r);
18085 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData1 *r)
18087 if (ndr_flags & NDR_SCALARS) {
18088 NDR_CHECK(ndr_push_align(ndr, 4));
18089 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
18090 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
18091 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
18092 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
18093 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
18094 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
18095 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
18096 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
18097 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
18098 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
18099 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
18100 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
18101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
18102 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
18103 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
18105 if (ndr_flags & NDR_BUFFERS) {
18107 return NDR_ERR_SUCCESS;
18110 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData1 *r)
18112 if (ndr_flags & NDR_SCALARS) {
18113 NDR_CHECK(ndr_pull_align(ndr, 4));
18114 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
18115 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18116 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
18117 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18118 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
18119 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
18120 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
18121 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
18122 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
18123 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
18124 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
18125 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
18126 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
18127 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
18128 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
18130 if (ndr_flags & NDR_BUFFERS) {
18132 return NDR_ERR_SUCCESS;
18135 _PUBLIC_ void ndr_print_spoolss_PortData1(struct ndr_print *ndr, const char *name, const struct spoolss_PortData1 *r)
18137 ndr_print_struct(ndr, name, "spoolss_PortData1");
18138 ndr->depth++;
18139 ndr_print_string(ndr, "portname", r->portname);
18140 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000001:r->version);
18141 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
18142 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
18143 ndr_print_uint32(ndr, "reserved", r->reserved);
18144 ndr_print_string(ndr, "hostaddress", r->hostaddress);
18145 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
18146 ndr_print_uint32(ndr, "dblspool", r->dblspool);
18147 ndr_print_string(ndr, "queue", r->queue);
18148 ndr_print_string(ndr, "ip_address", r->ip_address);
18149 ndr_print_string(ndr, "hardware_address", r->hardware_address);
18150 ndr_print_string(ndr, "device_type", r->device_type);
18151 ndr_print_uint32(ndr, "port_number", r->port_number);
18152 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
18153 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
18154 ndr->depth--;
18157 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData2 *r)
18159 if (ndr_flags & NDR_SCALARS) {
18160 NDR_CHECK(ndr_push_align(ndr, 4));
18161 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
18162 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000002));
18163 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
18164 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
18165 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
18166 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
18167 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
18168 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
18169 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
18170 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
18171 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
18172 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
18173 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
18174 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_monitor_mib_index));
18176 if (ndr_flags & NDR_BUFFERS) {
18178 return NDR_ERR_SUCCESS;
18181 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData2 *r)
18183 if (ndr_flags & NDR_SCALARS) {
18184 NDR_CHECK(ndr_pull_align(ndr, 4));
18185 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
18186 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18187 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
18188 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18189 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
18190 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
18191 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
18192 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
18193 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
18194 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
18195 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
18196 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
18197 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
18198 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_monitor_mib_index));
18200 if (ndr_flags & NDR_BUFFERS) {
18202 return NDR_ERR_SUCCESS;
18205 _PUBLIC_ void ndr_print_spoolss_PortData2(struct ndr_print *ndr, const char *name, const struct spoolss_PortData2 *r)
18207 ndr_print_struct(ndr, name, "spoolss_PortData2");
18208 ndr->depth++;
18209 ndr_print_string(ndr, "portname", r->portname);
18210 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000002:r->version);
18211 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
18212 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
18213 ndr_print_uint32(ndr, "reserved", r->reserved);
18214 ndr_print_string(ndr, "hostaddress", r->hostaddress);
18215 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
18216 ndr_print_uint32(ndr, "dblspool", r->dblspool);
18217 ndr_print_string(ndr, "queue", r->queue);
18218 ndr_print_string(ndr, "device_type", r->device_type);
18219 ndr_print_uint32(ndr, "port_number", r->port_number);
18220 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
18221 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
18222 ndr_print_uint32(ndr, "port_monitor_mib_index", r->port_monitor_mib_index);
18223 ndr->depth--;
18226 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorUi(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorUi *r)
18228 if (ndr_flags & NDR_SCALARS) {
18229 NDR_CHECK(ndr_push_align(ndr, 4));
18231 uint32_t _flags_save_string = ndr->flags;
18232 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18233 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
18234 ndr->flags = _flags_save_string;
18237 if (ndr_flags & NDR_BUFFERS) {
18239 return NDR_ERR_SUCCESS;
18242 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorUi(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorUi *r)
18244 if (ndr_flags & NDR_SCALARS) {
18245 NDR_CHECK(ndr_pull_align(ndr, 4));
18247 uint32_t _flags_save_string = ndr->flags;
18248 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18249 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
18250 ndr->flags = _flags_save_string;
18253 if (ndr_flags & NDR_BUFFERS) {
18255 return NDR_ERR_SUCCESS;
18258 _PUBLIC_ void ndr_print_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorUi *r)
18260 ndr_print_struct(ndr, name, "spoolss_MonitorUi");
18261 ndr->depth++;
18262 ndr_print_string(ndr, "dll_name", r->dll_name);
18263 ndr->depth--;
18266 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18268 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18269 return NDR_ERR_SUCCESS;
18272 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18274 uint32_t v;
18275 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18276 *r = v;
18277 return NDR_ERR_SUCCESS;
18280 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18282 ndr_print_uint32(ndr, name, r);
18283 ndr->depth++;
18284 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
18285 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
18286 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
18287 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
18288 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
18289 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
18290 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
18291 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
18292 ndr->depth--;
18295 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r)
18297 if (flags & NDR_IN) {
18298 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
18299 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
18300 if (r->in.server) {
18301 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
18302 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18303 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
18304 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18306 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18307 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18308 if (r->in.buffer) {
18309 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18311 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18313 if (flags & NDR_OUT) {
18314 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18315 if (r->out.info) {
18316 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
18318 if (r->out.needed == NULL) {
18319 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18321 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18322 if (r->out.count == NULL) {
18323 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18325 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
18326 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18328 return NDR_ERR_SUCCESS;
18331 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinters *r)
18333 uint32_t _ptr_server;
18334 uint32_t _ptr_buffer;
18335 uint32_t _ptr_info;
18336 TALLOC_CTX *_mem_save_server_0;
18337 TALLOC_CTX *_mem_save_buffer_0;
18338 TALLOC_CTX *_mem_save_info_0;
18339 TALLOC_CTX *_mem_save_needed_0;
18340 TALLOC_CTX *_mem_save_count_0;
18341 if (flags & NDR_IN) {
18342 ZERO_STRUCT(r->out);
18344 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
18345 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
18346 if (_ptr_server) {
18347 NDR_PULL_ALLOC(ndr, r->in.server);
18348 } else {
18349 r->in.server = NULL;
18351 if (r->in.server) {
18352 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
18353 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
18354 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
18355 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
18356 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
18357 return 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));
18359 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
18360 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
18361 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
18363 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18364 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18365 if (_ptr_buffer) {
18366 NDR_PULL_ALLOC(ndr, r->in.buffer);
18367 } else {
18368 r->in.buffer = NULL;
18370 if (r->in.buffer) {
18371 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18372 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18373 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18374 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18376 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18377 NDR_PULL_ALLOC(ndr, r->out.needed);
18378 ZERO_STRUCTP(r->out.needed);
18379 NDR_PULL_ALLOC(ndr, r->out.count);
18380 ZERO_STRUCTP(r->out.count);
18382 if (flags & NDR_OUT) {
18383 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18384 if (_ptr_info) {
18385 NDR_PULL_ALLOC(ndr, r->out.info);
18386 } else {
18387 r->out.info = NULL;
18389 if (r->out.info) {
18390 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18391 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18392 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
18393 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18395 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18396 NDR_PULL_ALLOC(ndr, r->out.needed);
18398 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18399 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18400 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18401 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18402 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18403 NDR_PULL_ALLOC(ndr, r->out.count);
18405 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
18406 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
18407 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
18408 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
18409 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18411 return NDR_ERR_SUCCESS;
18414 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinters *r)
18416 uint32_t cntr_info_0;
18417 if (flags & NDR_IN) {
18418 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18419 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
18421 if (flags & NDR_OUT) {
18422 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18423 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18424 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18426 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18427 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18430 return NDR_ERR_SUCCESS;
18433 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinters *r)
18435 uint32_t cntr_info_0;
18436 TALLOC_CTX *_mem_save_info_0;
18437 if (flags & NDR_IN) {
18438 ZERO_STRUCT(r->out);
18440 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18441 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
18443 if (flags & NDR_OUT) {
18444 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
18445 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18446 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18447 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18448 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18449 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18451 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18452 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18454 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18456 return NDR_ERR_SUCCESS;
18459 _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinters *r)
18461 uint32_t cntr_info_1;
18462 ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
18463 ndr->depth++;
18464 if (flags & NDR_SET_VALUES) {
18465 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18467 if (flags & NDR_IN) {
18468 ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
18469 ndr->depth++;
18470 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
18471 ndr_print_ptr(ndr, "server", r->in.server);
18472 ndr->depth++;
18473 if (r->in.server) {
18474 ndr_print_string(ndr, "server", r->in.server);
18476 ndr->depth--;
18477 ndr_print_uint32(ndr, "level", r->in.level);
18478 ndr_print_ptr(ndr, "buffer", r->in.buffer);
18479 ndr->depth++;
18480 if (r->in.buffer) {
18481 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
18483 ndr->depth--;
18484 ndr_print_uint32(ndr, "offered", r->in.offered);
18485 ndr->depth--;
18487 if (flags & NDR_OUT) {
18488 ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
18489 ndr->depth++;
18490 ndr_print_ptr(ndr, "count", r->out.count);
18491 ndr->depth++;
18492 ndr_print_uint32(ndr, "count", *r->out.count);
18493 ndr->depth--;
18494 ndr_print_ptr(ndr, "info", r->out.info);
18495 ndr->depth++;
18496 if (r->out.info) {
18497 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
18498 ndr->depth++;
18499 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
18500 char *idx_1=NULL;
18501 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
18502 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
18503 ndr_print_spoolss_PrinterInfo(ndr, "info", &r->out.info[cntr_info_1]);
18504 free(idx_1);
18507 ndr->depth--;
18509 ndr->depth--;
18510 ndr_print_ptr(ndr, "needed", r->out.needed);
18511 ndr->depth++;
18512 ndr_print_uint32(ndr, "needed", *r->out.needed);
18513 ndr->depth--;
18514 ndr_print_WERROR(ndr, "result", r->out.result);
18515 ndr->depth--;
18517 ndr->depth--;
18520 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinter *r)
18522 if (flags & NDR_IN) {
18523 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
18524 if (r->in.printername) {
18525 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
18526 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18527 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
18528 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18530 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
18531 if (r->in.datatype) {
18532 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
18533 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18534 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
18535 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18537 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
18538 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
18540 if (flags & NDR_OUT) {
18541 if (r->out.handle == NULL) {
18542 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18544 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
18545 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18547 return NDR_ERR_SUCCESS;
18550 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinter *r)
18552 uint32_t _ptr_printername;
18553 uint32_t _ptr_datatype;
18554 TALLOC_CTX *_mem_save_printername_0;
18555 TALLOC_CTX *_mem_save_datatype_0;
18556 TALLOC_CTX *_mem_save_handle_0;
18557 if (flags & NDR_IN) {
18558 ZERO_STRUCT(r->out);
18560 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
18561 if (_ptr_printername) {
18562 NDR_PULL_ALLOC(ndr, r->in.printername);
18563 } else {
18564 r->in.printername = NULL;
18566 if (r->in.printername) {
18567 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
18568 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
18569 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
18570 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
18571 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
18572 return 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));
18574 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
18575 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
18576 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
18578 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
18579 if (_ptr_datatype) {
18580 NDR_PULL_ALLOC(ndr, r->in.datatype);
18581 } else {
18582 r->in.datatype = NULL;
18584 if (r->in.datatype) {
18585 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
18586 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
18587 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
18588 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
18589 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
18590 return 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));
18592 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
18593 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
18594 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
18596 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
18597 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
18598 NDR_PULL_ALLOC(ndr, r->out.handle);
18599 ZERO_STRUCTP(r->out.handle);
18601 if (flags & NDR_OUT) {
18602 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18603 NDR_PULL_ALLOC(ndr, r->out.handle);
18605 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18606 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
18607 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
18608 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18609 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18611 return NDR_ERR_SUCCESS;
18614 _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinter *r)
18616 ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
18617 ndr->depth++;
18618 if (flags & NDR_SET_VALUES) {
18619 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18621 if (flags & NDR_IN) {
18622 ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
18623 ndr->depth++;
18624 ndr_print_ptr(ndr, "printername", r->in.printername);
18625 ndr->depth++;
18626 if (r->in.printername) {
18627 ndr_print_string(ndr, "printername", r->in.printername);
18629 ndr->depth--;
18630 ndr_print_ptr(ndr, "datatype", r->in.datatype);
18631 ndr->depth++;
18632 if (r->in.datatype) {
18633 ndr_print_string(ndr, "datatype", r->in.datatype);
18635 ndr->depth--;
18636 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
18637 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
18638 ndr->depth--;
18640 if (flags & NDR_OUT) {
18641 ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
18642 ndr->depth++;
18643 ndr_print_ptr(ndr, "handle", r->out.handle);
18644 ndr->depth++;
18645 ndr_print_policy_handle(ndr, "handle", r->out.handle);
18646 ndr->depth--;
18647 ndr_print_WERROR(ndr, "result", r->out.result);
18648 ndr->depth--;
18650 ndr->depth--;
18653 static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, int flags, const struct spoolss_SetJob *r)
18655 if (flags & NDR_IN) {
18656 if (r->in.handle == NULL) {
18657 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18659 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18660 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
18661 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
18662 if (r->in.ctr) {
18663 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
18665 NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
18667 if (flags & NDR_OUT) {
18668 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18670 return NDR_ERR_SUCCESS;
18673 static enum ndr_err_code ndr_pull_spoolss_SetJob(struct ndr_pull *ndr, int flags, struct spoolss_SetJob *r)
18675 uint32_t _ptr_ctr;
18676 TALLOC_CTX *_mem_save_handle_0;
18677 TALLOC_CTX *_mem_save_ctr_0;
18678 if (flags & NDR_IN) {
18679 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18680 NDR_PULL_ALLOC(ndr, r->in.handle);
18682 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18683 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18684 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18685 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18686 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
18687 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
18688 if (_ptr_ctr) {
18689 NDR_PULL_ALLOC(ndr, r->in.ctr);
18690 } else {
18691 r->in.ctr = NULL;
18693 if (r->in.ctr) {
18694 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
18695 NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
18696 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
18697 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
18699 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
18701 if (flags & NDR_OUT) {
18702 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18704 return NDR_ERR_SUCCESS;
18707 _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetJob *r)
18709 ndr_print_struct(ndr, name, "spoolss_SetJob");
18710 ndr->depth++;
18711 if (flags & NDR_SET_VALUES) {
18712 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18714 if (flags & NDR_IN) {
18715 ndr_print_struct(ndr, "in", "spoolss_SetJob");
18716 ndr->depth++;
18717 ndr_print_ptr(ndr, "handle", r->in.handle);
18718 ndr->depth++;
18719 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18720 ndr->depth--;
18721 ndr_print_uint32(ndr, "job_id", r->in.job_id);
18722 ndr_print_ptr(ndr, "ctr", r->in.ctr);
18723 ndr->depth++;
18724 if (r->in.ctr) {
18725 ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
18727 ndr->depth--;
18728 ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
18729 ndr->depth--;
18731 if (flags & NDR_OUT) {
18732 ndr_print_struct(ndr, "out", "spoolss_SetJob");
18733 ndr->depth++;
18734 ndr_print_WERROR(ndr, "result", r->out.result);
18735 ndr->depth--;
18737 ndr->depth--;
18740 static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, int flags, const struct spoolss_GetJob *r)
18742 if (flags & NDR_IN) {
18743 if (r->in.handle == NULL) {
18744 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18746 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18747 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
18748 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18749 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18750 if (r->in.buffer) {
18751 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18753 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18755 if (flags & NDR_OUT) {
18756 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18757 if (r->out.info) {
18759 struct ndr_push *_ndr_info;
18760 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
18761 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
18762 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
18763 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
18766 if (r->out.needed == NULL) {
18767 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18769 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18770 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18772 return NDR_ERR_SUCCESS;
18775 static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags, struct spoolss_GetJob *r)
18777 uint32_t _ptr_buffer;
18778 uint32_t _ptr_info;
18779 TALLOC_CTX *_mem_save_handle_0;
18780 TALLOC_CTX *_mem_save_buffer_0;
18781 TALLOC_CTX *_mem_save_info_0;
18782 TALLOC_CTX *_mem_save_needed_0;
18783 if (flags & NDR_IN) {
18784 ZERO_STRUCT(r->out);
18786 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18787 NDR_PULL_ALLOC(ndr, r->in.handle);
18789 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18790 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18791 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18792 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18793 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
18794 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18795 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18796 if (_ptr_buffer) {
18797 NDR_PULL_ALLOC(ndr, r->in.buffer);
18798 } else {
18799 r->in.buffer = NULL;
18801 if (r->in.buffer) {
18802 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18803 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18804 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18805 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18807 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18808 NDR_PULL_ALLOC(ndr, r->out.needed);
18809 ZERO_STRUCTP(r->out.needed);
18811 if (flags & NDR_OUT) {
18812 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18813 if (_ptr_info) {
18814 NDR_PULL_ALLOC(ndr, r->out.info);
18815 } else {
18816 r->out.info = NULL;
18818 if (r->out.info) {
18819 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18820 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18822 struct ndr_pull *_ndr_info;
18823 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
18824 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
18825 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
18826 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
18828 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18830 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18831 NDR_PULL_ALLOC(ndr, r->out.needed);
18833 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18834 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18835 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18836 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18837 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18839 return NDR_ERR_SUCCESS;
18842 _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetJob *r)
18844 ndr_print_struct(ndr, name, "spoolss_GetJob");
18845 ndr->depth++;
18846 if (flags & NDR_SET_VALUES) {
18847 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18849 if (flags & NDR_IN) {
18850 ndr_print_struct(ndr, "in", "spoolss_GetJob");
18851 ndr->depth++;
18852 ndr_print_ptr(ndr, "handle", r->in.handle);
18853 ndr->depth++;
18854 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18855 ndr->depth--;
18856 ndr_print_uint32(ndr, "job_id", r->in.job_id);
18857 ndr_print_uint32(ndr, "level", r->in.level);
18858 ndr_print_ptr(ndr, "buffer", r->in.buffer);
18859 ndr->depth++;
18860 if (r->in.buffer) {
18861 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
18863 ndr->depth--;
18864 ndr_print_uint32(ndr, "offered", r->in.offered);
18865 ndr->depth--;
18867 if (flags & NDR_OUT) {
18868 ndr_print_struct(ndr, "out", "spoolss_GetJob");
18869 ndr->depth++;
18870 ndr_print_ptr(ndr, "info", r->out.info);
18871 ndr->depth++;
18872 if (r->out.info) {
18873 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
18874 ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
18876 ndr->depth--;
18877 ndr_print_ptr(ndr, "needed", r->out.needed);
18878 ndr->depth++;
18879 ndr_print_uint32(ndr, "needed", *r->out.needed);
18880 ndr->depth--;
18881 ndr_print_WERROR(ndr, "result", r->out.result);
18882 ndr->depth--;
18884 ndr->depth--;
18887 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct _spoolss_EnumJobs *r)
18889 if (flags & NDR_IN) {
18890 if (r->in.handle == NULL) {
18891 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18893 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18894 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
18895 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
18896 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18897 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18898 if (r->in.buffer) {
18899 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18901 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18903 if (flags & NDR_OUT) {
18904 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18905 if (r->out.info) {
18906 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
18908 if (r->out.needed == NULL) {
18909 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18911 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18912 if (r->out.count == NULL) {
18913 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18915 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
18916 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18918 return NDR_ERR_SUCCESS;
18921 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct _spoolss_EnumJobs *r)
18923 uint32_t _ptr_buffer;
18924 uint32_t _ptr_info;
18925 TALLOC_CTX *_mem_save_handle_0;
18926 TALLOC_CTX *_mem_save_buffer_0;
18927 TALLOC_CTX *_mem_save_info_0;
18928 TALLOC_CTX *_mem_save_needed_0;
18929 TALLOC_CTX *_mem_save_count_0;
18930 if (flags & NDR_IN) {
18931 ZERO_STRUCT(r->out);
18933 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18934 NDR_PULL_ALLOC(ndr, r->in.handle);
18936 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18937 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18938 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18939 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18940 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
18941 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
18942 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18943 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18944 if (_ptr_buffer) {
18945 NDR_PULL_ALLOC(ndr, r->in.buffer);
18946 } else {
18947 r->in.buffer = NULL;
18949 if (r->in.buffer) {
18950 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18951 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18952 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18953 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18955 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18956 NDR_PULL_ALLOC(ndr, r->out.needed);
18957 ZERO_STRUCTP(r->out.needed);
18958 NDR_PULL_ALLOC(ndr, r->out.count);
18959 ZERO_STRUCTP(r->out.count);
18961 if (flags & NDR_OUT) {
18962 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18963 if (_ptr_info) {
18964 NDR_PULL_ALLOC(ndr, r->out.info);
18965 } else {
18966 r->out.info = NULL;
18968 if (r->out.info) {
18969 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18970 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18971 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
18972 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18974 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18975 NDR_PULL_ALLOC(ndr, r->out.needed);
18977 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18978 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18979 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18980 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18981 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18982 NDR_PULL_ALLOC(ndr, r->out.count);
18984 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
18985 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
18986 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
18987 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
18988 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18990 return NDR_ERR_SUCCESS;
18993 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct __spoolss_EnumJobs *r)
18995 uint32_t cntr_info_0;
18996 if (flags & NDR_IN) {
18997 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18998 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
19000 if (flags & NDR_OUT) {
19001 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19002 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19003 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19005 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19006 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19009 return NDR_ERR_SUCCESS;
19012 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct __spoolss_EnumJobs *r)
19014 uint32_t cntr_info_0;
19015 TALLOC_CTX *_mem_save_info_0;
19016 if (flags & NDR_IN) {
19017 ZERO_STRUCT(r->out);
19019 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19020 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
19022 if (flags & NDR_OUT) {
19023 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
19024 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19025 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19026 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19027 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19028 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19030 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19031 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19033 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19035 return NDR_ERR_SUCCESS;
19038 _PUBLIC_ void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumJobs *r)
19040 uint32_t cntr_info_1;
19041 ndr_print_struct(ndr, name, "spoolss_EnumJobs");
19042 ndr->depth++;
19043 if (flags & NDR_SET_VALUES) {
19044 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19046 if (flags & NDR_IN) {
19047 ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
19048 ndr->depth++;
19049 ndr_print_ptr(ndr, "handle", r->in.handle);
19050 ndr->depth++;
19051 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19052 ndr->depth--;
19053 ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
19054 ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
19055 ndr_print_uint32(ndr, "level", r->in.level);
19056 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19057 ndr->depth++;
19058 if (r->in.buffer) {
19059 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19061 ndr->depth--;
19062 ndr_print_uint32(ndr, "offered", r->in.offered);
19063 ndr->depth--;
19065 if (flags & NDR_OUT) {
19066 ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
19067 ndr->depth++;
19068 ndr_print_ptr(ndr, "count", r->out.count);
19069 ndr->depth++;
19070 ndr_print_uint32(ndr, "count", *r->out.count);
19071 ndr->depth--;
19072 ndr_print_ptr(ndr, "info", r->out.info);
19073 ndr->depth++;
19074 if (r->out.info) {
19075 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
19076 ndr->depth++;
19077 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
19078 char *idx_1=NULL;
19079 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
19080 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
19081 ndr_print_spoolss_JobInfo(ndr, "info", &r->out.info[cntr_info_1]);
19082 free(idx_1);
19085 ndr->depth--;
19087 ndr->depth--;
19088 ndr_print_ptr(ndr, "needed", r->out.needed);
19089 ndr->depth++;
19090 ndr_print_uint32(ndr, "needed", *r->out.needed);
19091 ndr->depth--;
19092 ndr_print_WERROR(ndr, "result", r->out.result);
19093 ndr->depth--;
19095 ndr->depth--;
19098 static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinter *r)
19100 if (flags & NDR_IN) {
19102 if (flags & NDR_OUT) {
19103 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19105 return NDR_ERR_SUCCESS;
19108 static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinter *r)
19110 if (flags & NDR_IN) {
19112 if (flags & NDR_OUT) {
19113 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19115 return NDR_ERR_SUCCESS;
19118 _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinter *r)
19120 ndr_print_struct(ndr, name, "spoolss_AddPrinter");
19121 ndr->depth++;
19122 if (flags & NDR_SET_VALUES) {
19123 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19125 if (flags & NDR_IN) {
19126 ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
19127 ndr->depth++;
19128 ndr->depth--;
19130 if (flags & NDR_OUT) {
19131 ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
19132 ndr->depth++;
19133 ndr_print_WERROR(ndr, "result", r->out.result);
19134 ndr->depth--;
19136 ndr->depth--;
19139 static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinter *r)
19141 if (flags & NDR_IN) {
19142 if (r->in.handle == NULL) {
19143 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19145 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19147 if (flags & NDR_OUT) {
19148 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19150 return NDR_ERR_SUCCESS;
19153 static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinter *r)
19155 TALLOC_CTX *_mem_save_handle_0;
19156 if (flags & NDR_IN) {
19157 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19158 NDR_PULL_ALLOC(ndr, r->in.handle);
19160 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19161 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19162 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19163 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19165 if (flags & NDR_OUT) {
19166 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19168 return NDR_ERR_SUCCESS;
19171 _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinter *r)
19173 ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
19174 ndr->depth++;
19175 if (flags & NDR_SET_VALUES) {
19176 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19178 if (flags & NDR_IN) {
19179 ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
19180 ndr->depth++;
19181 ndr_print_ptr(ndr, "handle", r->in.handle);
19182 ndr->depth++;
19183 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19184 ndr->depth--;
19185 ndr->depth--;
19187 if (flags & NDR_OUT) {
19188 ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
19189 ndr->depth++;
19190 ndr_print_WERROR(ndr, "result", r->out.result);
19191 ndr->depth--;
19193 ndr->depth--;
19196 static enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinter *r)
19198 if (flags & NDR_IN) {
19199 if (r->in.handle == NULL) {
19200 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19202 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19203 if (r->in.info_ctr == NULL) {
19204 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19206 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
19207 if (r->in.devmode_ctr == NULL) {
19208 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19210 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
19211 if (r->in.secdesc_ctr == NULL) {
19212 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19214 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
19215 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
19217 if (flags & NDR_OUT) {
19218 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19220 return NDR_ERR_SUCCESS;
19223 static enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinter *r)
19225 TALLOC_CTX *_mem_save_handle_0;
19226 TALLOC_CTX *_mem_save_info_ctr_0;
19227 TALLOC_CTX *_mem_save_devmode_ctr_0;
19228 TALLOC_CTX *_mem_save_secdesc_ctr_0;
19229 if (flags & NDR_IN) {
19230 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19231 NDR_PULL_ALLOC(ndr, r->in.handle);
19233 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19234 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19235 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19236 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19237 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19238 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
19240 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19241 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
19242 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
19243 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
19244 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19245 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
19247 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19248 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
19249 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
19250 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
19251 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19252 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
19254 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19255 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
19256 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
19257 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
19258 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
19260 if (flags & NDR_OUT) {
19261 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19263 return NDR_ERR_SUCCESS;
19266 _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinter *r)
19268 ndr_print_struct(ndr, name, "spoolss_SetPrinter");
19269 ndr->depth++;
19270 if (flags & NDR_SET_VALUES) {
19271 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19273 if (flags & NDR_IN) {
19274 ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
19275 ndr->depth++;
19276 ndr_print_ptr(ndr, "handle", r->in.handle);
19277 ndr->depth++;
19278 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19279 ndr->depth--;
19280 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
19281 ndr->depth++;
19282 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
19283 ndr->depth--;
19284 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
19285 ndr->depth++;
19286 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
19287 ndr->depth--;
19288 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
19289 ndr->depth++;
19290 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
19291 ndr->depth--;
19292 ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
19293 ndr->depth--;
19295 if (flags & NDR_OUT) {
19296 ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
19297 ndr->depth++;
19298 ndr_print_WERROR(ndr, "result", r->out.result);
19299 ndr->depth--;
19301 ndr->depth--;
19304 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinter *r)
19306 if (flags & NDR_IN) {
19307 if (r->in.handle == NULL) {
19308 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19310 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19311 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19312 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19313 if (r->in.buffer) {
19314 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19316 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19318 if (flags & NDR_OUT) {
19319 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19320 if (r->out.info) {
19322 struct ndr_push *_ndr_info;
19323 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
19324 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
19325 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
19326 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
19329 if (r->out.needed == NULL) {
19330 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19332 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19333 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19335 return NDR_ERR_SUCCESS;
19338 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinter *r)
19340 uint32_t _ptr_buffer;
19341 uint32_t _ptr_info;
19342 TALLOC_CTX *_mem_save_handle_0;
19343 TALLOC_CTX *_mem_save_buffer_0;
19344 TALLOC_CTX *_mem_save_info_0;
19345 TALLOC_CTX *_mem_save_needed_0;
19346 if (flags & NDR_IN) {
19347 ZERO_STRUCT(r->out);
19349 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19350 NDR_PULL_ALLOC(ndr, r->in.handle);
19352 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19353 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19354 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19355 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19356 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19357 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19358 if (_ptr_buffer) {
19359 NDR_PULL_ALLOC(ndr, r->in.buffer);
19360 } else {
19361 r->in.buffer = NULL;
19363 if (r->in.buffer) {
19364 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19365 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19366 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19367 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19369 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19370 NDR_PULL_ALLOC(ndr, r->out.needed);
19371 ZERO_STRUCTP(r->out.needed);
19373 if (flags & NDR_OUT) {
19374 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19375 if (_ptr_info) {
19376 NDR_PULL_ALLOC(ndr, r->out.info);
19377 } else {
19378 r->out.info = NULL;
19380 if (r->out.info) {
19381 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19382 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19384 struct ndr_pull *_ndr_info;
19385 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
19386 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
19387 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
19388 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
19390 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19392 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19393 NDR_PULL_ALLOC(ndr, r->out.needed);
19395 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19396 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19397 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19398 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19399 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19401 return NDR_ERR_SUCCESS;
19404 _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinter *r)
19406 ndr_print_struct(ndr, name, "spoolss_GetPrinter");
19407 ndr->depth++;
19408 if (flags & NDR_SET_VALUES) {
19409 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19411 if (flags & NDR_IN) {
19412 ndr_print_struct(ndr, "in", "spoolss_GetPrinter");
19413 ndr->depth++;
19414 ndr_print_ptr(ndr, "handle", r->in.handle);
19415 ndr->depth++;
19416 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19417 ndr->depth--;
19418 ndr_print_uint32(ndr, "level", r->in.level);
19419 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19420 ndr->depth++;
19421 if (r->in.buffer) {
19422 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19424 ndr->depth--;
19425 ndr_print_uint32(ndr, "offered", r->in.offered);
19426 ndr->depth--;
19428 if (flags & NDR_OUT) {
19429 ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
19430 ndr->depth++;
19431 ndr_print_ptr(ndr, "info", r->out.info);
19432 ndr->depth++;
19433 if (r->out.info) {
19434 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
19435 ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
19437 ndr->depth--;
19438 ndr_print_ptr(ndr, "needed", r->out.needed);
19439 ndr->depth++;
19440 ndr_print_uint32(ndr, "needed", *r->out.needed);
19441 ndr->depth--;
19442 ndr_print_WERROR(ndr, "result", r->out.result);
19443 ndr->depth--;
19445 ndr->depth--;
19448 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriver *r)
19450 if (flags & NDR_IN) {
19451 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
19452 if (r->in.servername) {
19453 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
19454 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19455 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
19456 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19458 if (r->in.info_ctr == NULL) {
19459 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19461 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
19463 if (flags & NDR_OUT) {
19464 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19466 return NDR_ERR_SUCCESS;
19469 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriver *r)
19471 uint32_t _ptr_servername;
19472 TALLOC_CTX *_mem_save_servername_0;
19473 TALLOC_CTX *_mem_save_info_ctr_0;
19474 if (flags & NDR_IN) {
19475 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
19476 if (_ptr_servername) {
19477 NDR_PULL_ALLOC(ndr, r->in.servername);
19478 } else {
19479 r->in.servername = NULL;
19481 if (r->in.servername) {
19482 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
19483 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
19484 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
19485 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
19486 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
19487 return 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));
19489 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
19490 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
19491 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
19493 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19494 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
19496 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19497 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
19498 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
19499 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
19501 if (flags & NDR_OUT) {
19502 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19504 return NDR_ERR_SUCCESS;
19507 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriver *r)
19509 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
19510 ndr->depth++;
19511 if (flags & NDR_SET_VALUES) {
19512 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19514 if (flags & NDR_IN) {
19515 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
19516 ndr->depth++;
19517 ndr_print_ptr(ndr, "servername", r->in.servername);
19518 ndr->depth++;
19519 if (r->in.servername) {
19520 ndr_print_string(ndr, "servername", r->in.servername);
19522 ndr->depth--;
19523 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
19524 ndr->depth++;
19525 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
19526 ndr->depth--;
19527 ndr->depth--;
19529 if (flags & NDR_OUT) {
19530 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
19531 ndr->depth++;
19532 ndr_print_WERROR(ndr, "result", r->out.result);
19533 ndr->depth--;
19535 ndr->depth--;
19538 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDrivers *r)
19540 if (flags & NDR_IN) {
19541 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
19542 if (r->in.server) {
19543 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19544 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19545 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19546 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19548 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
19549 if (r->in.environment) {
19550 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
19551 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19552 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
19553 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19555 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19556 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19557 if (r->in.buffer) {
19558 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19560 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19562 if (flags & NDR_OUT) {
19563 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19564 if (r->out.info) {
19565 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
19567 if (r->out.needed == NULL) {
19568 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19570 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19571 if (r->out.count == NULL) {
19572 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19574 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
19575 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19577 return NDR_ERR_SUCCESS;
19580 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDrivers *r)
19582 uint32_t _ptr_server;
19583 uint32_t _ptr_environment;
19584 uint32_t _ptr_buffer;
19585 uint32_t _ptr_info;
19586 TALLOC_CTX *_mem_save_server_0;
19587 TALLOC_CTX *_mem_save_environment_0;
19588 TALLOC_CTX *_mem_save_buffer_0;
19589 TALLOC_CTX *_mem_save_info_0;
19590 TALLOC_CTX *_mem_save_needed_0;
19591 TALLOC_CTX *_mem_save_count_0;
19592 if (flags & NDR_IN) {
19593 ZERO_STRUCT(r->out);
19595 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
19596 if (_ptr_server) {
19597 NDR_PULL_ALLOC(ndr, r->in.server);
19598 } else {
19599 r->in.server = NULL;
19601 if (r->in.server) {
19602 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
19603 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
19604 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
19605 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
19606 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
19607 return 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));
19609 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
19610 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
19611 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
19613 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
19614 if (_ptr_environment) {
19615 NDR_PULL_ALLOC(ndr, r->in.environment);
19616 } else {
19617 r->in.environment = NULL;
19619 if (r->in.environment) {
19620 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
19621 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
19622 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
19623 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
19624 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
19625 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.environment), ndr_get_array_length(ndr, &r->in.environment));
19627 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
19628 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
19629 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
19631 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19632 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19633 if (_ptr_buffer) {
19634 NDR_PULL_ALLOC(ndr, r->in.buffer);
19635 } else {
19636 r->in.buffer = NULL;
19638 if (r->in.buffer) {
19639 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19640 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19641 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19642 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19644 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19645 NDR_PULL_ALLOC(ndr, r->out.needed);
19646 ZERO_STRUCTP(r->out.needed);
19647 NDR_PULL_ALLOC(ndr, r->out.count);
19648 ZERO_STRUCTP(r->out.count);
19650 if (flags & NDR_OUT) {
19651 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19652 if (_ptr_info) {
19653 NDR_PULL_ALLOC(ndr, r->out.info);
19654 } else {
19655 r->out.info = NULL;
19657 if (r->out.info) {
19658 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19659 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19660 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
19661 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19663 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19664 NDR_PULL_ALLOC(ndr, r->out.needed);
19666 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19667 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19668 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19669 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19670 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19671 NDR_PULL_ALLOC(ndr, r->out.count);
19673 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
19674 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
19675 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
19676 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
19677 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19679 return NDR_ERR_SUCCESS;
19682 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDrivers *r)
19684 uint32_t cntr_info_0;
19685 if (flags & NDR_IN) {
19686 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19687 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
19689 if (flags & NDR_OUT) {
19690 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19691 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19692 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19694 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19695 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19698 return NDR_ERR_SUCCESS;
19701 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDrivers *r)
19703 uint32_t cntr_info_0;
19704 TALLOC_CTX *_mem_save_info_0;
19705 if (flags & NDR_IN) {
19706 ZERO_STRUCT(r->out);
19708 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19709 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
19711 if (flags & NDR_OUT) {
19712 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
19713 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19714 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19715 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19716 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19717 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19719 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19720 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19722 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19724 return NDR_ERR_SUCCESS;
19727 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDrivers *r)
19729 uint32_t cntr_info_1;
19730 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
19731 ndr->depth++;
19732 if (flags & NDR_SET_VALUES) {
19733 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19735 if (flags & NDR_IN) {
19736 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
19737 ndr->depth++;
19738 ndr_print_ptr(ndr, "server", r->in.server);
19739 ndr->depth++;
19740 if (r->in.server) {
19741 ndr_print_string(ndr, "server", r->in.server);
19743 ndr->depth--;
19744 ndr_print_ptr(ndr, "environment", r->in.environment);
19745 ndr->depth++;
19746 if (r->in.environment) {
19747 ndr_print_string(ndr, "environment", r->in.environment);
19749 ndr->depth--;
19750 ndr_print_uint32(ndr, "level", r->in.level);
19751 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19752 ndr->depth++;
19753 if (r->in.buffer) {
19754 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19756 ndr->depth--;
19757 ndr_print_uint32(ndr, "offered", r->in.offered);
19758 ndr->depth--;
19760 if (flags & NDR_OUT) {
19761 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
19762 ndr->depth++;
19763 ndr_print_ptr(ndr, "count", r->out.count);
19764 ndr->depth++;
19765 ndr_print_uint32(ndr, "count", *r->out.count);
19766 ndr->depth--;
19767 ndr_print_ptr(ndr, "info", r->out.info);
19768 ndr->depth++;
19769 if (r->out.info) {
19770 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
19771 ndr->depth++;
19772 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
19773 char *idx_1=NULL;
19774 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
19775 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
19776 ndr_print_spoolss_DriverInfo(ndr, "info", &r->out.info[cntr_info_1]);
19777 free(idx_1);
19780 ndr->depth--;
19782 ndr->depth--;
19783 ndr_print_ptr(ndr, "needed", r->out.needed);
19784 ndr->depth++;
19785 ndr_print_uint32(ndr, "needed", *r->out.needed);
19786 ndr->depth--;
19787 ndr_print_WERROR(ndr, "result", r->out.result);
19788 ndr->depth--;
19790 ndr->depth--;
19793 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver *r)
19795 if (flags & NDR_IN) {
19797 if (flags & NDR_OUT) {
19798 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19800 return NDR_ERR_SUCCESS;
19803 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver *r)
19805 if (flags & NDR_IN) {
19807 if (flags & NDR_OUT) {
19808 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19810 return NDR_ERR_SUCCESS;
19813 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver *r)
19815 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
19816 ndr->depth++;
19817 if (flags & NDR_SET_VALUES) {
19818 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19820 if (flags & NDR_IN) {
19821 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
19822 ndr->depth++;
19823 ndr->depth--;
19825 if (flags & NDR_OUT) {
19826 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
19827 ndr->depth++;
19828 ndr_print_WERROR(ndr, "result", r->out.result);
19829 ndr->depth--;
19831 ndr->depth--;
19834 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
19836 if (flags & NDR_IN) {
19837 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
19838 if (r->in.server) {
19839 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19840 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19841 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19842 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19844 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
19845 if (r->in.environment) {
19846 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
19847 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19848 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
19849 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19851 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19852 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19853 if (r->in.buffer) {
19854 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19856 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19858 if (flags & NDR_OUT) {
19859 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19860 if (r->out.info) {
19862 struct ndr_push *_ndr_info;
19863 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
19864 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
19865 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
19866 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
19869 if (r->out.needed == NULL) {
19870 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19872 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19873 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19875 return NDR_ERR_SUCCESS;
19878 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverDirectory *r)
19880 uint32_t _ptr_server;
19881 uint32_t _ptr_environment;
19882 uint32_t _ptr_buffer;
19883 uint32_t _ptr_info;
19884 TALLOC_CTX *_mem_save_server_0;
19885 TALLOC_CTX *_mem_save_environment_0;
19886 TALLOC_CTX *_mem_save_buffer_0;
19887 TALLOC_CTX *_mem_save_info_0;
19888 TALLOC_CTX *_mem_save_needed_0;
19889 if (flags & NDR_IN) {
19890 ZERO_STRUCT(r->out);
19892 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
19893 if (_ptr_server) {
19894 NDR_PULL_ALLOC(ndr, r->in.server);
19895 } else {
19896 r->in.server = NULL;
19898 if (r->in.server) {
19899 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
19900 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
19901 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
19902 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
19903 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
19904 return 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));
19906 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
19907 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
19908 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
19910 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
19911 if (_ptr_environment) {
19912 NDR_PULL_ALLOC(ndr, r->in.environment);
19913 } else {
19914 r->in.environment = NULL;
19916 if (r->in.environment) {
19917 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
19918 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
19919 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
19920 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
19921 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
19922 return 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));
19924 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
19925 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
19926 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
19928 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19929 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19930 if (_ptr_buffer) {
19931 NDR_PULL_ALLOC(ndr, r->in.buffer);
19932 } else {
19933 r->in.buffer = NULL;
19935 if (r->in.buffer) {
19936 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19937 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19938 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19939 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19941 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19942 NDR_PULL_ALLOC(ndr, r->out.needed);
19943 ZERO_STRUCTP(r->out.needed);
19945 if (flags & NDR_OUT) {
19946 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19947 if (_ptr_info) {
19948 NDR_PULL_ALLOC(ndr, r->out.info);
19949 } else {
19950 r->out.info = NULL;
19952 if (r->out.info) {
19953 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19954 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19956 struct ndr_pull *_ndr_info;
19957 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
19958 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
19959 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
19960 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
19962 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19964 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19965 NDR_PULL_ALLOC(ndr, r->out.needed);
19967 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19968 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19969 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19970 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19971 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19973 return NDR_ERR_SUCCESS;
19976 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
19978 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
19979 ndr->depth++;
19980 if (flags & NDR_SET_VALUES) {
19981 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19983 if (flags & NDR_IN) {
19984 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
19985 ndr->depth++;
19986 ndr_print_ptr(ndr, "server", r->in.server);
19987 ndr->depth++;
19988 if (r->in.server) {
19989 ndr_print_string(ndr, "server", r->in.server);
19991 ndr->depth--;
19992 ndr_print_ptr(ndr, "environment", r->in.environment);
19993 ndr->depth++;
19994 if (r->in.environment) {
19995 ndr_print_string(ndr, "environment", r->in.environment);
19997 ndr->depth--;
19998 ndr_print_uint32(ndr, "level", r->in.level);
19999 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20000 ndr->depth++;
20001 if (r->in.buffer) {
20002 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20004 ndr->depth--;
20005 ndr_print_uint32(ndr, "offered", r->in.offered);
20006 ndr->depth--;
20008 if (flags & NDR_OUT) {
20009 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
20010 ndr->depth++;
20011 ndr_print_ptr(ndr, "info", r->out.info);
20012 ndr->depth++;
20013 if (r->out.info) {
20014 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
20015 ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
20017 ndr->depth--;
20018 ndr_print_ptr(ndr, "needed", r->out.needed);
20019 ndr->depth++;
20020 ndr_print_uint32(ndr, "needed", *r->out.needed);
20021 ndr->depth--;
20022 ndr_print_WERROR(ndr, "result", r->out.result);
20023 ndr->depth--;
20025 ndr->depth--;
20028 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriver *r)
20030 if (flags & NDR_IN) {
20031 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20032 if (r->in.server) {
20033 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20034 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20035 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20036 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20038 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20039 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20040 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20041 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20042 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
20043 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20044 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
20045 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20047 if (flags & NDR_OUT) {
20048 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20050 return NDR_ERR_SUCCESS;
20053 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriver *r)
20055 uint32_t _ptr_server;
20056 TALLOC_CTX *_mem_save_server_0;
20057 if (flags & NDR_IN) {
20058 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20059 if (_ptr_server) {
20060 NDR_PULL_ALLOC(ndr, r->in.server);
20061 } else {
20062 r->in.server = NULL;
20064 if (r->in.server) {
20065 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20066 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20067 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20068 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20069 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20070 return 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));
20072 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20073 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20074 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20076 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
20077 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
20078 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
20079 return 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));
20081 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
20082 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
20083 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
20084 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
20085 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
20086 return 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));
20088 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
20089 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
20091 if (flags & NDR_OUT) {
20092 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20094 return NDR_ERR_SUCCESS;
20097 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriver *r)
20099 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
20100 ndr->depth++;
20101 if (flags & NDR_SET_VALUES) {
20102 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20104 if (flags & NDR_IN) {
20105 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
20106 ndr->depth++;
20107 ndr_print_ptr(ndr, "server", r->in.server);
20108 ndr->depth++;
20109 if (r->in.server) {
20110 ndr_print_string(ndr, "server", r->in.server);
20112 ndr->depth--;
20113 ndr_print_string(ndr, "architecture", r->in.architecture);
20114 ndr_print_string(ndr, "driver", r->in.driver);
20115 ndr->depth--;
20117 if (flags & NDR_OUT) {
20118 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
20119 ndr->depth++;
20120 ndr_print_WERROR(ndr, "result", r->out.result);
20121 ndr->depth--;
20123 ndr->depth--;
20126 static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProcessor *r)
20128 if (flags & NDR_IN) {
20129 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20130 if (r->in.server) {
20131 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20132 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20133 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20134 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20136 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20137 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20138 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20139 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20140 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
20141 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20142 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
20143 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));
20144 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
20145 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20146 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
20147 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));
20149 if (flags & NDR_OUT) {
20150 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20152 return NDR_ERR_SUCCESS;
20155 static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProcessor *r)
20157 uint32_t _ptr_server;
20158 TALLOC_CTX *_mem_save_server_0;
20159 if (flags & NDR_IN) {
20160 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20161 if (_ptr_server) {
20162 NDR_PULL_ALLOC(ndr, r->in.server);
20163 } else {
20164 r->in.server = NULL;
20166 if (r->in.server) {
20167 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20168 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20169 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20170 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20171 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20172 return 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));
20174 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20175 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20176 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20178 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
20179 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
20180 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
20181 return 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));
20183 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
20184 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
20185 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
20186 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
20187 if (ndr_get_array_length(ndr, &r->in.path_name) > ndr_get_array_size(ndr, &r->in.path_name)) {
20188 return 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));
20190 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t)));
20191 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));
20192 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
20193 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
20194 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
20195 return 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));
20197 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
20198 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));
20200 if (flags & NDR_OUT) {
20201 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20203 return NDR_ERR_SUCCESS;
20206 _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProcessor *r)
20208 ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
20209 ndr->depth++;
20210 if (flags & NDR_SET_VALUES) {
20211 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20213 if (flags & NDR_IN) {
20214 ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
20215 ndr->depth++;
20216 ndr_print_ptr(ndr, "server", r->in.server);
20217 ndr->depth++;
20218 if (r->in.server) {
20219 ndr_print_string(ndr, "server", r->in.server);
20221 ndr->depth--;
20222 ndr_print_string(ndr, "architecture", r->in.architecture);
20223 ndr_print_string(ndr, "path_name", r->in.path_name);
20224 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
20225 ndr->depth--;
20227 if (flags & NDR_OUT) {
20228 ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
20229 ndr->depth++;
20230 ndr_print_WERROR(ndr, "result", r->out.result);
20231 ndr->depth--;
20233 ndr->depth--;
20236 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcessors *r)
20238 if (flags & NDR_IN) {
20239 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
20240 if (r->in.servername) {
20241 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
20242 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20243 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
20244 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20246 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
20247 if (r->in.environment) {
20248 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20249 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20250 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20251 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20253 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20254 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20255 if (r->in.buffer) {
20256 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20258 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20260 if (flags & NDR_OUT) {
20261 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20262 if (r->out.info) {
20263 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
20265 if (r->out.needed == NULL) {
20266 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20268 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20269 if (r->out.count == NULL) {
20270 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20272 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
20273 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20275 return NDR_ERR_SUCCESS;
20278 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessors *r)
20280 uint32_t _ptr_servername;
20281 uint32_t _ptr_environment;
20282 uint32_t _ptr_buffer;
20283 uint32_t _ptr_info;
20284 TALLOC_CTX *_mem_save_servername_0;
20285 TALLOC_CTX *_mem_save_environment_0;
20286 TALLOC_CTX *_mem_save_buffer_0;
20287 TALLOC_CTX *_mem_save_info_0;
20288 TALLOC_CTX *_mem_save_needed_0;
20289 TALLOC_CTX *_mem_save_count_0;
20290 if (flags & NDR_IN) {
20291 ZERO_STRUCT(r->out);
20293 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
20294 if (_ptr_servername) {
20295 NDR_PULL_ALLOC(ndr, r->in.servername);
20296 } else {
20297 r->in.servername = NULL;
20299 if (r->in.servername) {
20300 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
20301 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
20302 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
20303 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
20304 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
20305 return 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));
20307 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
20308 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
20309 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
20311 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
20312 if (_ptr_environment) {
20313 NDR_PULL_ALLOC(ndr, r->in.environment);
20314 } else {
20315 r->in.environment = NULL;
20317 if (r->in.environment) {
20318 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
20319 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
20320 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
20321 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
20322 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
20323 return 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));
20325 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
20326 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
20327 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
20329 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20330 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20331 if (_ptr_buffer) {
20332 NDR_PULL_ALLOC(ndr, r->in.buffer);
20333 } else {
20334 r->in.buffer = NULL;
20336 if (r->in.buffer) {
20337 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20338 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20339 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20340 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20342 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20343 NDR_PULL_ALLOC(ndr, r->out.needed);
20344 ZERO_STRUCTP(r->out.needed);
20345 NDR_PULL_ALLOC(ndr, r->out.count);
20346 ZERO_STRUCTP(r->out.count);
20348 if (flags & NDR_OUT) {
20349 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20350 if (_ptr_info) {
20351 NDR_PULL_ALLOC(ndr, r->out.info);
20352 } else {
20353 r->out.info = NULL;
20355 if (r->out.info) {
20356 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20357 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20358 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
20359 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20361 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20362 NDR_PULL_ALLOC(ndr, r->out.needed);
20364 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20365 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20366 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20367 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20368 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20369 NDR_PULL_ALLOC(ndr, r->out.count);
20371 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
20372 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
20373 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
20374 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
20375 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20377 return NDR_ERR_SUCCESS;
20380 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcessors *r)
20382 uint32_t cntr_info_0;
20383 if (flags & NDR_IN) {
20384 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20385 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
20387 if (flags & NDR_OUT) {
20388 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20389 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20390 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20392 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20393 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20396 return NDR_ERR_SUCCESS;
20399 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessors *r)
20401 uint32_t cntr_info_0;
20402 TALLOC_CTX *_mem_save_info_0;
20403 if (flags & NDR_IN) {
20404 ZERO_STRUCT(r->out);
20406 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20407 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
20409 if (flags & NDR_OUT) {
20410 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
20411 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20412 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20413 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20414 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20415 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20417 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20418 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20420 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20422 return NDR_ERR_SUCCESS;
20425 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcessors *r)
20427 uint32_t cntr_info_1;
20428 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
20429 ndr->depth++;
20430 if (flags & NDR_SET_VALUES) {
20431 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20433 if (flags & NDR_IN) {
20434 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
20435 ndr->depth++;
20436 ndr_print_ptr(ndr, "servername", r->in.servername);
20437 ndr->depth++;
20438 if (r->in.servername) {
20439 ndr_print_string(ndr, "servername", r->in.servername);
20441 ndr->depth--;
20442 ndr_print_ptr(ndr, "environment", r->in.environment);
20443 ndr->depth++;
20444 if (r->in.environment) {
20445 ndr_print_string(ndr, "environment", r->in.environment);
20447 ndr->depth--;
20448 ndr_print_uint32(ndr, "level", r->in.level);
20449 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20450 ndr->depth++;
20451 if (r->in.buffer) {
20452 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20454 ndr->depth--;
20455 ndr_print_uint32(ndr, "offered", r->in.offered);
20456 ndr->depth--;
20458 if (flags & NDR_OUT) {
20459 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
20460 ndr->depth++;
20461 ndr_print_ptr(ndr, "count", r->out.count);
20462 ndr->depth++;
20463 ndr_print_uint32(ndr, "count", *r->out.count);
20464 ndr->depth--;
20465 ndr_print_ptr(ndr, "info", r->out.info);
20466 ndr->depth++;
20467 if (r->out.info) {
20468 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
20469 ndr->depth++;
20470 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
20471 char *idx_1=NULL;
20472 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
20473 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
20474 ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &r->out.info[cntr_info_1]);
20475 free(idx_1);
20478 ndr->depth--;
20480 ndr->depth--;
20481 ndr_print_ptr(ndr, "needed", r->out.needed);
20482 ndr->depth++;
20483 ndr_print_uint32(ndr, "needed", *r->out.needed);
20484 ndr->depth--;
20485 ndr_print_WERROR(ndr, "result", r->out.result);
20486 ndr->depth--;
20488 ndr->depth--;
20491 static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
20493 if (flags & NDR_IN) {
20494 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20495 if (r->in.server) {
20496 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20497 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20498 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20499 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20501 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
20502 if (r->in.environment) {
20503 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20504 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20505 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20506 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20508 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20509 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20510 if (r->in.buffer) {
20511 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20513 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20515 if (flags & NDR_OUT) {
20516 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20517 if (r->out.info) {
20519 struct ndr_push *_ndr_info;
20520 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20521 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
20522 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
20523 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20526 if (r->out.needed == NULL) {
20527 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20529 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20530 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20532 return NDR_ERR_SUCCESS;
20535 static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrintProcessorDirectory *r)
20537 uint32_t _ptr_server;
20538 uint32_t _ptr_environment;
20539 uint32_t _ptr_buffer;
20540 uint32_t _ptr_info;
20541 TALLOC_CTX *_mem_save_server_0;
20542 TALLOC_CTX *_mem_save_environment_0;
20543 TALLOC_CTX *_mem_save_buffer_0;
20544 TALLOC_CTX *_mem_save_info_0;
20545 TALLOC_CTX *_mem_save_needed_0;
20546 if (flags & NDR_IN) {
20547 ZERO_STRUCT(r->out);
20549 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20550 if (_ptr_server) {
20551 NDR_PULL_ALLOC(ndr, r->in.server);
20552 } else {
20553 r->in.server = NULL;
20555 if (r->in.server) {
20556 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20557 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20558 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20559 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20560 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20561 return 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));
20563 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20564 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20565 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20567 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
20568 if (_ptr_environment) {
20569 NDR_PULL_ALLOC(ndr, r->in.environment);
20570 } else {
20571 r->in.environment = NULL;
20573 if (r->in.environment) {
20574 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
20575 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
20576 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
20577 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
20578 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
20579 return 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));
20581 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
20582 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
20583 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
20585 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20586 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20587 if (_ptr_buffer) {
20588 NDR_PULL_ALLOC(ndr, r->in.buffer);
20589 } else {
20590 r->in.buffer = NULL;
20592 if (r->in.buffer) {
20593 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20594 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20595 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20596 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20598 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20599 NDR_PULL_ALLOC(ndr, r->out.needed);
20600 ZERO_STRUCTP(r->out.needed);
20602 if (flags & NDR_OUT) {
20603 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20604 if (_ptr_info) {
20605 NDR_PULL_ALLOC(ndr, r->out.info);
20606 } else {
20607 r->out.info = NULL;
20609 if (r->out.info) {
20610 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20611 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20613 struct ndr_pull *_ndr_info;
20614 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20615 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
20616 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
20617 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20619 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20621 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20622 NDR_PULL_ALLOC(ndr, r->out.needed);
20624 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20625 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20626 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20627 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20628 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20630 return NDR_ERR_SUCCESS;
20633 _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
20635 ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
20636 ndr->depth++;
20637 if (flags & NDR_SET_VALUES) {
20638 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20640 if (flags & NDR_IN) {
20641 ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
20642 ndr->depth++;
20643 ndr_print_ptr(ndr, "server", r->in.server);
20644 ndr->depth++;
20645 if (r->in.server) {
20646 ndr_print_string(ndr, "server", r->in.server);
20648 ndr->depth--;
20649 ndr_print_ptr(ndr, "environment", r->in.environment);
20650 ndr->depth++;
20651 if (r->in.environment) {
20652 ndr_print_string(ndr, "environment", r->in.environment);
20654 ndr->depth--;
20655 ndr_print_uint32(ndr, "level", r->in.level);
20656 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20657 ndr->depth++;
20658 if (r->in.buffer) {
20659 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20661 ndr->depth--;
20662 ndr_print_uint32(ndr, "offered", r->in.offered);
20663 ndr->depth--;
20665 if (flags & NDR_OUT) {
20666 ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
20667 ndr->depth++;
20668 ndr_print_ptr(ndr, "info", r->out.info);
20669 ndr->depth++;
20670 if (r->out.info) {
20671 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
20672 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr, "info", r->out.info);
20674 ndr->depth--;
20675 ndr_print_ptr(ndr, "needed", r->out.needed);
20676 ndr->depth++;
20677 ndr_print_uint32(ndr, "needed", *r->out.needed);
20678 ndr->depth--;
20679 ndr_print_WERROR(ndr, "result", r->out.result);
20680 ndr->depth--;
20682 ndr->depth--;
20685 static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartDocPrinter *r)
20687 if (flags & NDR_IN) {
20688 if (r->in.handle == NULL) {
20689 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20691 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20692 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20693 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
20694 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
20696 if (flags & NDR_OUT) {
20697 if (r->out.job_id == NULL) {
20698 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20700 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
20701 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20703 return NDR_ERR_SUCCESS;
20706 static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartDocPrinter *r)
20708 TALLOC_CTX *_mem_save_handle_0;
20709 TALLOC_CTX *_mem_save_job_id_0;
20710 if (flags & NDR_IN) {
20711 ZERO_STRUCT(r->out);
20713 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20714 NDR_PULL_ALLOC(ndr, r->in.handle);
20716 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20717 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20718 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20719 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20720 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20721 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
20722 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
20723 NDR_PULL_ALLOC(ndr, r->out.job_id);
20724 ZERO_STRUCTP(r->out.job_id);
20726 if (flags & NDR_OUT) {
20727 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20728 NDR_PULL_ALLOC(ndr, r->out.job_id);
20730 _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
20731 NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
20732 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
20733 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
20734 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20736 return NDR_ERR_SUCCESS;
20739 _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartDocPrinter *r)
20741 ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
20742 ndr->depth++;
20743 if (flags & NDR_SET_VALUES) {
20744 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20746 if (flags & NDR_IN) {
20747 ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
20748 ndr->depth++;
20749 ndr_print_ptr(ndr, "handle", r->in.handle);
20750 ndr->depth++;
20751 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20752 ndr->depth--;
20753 ndr_print_uint32(ndr, "level", r->in.level);
20754 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
20755 ndr_print_spoolss_DocumentInfo(ndr, "info", &r->in.info);
20756 ndr->depth--;
20758 if (flags & NDR_OUT) {
20759 ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
20760 ndr->depth++;
20761 ndr_print_ptr(ndr, "job_id", r->out.job_id);
20762 ndr->depth++;
20763 ndr_print_uint32(ndr, "job_id", *r->out.job_id);
20764 ndr->depth--;
20765 ndr_print_WERROR(ndr, "result", r->out.result);
20766 ndr->depth--;
20768 ndr->depth--;
20771 static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartPagePrinter *r)
20773 if (flags & NDR_IN) {
20774 if (r->in.handle == NULL) {
20775 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20777 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20779 if (flags & NDR_OUT) {
20780 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20782 return NDR_ERR_SUCCESS;
20785 static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartPagePrinter *r)
20787 TALLOC_CTX *_mem_save_handle_0;
20788 if (flags & NDR_IN) {
20789 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20790 NDR_PULL_ALLOC(ndr, r->in.handle);
20792 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20793 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20794 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20795 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20797 if (flags & NDR_OUT) {
20798 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20800 return NDR_ERR_SUCCESS;
20803 _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartPagePrinter *r)
20805 ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
20806 ndr->depth++;
20807 if (flags & NDR_SET_VALUES) {
20808 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20810 if (flags & NDR_IN) {
20811 ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
20812 ndr->depth++;
20813 ndr_print_ptr(ndr, "handle", r->in.handle);
20814 ndr->depth++;
20815 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20816 ndr->depth--;
20817 ndr->depth--;
20819 if (flags & NDR_OUT) {
20820 ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
20821 ndr->depth++;
20822 ndr_print_WERROR(ndr, "result", r->out.result);
20823 ndr->depth--;
20825 ndr->depth--;
20828 static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, int flags, const struct spoolss_WritePrinter *r)
20830 if (flags & NDR_IN) {
20831 if (r->in.handle == NULL) {
20832 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20834 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20835 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
20836 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
20838 if (flags & NDR_OUT) {
20839 if (r->out.num_written == NULL) {
20840 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20842 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_written));
20843 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20845 return NDR_ERR_SUCCESS;
20848 static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, int flags, struct spoolss_WritePrinter *r)
20850 TALLOC_CTX *_mem_save_handle_0;
20851 TALLOC_CTX *_mem_save_num_written_0;
20852 if (flags & NDR_IN) {
20853 ZERO_STRUCT(r->out);
20855 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20856 NDR_PULL_ALLOC(ndr, r->in.handle);
20858 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20859 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20860 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20861 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20862 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
20863 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
20864 NDR_PULL_ALLOC(ndr, r->out.num_written);
20865 ZERO_STRUCTP(r->out.num_written);
20867 if (flags & NDR_OUT) {
20868 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20869 NDR_PULL_ALLOC(ndr, r->out.num_written);
20871 _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
20872 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
20873 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
20874 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
20875 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20877 return NDR_ERR_SUCCESS;
20880 _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WritePrinter *r)
20882 ndr_print_struct(ndr, name, "spoolss_WritePrinter");
20883 ndr->depth++;
20884 if (flags & NDR_SET_VALUES) {
20885 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20887 if (flags & NDR_IN) {
20888 ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
20889 ndr->depth++;
20890 ndr_print_ptr(ndr, "handle", r->in.handle);
20891 ndr->depth++;
20892 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20893 ndr->depth--;
20894 ndr_print_DATA_BLOB(ndr, "data", r->in.data);
20895 ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
20896 ndr->depth--;
20898 if (flags & NDR_OUT) {
20899 ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
20900 ndr->depth++;
20901 ndr_print_ptr(ndr, "num_written", r->out.num_written);
20902 ndr->depth++;
20903 ndr_print_uint32(ndr, "num_written", *r->out.num_written);
20904 ndr->depth--;
20905 ndr_print_WERROR(ndr, "result", r->out.result);
20906 ndr->depth--;
20908 ndr->depth--;
20911 static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndPagePrinter *r)
20913 if (flags & NDR_IN) {
20914 if (r->in.handle == NULL) {
20915 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20917 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20919 if (flags & NDR_OUT) {
20920 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20922 return NDR_ERR_SUCCESS;
20925 static enum ndr_err_code ndr_pull_spoolss_EndPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndPagePrinter *r)
20927 TALLOC_CTX *_mem_save_handle_0;
20928 if (flags & NDR_IN) {
20929 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20930 NDR_PULL_ALLOC(ndr, r->in.handle);
20932 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20933 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20934 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20935 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20937 if (flags & NDR_OUT) {
20938 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20940 return NDR_ERR_SUCCESS;
20943 _PUBLIC_ void ndr_print_spoolss_EndPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndPagePrinter *r)
20945 ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
20946 ndr->depth++;
20947 if (flags & NDR_SET_VALUES) {
20948 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20950 if (flags & NDR_IN) {
20951 ndr_print_struct(ndr, "in", "spoolss_EndPagePrinter");
20952 ndr->depth++;
20953 ndr_print_ptr(ndr, "handle", r->in.handle);
20954 ndr->depth++;
20955 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20956 ndr->depth--;
20957 ndr->depth--;
20959 if (flags & NDR_OUT) {
20960 ndr_print_struct(ndr, "out", "spoolss_EndPagePrinter");
20961 ndr->depth++;
20962 ndr_print_WERROR(ndr, "result", r->out.result);
20963 ndr->depth--;
20965 ndr->depth--;
20968 static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AbortPrinter *r)
20970 if (flags & NDR_IN) {
20971 if (r->in.handle == NULL) {
20972 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20974 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20976 if (flags & NDR_OUT) {
20977 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20979 return NDR_ERR_SUCCESS;
20982 static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AbortPrinter *r)
20984 TALLOC_CTX *_mem_save_handle_0;
20985 if (flags & NDR_IN) {
20986 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20987 NDR_PULL_ALLOC(ndr, r->in.handle);
20989 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20990 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20991 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20992 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20994 if (flags & NDR_OUT) {
20995 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20997 return NDR_ERR_SUCCESS;
21000 _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AbortPrinter *r)
21002 ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
21003 ndr->depth++;
21004 if (flags & NDR_SET_VALUES) {
21005 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21007 if (flags & NDR_IN) {
21008 ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
21009 ndr->depth++;
21010 ndr_print_ptr(ndr, "handle", r->in.handle);
21011 ndr->depth++;
21012 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21013 ndr->depth--;
21014 ndr->depth--;
21016 if (flags & NDR_OUT) {
21017 ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
21018 ndr->depth++;
21019 ndr_print_WERROR(ndr, "result", r->out.result);
21020 ndr->depth--;
21022 ndr->depth--;
21025 static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReadPrinter *r)
21027 if (flags & NDR_IN) {
21028 if (r->in.handle == NULL) {
21029 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21031 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21032 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
21034 if (flags & NDR_OUT) {
21035 if (r->out.data == NULL) {
21036 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21038 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
21039 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
21040 if (r->out._data_size == NULL) {
21041 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21043 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
21044 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21046 return NDR_ERR_SUCCESS;
21049 static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReadPrinter *r)
21051 TALLOC_CTX *_mem_save_handle_0;
21052 TALLOC_CTX *_mem_save__data_size_0;
21053 if (flags & NDR_IN) {
21054 ZERO_STRUCT(r->out);
21056 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21057 NDR_PULL_ALLOC(ndr, r->in.handle);
21059 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21060 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21061 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21062 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21063 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
21064 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
21065 memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
21066 NDR_PULL_ALLOC(ndr, r->out._data_size);
21067 ZERO_STRUCTP(r->out._data_size);
21069 if (flags & NDR_OUT) {
21070 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
21071 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21072 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
21074 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
21075 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21076 NDR_PULL_ALLOC(ndr, r->out._data_size);
21078 _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
21079 NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
21080 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
21081 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
21082 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21083 if (r->out.data) {
21084 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_size));
21087 return NDR_ERR_SUCCESS;
21090 _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReadPrinter *r)
21092 ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
21093 ndr->depth++;
21094 if (flags & NDR_SET_VALUES) {
21095 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21097 if (flags & NDR_IN) {
21098 ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
21099 ndr->depth++;
21100 ndr_print_ptr(ndr, "handle", r->in.handle);
21101 ndr->depth++;
21102 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21103 ndr->depth--;
21104 ndr_print_uint32(ndr, "data_size", r->in.data_size);
21105 ndr->depth--;
21107 if (flags & NDR_OUT) {
21108 ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
21109 ndr->depth++;
21110 ndr_print_ptr(ndr, "data", r->out.data);
21111 ndr->depth++;
21112 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
21113 ndr->depth--;
21114 ndr_print_ptr(ndr, "_data_size", r->out._data_size);
21115 ndr->depth++;
21116 ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
21117 ndr->depth--;
21118 ndr_print_WERROR(ndr, "result", r->out.result);
21119 ndr->depth--;
21121 ndr->depth--;
21124 static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndDocPrinter *r)
21126 if (flags & NDR_IN) {
21127 if (r->in.handle == NULL) {
21128 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21130 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21132 if (flags & NDR_OUT) {
21133 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21135 return NDR_ERR_SUCCESS;
21138 static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndDocPrinter *r)
21140 TALLOC_CTX *_mem_save_handle_0;
21141 if (flags & NDR_IN) {
21142 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21143 NDR_PULL_ALLOC(ndr, r->in.handle);
21145 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21146 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21147 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21148 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21150 if (flags & NDR_OUT) {
21151 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21153 return NDR_ERR_SUCCESS;
21156 _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndDocPrinter *r)
21158 ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
21159 ndr->depth++;
21160 if (flags & NDR_SET_VALUES) {
21161 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21163 if (flags & NDR_IN) {
21164 ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
21165 ndr->depth++;
21166 ndr_print_ptr(ndr, "handle", r->in.handle);
21167 ndr->depth++;
21168 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21169 ndr->depth--;
21170 ndr->depth--;
21172 if (flags & NDR_OUT) {
21173 ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
21174 ndr->depth++;
21175 ndr_print_WERROR(ndr, "result", r->out.result);
21176 ndr->depth--;
21178 ndr->depth--;
21181 static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, int flags, const struct spoolss_AddJob *r)
21183 if (flags & NDR_IN) {
21184 if (r->in.handle == NULL) {
21185 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21187 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21188 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21189 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21190 if (r->in.buffer) {
21191 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21192 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
21194 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21196 if (flags & NDR_OUT) {
21197 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
21198 if (r->out.buffer) {
21199 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21200 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
21202 if (r->out.needed == NULL) {
21203 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21205 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21206 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21208 return NDR_ERR_SUCCESS;
21211 static enum ndr_err_code ndr_pull_spoolss_AddJob(struct ndr_pull *ndr, int flags, struct spoolss_AddJob *r)
21213 uint32_t _ptr_buffer;
21214 TALLOC_CTX *_mem_save_handle_0;
21215 TALLOC_CTX *_mem_save_buffer_0;
21216 TALLOC_CTX *_mem_save_needed_0;
21217 if (flags & NDR_IN) {
21218 ZERO_STRUCT(r->out);
21220 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21221 NDR_PULL_ALLOC(ndr, r->in.handle);
21223 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21224 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21225 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21226 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21227 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21228 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21229 if (_ptr_buffer) {
21230 NDR_PULL_ALLOC(ndr, r->in.buffer);
21231 } else {
21232 r->in.buffer = NULL;
21234 if (r->in.buffer) {
21235 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21236 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21237 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
21238 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
21239 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
21240 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21242 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21243 NDR_PULL_ALLOC(ndr, r->out.needed);
21244 ZERO_STRUCTP(r->out.needed);
21245 if (r->in.buffer) {
21246 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
21249 if (flags & NDR_OUT) {
21250 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21251 if (_ptr_buffer) {
21252 NDR_PULL_ALLOC(ndr, r->out.buffer);
21253 } else {
21254 r->out.buffer = NULL;
21256 if (r->out.buffer) {
21257 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21258 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
21259 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
21260 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
21261 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
21262 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21264 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21265 NDR_PULL_ALLOC(ndr, r->out.needed);
21267 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21268 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21269 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21270 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21271 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21272 if (r->out.buffer) {
21273 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
21276 return NDR_ERR_SUCCESS;
21279 _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r)
21281 ndr_print_struct(ndr, name, "spoolss_AddJob");
21282 ndr->depth++;
21283 if (flags & NDR_SET_VALUES) {
21284 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21286 if (flags & NDR_IN) {
21287 ndr_print_struct(ndr, "in", "spoolss_AddJob");
21288 ndr->depth++;
21289 ndr_print_ptr(ndr, "handle", r->in.handle);
21290 ndr->depth++;
21291 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21292 ndr->depth--;
21293 ndr_print_uint32(ndr, "level", r->in.level);
21294 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21295 ndr->depth++;
21296 if (r->in.buffer) {
21297 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
21299 ndr->depth--;
21300 ndr_print_uint32(ndr, "offered", r->in.offered);
21301 ndr->depth--;
21303 if (flags & NDR_OUT) {
21304 ndr_print_struct(ndr, "out", "spoolss_AddJob");
21305 ndr->depth++;
21306 ndr_print_ptr(ndr, "buffer", r->out.buffer);
21307 ndr->depth++;
21308 if (r->out.buffer) {
21309 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
21311 ndr->depth--;
21312 ndr_print_ptr(ndr, "needed", r->out.needed);
21313 ndr->depth++;
21314 ndr_print_uint32(ndr, "needed", *r->out.needed);
21315 ndr->depth--;
21316 ndr_print_WERROR(ndr, "result", r->out.result);
21317 ndr->depth--;
21319 ndr->depth--;
21322 static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, int flags, const struct spoolss_ScheduleJob *r)
21324 if (flags & NDR_IN) {
21325 if (r->in.handle == NULL) {
21326 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21328 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21329 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
21331 if (flags & NDR_OUT) {
21332 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21334 return NDR_ERR_SUCCESS;
21337 static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, int flags, struct spoolss_ScheduleJob *r)
21339 TALLOC_CTX *_mem_save_handle_0;
21340 if (flags & NDR_IN) {
21341 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21342 NDR_PULL_ALLOC(ndr, r->in.handle);
21344 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21345 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21346 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21347 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21348 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.jobid));
21350 if (flags & NDR_OUT) {
21351 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21353 return NDR_ERR_SUCCESS;
21356 _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ScheduleJob *r)
21358 ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
21359 ndr->depth++;
21360 if (flags & NDR_SET_VALUES) {
21361 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21363 if (flags & NDR_IN) {
21364 ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
21365 ndr->depth++;
21366 ndr_print_ptr(ndr, "handle", r->in.handle);
21367 ndr->depth++;
21368 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21369 ndr->depth--;
21370 ndr_print_uint32(ndr, "jobid", r->in.jobid);
21371 ndr->depth--;
21373 if (flags & NDR_OUT) {
21374 ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
21375 ndr->depth++;
21376 ndr_print_WERROR(ndr, "result", r->out.result);
21377 ndr->depth--;
21379 ndr->depth--;
21382 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterData *r)
21384 if (flags & NDR_IN) {
21385 if (r->in.handle == NULL) {
21386 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21388 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21389 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21390 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21391 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21392 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));
21393 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21395 if (flags & NDR_OUT) {
21396 if (r->out.type == NULL) {
21397 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21399 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, *r->out.type));
21400 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
21401 if (r->out.needed == NULL) {
21402 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21404 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21405 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21407 return NDR_ERR_SUCCESS;
21410 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterData *r)
21412 TALLOC_CTX *_mem_save_handle_0;
21413 TALLOC_CTX *_mem_save_type_0;
21414 TALLOC_CTX *_mem_save_needed_0;
21415 if (flags & NDR_IN) {
21416 ZERO_STRUCT(r->out);
21418 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21419 NDR_PULL_ALLOC(ndr, r->in.handle);
21421 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21422 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21423 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21424 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21425 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
21426 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
21427 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
21428 return 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));
21430 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
21431 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));
21432 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21433 NDR_PULL_ALLOC(ndr, r->out.type);
21434 ZERO_STRUCTP(r->out.type);
21435 NDR_PULL_ALLOC(ndr, r->out.needed);
21436 ZERO_STRUCTP(r->out.needed);
21438 if (flags & NDR_OUT) {
21439 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21440 NDR_PULL_ALLOC(ndr, r->out.type);
21442 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
21443 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
21444 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->out.type));
21445 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
21446 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->out.data));
21447 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21448 NDR_PULL_ALLOC(ndr, r->out.needed);
21450 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21451 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21452 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21453 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21454 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21456 return NDR_ERR_SUCCESS;
21459 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterData *r)
21461 if (flags & NDR_IN) {
21462 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
21464 if (flags & NDR_OUT) {
21465 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.data, r->in.type));
21466 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
21468 return NDR_ERR_SUCCESS;
21471 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterData *r)
21473 if (flags & NDR_IN) {
21474 ZERO_STRUCT(r->out);
21476 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, &r->in.type));
21478 if (flags & NDR_OUT) {
21479 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.data, r->in.type));
21480 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
21482 return NDR_ERR_SUCCESS;
21485 _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterData *r)
21487 ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
21488 ndr->depth++;
21489 if (flags & NDR_SET_VALUES) {
21490 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21492 if (flags & NDR_IN) {
21493 ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
21494 ndr->depth++;
21495 ndr_print_ptr(ndr, "handle", r->in.handle);
21496 ndr->depth++;
21497 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21498 ndr->depth--;
21499 ndr_print_string(ndr, "value_name", r->in.value_name);
21500 ndr_print_uint32(ndr, "offered", r->in.offered);
21501 ndr->depth--;
21503 if (flags & NDR_OUT) {
21504 ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
21505 ndr->depth++;
21506 ndr_print_ptr(ndr, "type", r->out.type);
21507 ndr->depth++;
21508 ndr_print_spoolss_PrinterDataType(ndr, "type", *r->out.type);
21509 ndr->depth--;
21510 ndr_print_set_switch_value(ndr, &r->out.data, *r->out.type);
21511 ndr_print_spoolss_PrinterData(ndr, "data", &r->out.data);
21512 ndr_print_ptr(ndr, "needed", r->out.needed);
21513 ndr->depth++;
21514 ndr_print_uint32(ndr, "needed", *r->out.needed);
21515 ndr->depth--;
21516 ndr_print_WERROR(ndr, "result", r->out.result);
21517 ndr->depth--;
21519 ndr->depth--;
21522 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterData *r)
21524 if (flags & NDR_IN) {
21525 if (r->in.handle == NULL) {
21526 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21528 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21529 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21530 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21531 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21532 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));
21533 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
21534 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
21535 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
21537 if (flags & NDR_OUT) {
21538 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21540 return NDR_ERR_SUCCESS;
21543 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterData *r)
21545 if (flags & NDR_IN) {
21546 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
21548 if (flags & NDR_OUT) {
21549 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.data, r->in.type));
21550 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
21552 return NDR_ERR_SUCCESS;
21555 static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterData *r)
21557 TALLOC_CTX *_mem_save_handle_0;
21558 if (flags & NDR_IN) {
21559 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21560 NDR_PULL_ALLOC(ndr, r->in.handle);
21562 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21563 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21564 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21565 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21566 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
21567 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
21568 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
21569 return 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));
21571 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
21572 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));
21573 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, &r->in.type));
21575 struct ndr_pull *_ndr_data;
21576 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
21577 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
21578 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
21579 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
21581 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
21583 if (flags & NDR_OUT) {
21584 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21586 return NDR_ERR_SUCCESS;
21589 _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r)
21591 ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
21592 ndr->depth++;
21593 if (flags & NDR_SET_VALUES) {
21594 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21596 if (flags & NDR_IN) {
21597 ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
21598 ndr->depth++;
21599 ndr_print_ptr(ndr, "handle", r->in.handle);
21600 ndr->depth++;
21601 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21602 ndr->depth--;
21603 ndr_print_string(ndr, "value_name", r->in.value_name);
21604 ndr_print_spoolss_PrinterDataType(ndr, "type", r->in.type);
21605 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
21606 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
21607 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);
21608 ndr->depth--;
21610 if (flags & NDR_OUT) {
21611 ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
21612 ndr->depth++;
21613 ndr_print_WERROR(ndr, "result", r->out.result);
21614 ndr->depth--;
21616 ndr->depth--;
21619 static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, int flags, const struct spoolss_WaitForPrinterChange *r)
21621 if (flags & NDR_IN) {
21623 if (flags & NDR_OUT) {
21624 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21626 return NDR_ERR_SUCCESS;
21629 static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, int flags, struct spoolss_WaitForPrinterChange *r)
21631 if (flags & NDR_IN) {
21633 if (flags & NDR_OUT) {
21634 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21636 return NDR_ERR_SUCCESS;
21639 _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r)
21641 ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
21642 ndr->depth++;
21643 if (flags & NDR_SET_VALUES) {
21644 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21646 if (flags & NDR_IN) {
21647 ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
21648 ndr->depth++;
21649 ndr->depth--;
21651 if (flags & NDR_OUT) {
21652 ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
21653 ndr->depth++;
21654 ndr_print_WERROR(ndr, "result", r->out.result);
21655 ndr->depth--;
21657 ndr->depth--;
21660 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ClosePrinter *r)
21662 if (flags & NDR_IN) {
21663 if (r->in.handle == NULL) {
21664 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21666 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21668 if (flags & NDR_OUT) {
21669 if (r->out.handle == NULL) {
21670 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21672 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21673 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21675 return NDR_ERR_SUCCESS;
21678 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ClosePrinter *r)
21680 TALLOC_CTX *_mem_save_handle_0;
21681 if (flags & NDR_IN) {
21682 ZERO_STRUCT(r->out);
21684 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21685 NDR_PULL_ALLOC(ndr, r->in.handle);
21687 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21688 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21689 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21690 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21691 NDR_PULL_ALLOC(ndr, r->out.handle);
21692 *r->out.handle = *r->in.handle;
21694 if (flags & NDR_OUT) {
21695 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21696 NDR_PULL_ALLOC(ndr, r->out.handle);
21698 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21699 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
21700 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21701 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21702 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21704 return NDR_ERR_SUCCESS;
21707 _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ClosePrinter *r)
21709 ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
21710 ndr->depth++;
21711 if (flags & NDR_SET_VALUES) {
21712 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21714 if (flags & NDR_IN) {
21715 ndr_print_struct(ndr, "in", "spoolss_ClosePrinter");
21716 ndr->depth++;
21717 ndr_print_ptr(ndr, "handle", r->in.handle);
21718 ndr->depth++;
21719 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21720 ndr->depth--;
21721 ndr->depth--;
21723 if (flags & NDR_OUT) {
21724 ndr_print_struct(ndr, "out", "spoolss_ClosePrinter");
21725 ndr->depth++;
21726 ndr_print_ptr(ndr, "handle", r->out.handle);
21727 ndr->depth++;
21728 ndr_print_policy_handle(ndr, "handle", r->out.handle);
21729 ndr->depth--;
21730 ndr_print_WERROR(ndr, "result", r->out.result);
21731 ndr->depth--;
21733 ndr->depth--;
21736 static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, int flags, const struct spoolss_AddForm *r)
21738 if (flags & NDR_IN) {
21739 if (r->in.handle == NULL) {
21740 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21742 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21743 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21744 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
21745 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
21747 if (flags & NDR_OUT) {
21748 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21750 return NDR_ERR_SUCCESS;
21753 static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, int flags, struct spoolss_AddForm *r)
21755 TALLOC_CTX *_mem_save_handle_0;
21756 if (flags & NDR_IN) {
21757 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21758 NDR_PULL_ALLOC(ndr, r->in.handle);
21760 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21761 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21762 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21763 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21764 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21765 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
21766 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
21768 if (flags & NDR_OUT) {
21769 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21771 return NDR_ERR_SUCCESS;
21774 _PUBLIC_ void ndr_print_spoolss_AddForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddForm *r)
21776 ndr_print_struct(ndr, name, "spoolss_AddForm");
21777 ndr->depth++;
21778 if (flags & NDR_SET_VALUES) {
21779 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21781 if (flags & NDR_IN) {
21782 ndr_print_struct(ndr, "in", "spoolss_AddForm");
21783 ndr->depth++;
21784 ndr_print_ptr(ndr, "handle", r->in.handle);
21785 ndr->depth++;
21786 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21787 ndr->depth--;
21788 ndr_print_uint32(ndr, "level", r->in.level);
21789 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
21790 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
21791 ndr->depth--;
21793 if (flags & NDR_OUT) {
21794 ndr_print_struct(ndr, "out", "spoolss_AddForm");
21795 ndr->depth++;
21796 ndr_print_WERROR(ndr, "result", r->out.result);
21797 ndr->depth--;
21799 ndr->depth--;
21802 static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, int flags, const struct spoolss_DeleteForm *r)
21804 if (flags & NDR_IN) {
21805 if (r->in.handle == NULL) {
21806 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21808 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21809 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
21810 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21811 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
21812 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));
21814 if (flags & NDR_OUT) {
21815 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21817 return NDR_ERR_SUCCESS;
21820 static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, int flags, struct spoolss_DeleteForm *r)
21822 TALLOC_CTX *_mem_save_handle_0;
21823 if (flags & NDR_IN) {
21824 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21825 NDR_PULL_ALLOC(ndr, r->in.handle);
21827 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21828 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21829 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21830 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21831 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
21832 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
21833 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
21834 return 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));
21836 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
21837 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));
21839 if (flags & NDR_OUT) {
21840 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21842 return NDR_ERR_SUCCESS;
21845 _PUBLIC_ void ndr_print_spoolss_DeleteForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteForm *r)
21847 ndr_print_struct(ndr, name, "spoolss_DeleteForm");
21848 ndr->depth++;
21849 if (flags & NDR_SET_VALUES) {
21850 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21852 if (flags & NDR_IN) {
21853 ndr_print_struct(ndr, "in", "spoolss_DeleteForm");
21854 ndr->depth++;
21855 ndr_print_ptr(ndr, "handle", r->in.handle);
21856 ndr->depth++;
21857 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21858 ndr->depth--;
21859 ndr_print_string(ndr, "form_name", r->in.form_name);
21860 ndr->depth--;
21862 if (flags & NDR_OUT) {
21863 ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
21864 ndr->depth++;
21865 ndr_print_WERROR(ndr, "result", r->out.result);
21866 ndr->depth--;
21868 ndr->depth--;
21871 static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, int flags, const struct spoolss_GetForm *r)
21873 if (flags & NDR_IN) {
21874 if (r->in.handle == NULL) {
21875 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21877 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21878 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
21879 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21880 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
21881 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));
21882 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21883 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21884 if (r->in.buffer) {
21885 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21887 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21889 if (flags & NDR_OUT) {
21890 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21891 if (r->out.info) {
21893 struct ndr_push *_ndr_info;
21894 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21895 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21896 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21897 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21900 if (r->out.needed == NULL) {
21901 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21903 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21904 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21906 return NDR_ERR_SUCCESS;
21909 static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, int flags, struct spoolss_GetForm *r)
21911 uint32_t _ptr_buffer;
21912 uint32_t _ptr_info;
21913 TALLOC_CTX *_mem_save_handle_0;
21914 TALLOC_CTX *_mem_save_buffer_0;
21915 TALLOC_CTX *_mem_save_info_0;
21916 TALLOC_CTX *_mem_save_needed_0;
21917 if (flags & NDR_IN) {
21918 ZERO_STRUCT(r->out);
21920 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21921 NDR_PULL_ALLOC(ndr, r->in.handle);
21923 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21924 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21925 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21926 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21927 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
21928 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
21929 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
21930 return 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));
21932 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
21933 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));
21934 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21935 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21936 if (_ptr_buffer) {
21937 NDR_PULL_ALLOC(ndr, r->in.buffer);
21938 } else {
21939 r->in.buffer = NULL;
21941 if (r->in.buffer) {
21942 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21943 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21944 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21945 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21947 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21948 NDR_PULL_ALLOC(ndr, r->out.needed);
21949 ZERO_STRUCTP(r->out.needed);
21951 if (flags & NDR_OUT) {
21952 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21953 if (_ptr_info) {
21954 NDR_PULL_ALLOC(ndr, r->out.info);
21955 } else {
21956 r->out.info = NULL;
21958 if (r->out.info) {
21959 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21960 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21962 struct ndr_pull *_ndr_info;
21963 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21964 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21965 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21966 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21968 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21970 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21971 NDR_PULL_ALLOC(ndr, r->out.needed);
21973 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21974 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21975 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21976 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21977 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21979 return NDR_ERR_SUCCESS;
21982 _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetForm *r)
21984 ndr_print_struct(ndr, name, "spoolss_GetForm");
21985 ndr->depth++;
21986 if (flags & NDR_SET_VALUES) {
21987 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21989 if (flags & NDR_IN) {
21990 ndr_print_struct(ndr, "in", "spoolss_GetForm");
21991 ndr->depth++;
21992 ndr_print_ptr(ndr, "handle", r->in.handle);
21993 ndr->depth++;
21994 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21995 ndr->depth--;
21996 ndr_print_string(ndr, "form_name", r->in.form_name);
21997 ndr_print_uint32(ndr, "level", r->in.level);
21998 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21999 ndr->depth++;
22000 if (r->in.buffer) {
22001 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22003 ndr->depth--;
22004 ndr_print_uint32(ndr, "offered", r->in.offered);
22005 ndr->depth--;
22007 if (flags & NDR_OUT) {
22008 ndr_print_struct(ndr, "out", "spoolss_GetForm");
22009 ndr->depth++;
22010 ndr_print_ptr(ndr, "info", r->out.info);
22011 ndr->depth++;
22012 if (r->out.info) {
22013 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
22014 ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
22016 ndr->depth--;
22017 ndr_print_ptr(ndr, "needed", r->out.needed);
22018 ndr->depth++;
22019 ndr_print_uint32(ndr, "needed", *r->out.needed);
22020 ndr->depth--;
22021 ndr_print_WERROR(ndr, "result", r->out.result);
22022 ndr->depth--;
22024 ndr->depth--;
22027 static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, int flags, const struct spoolss_SetForm *r)
22029 if (flags & NDR_IN) {
22030 if (r->in.handle == NULL) {
22031 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22033 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22034 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22035 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22036 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22037 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));
22038 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22039 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
22040 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22042 if (flags & NDR_OUT) {
22043 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22045 return NDR_ERR_SUCCESS;
22048 static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, int flags, struct spoolss_SetForm *r)
22050 TALLOC_CTX *_mem_save_handle_0;
22051 if (flags & NDR_IN) {
22052 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22053 NDR_PULL_ALLOC(ndr, r->in.handle);
22055 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22056 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22057 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22058 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22059 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
22060 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
22061 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
22062 return 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));
22064 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
22065 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));
22066 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22067 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
22068 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22070 if (flags & NDR_OUT) {
22071 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22073 return NDR_ERR_SUCCESS;
22076 _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetForm *r)
22078 ndr_print_struct(ndr, name, "spoolss_SetForm");
22079 ndr->depth++;
22080 if (flags & NDR_SET_VALUES) {
22081 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22083 if (flags & NDR_IN) {
22084 ndr_print_struct(ndr, "in", "spoolss_SetForm");
22085 ndr->depth++;
22086 ndr_print_ptr(ndr, "handle", r->in.handle);
22087 ndr->depth++;
22088 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22089 ndr->depth--;
22090 ndr_print_string(ndr, "form_name", r->in.form_name);
22091 ndr_print_uint32(ndr, "level", r->in.level);
22092 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
22093 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
22094 ndr->depth--;
22096 if (flags & NDR_OUT) {
22097 ndr_print_struct(ndr, "out", "spoolss_SetForm");
22098 ndr->depth++;
22099 ndr_print_WERROR(ndr, "result", r->out.result);
22100 ndr->depth--;
22102 ndr->depth--;
22105 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct _spoolss_EnumForms *r)
22107 if (flags & NDR_IN) {
22108 if (r->in.handle == NULL) {
22109 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22111 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22112 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22113 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22114 if (r->in.buffer) {
22115 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22117 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22119 if (flags & NDR_OUT) {
22120 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22121 if (r->out.info) {
22122 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
22124 if (r->out.needed == NULL) {
22125 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22127 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22128 if (r->out.count == NULL) {
22129 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22131 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22132 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22134 return NDR_ERR_SUCCESS;
22137 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct _spoolss_EnumForms *r)
22139 uint32_t _ptr_buffer;
22140 uint32_t _ptr_info;
22141 TALLOC_CTX *_mem_save_handle_0;
22142 TALLOC_CTX *_mem_save_buffer_0;
22143 TALLOC_CTX *_mem_save_info_0;
22144 TALLOC_CTX *_mem_save_needed_0;
22145 TALLOC_CTX *_mem_save_count_0;
22146 if (flags & NDR_IN) {
22147 ZERO_STRUCT(r->out);
22149 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22150 NDR_PULL_ALLOC(ndr, r->in.handle);
22152 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22153 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22154 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22155 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22156 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22157 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22158 if (_ptr_buffer) {
22159 NDR_PULL_ALLOC(ndr, r->in.buffer);
22160 } else {
22161 r->in.buffer = NULL;
22163 if (r->in.buffer) {
22164 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22165 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22166 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22167 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22169 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22170 NDR_PULL_ALLOC(ndr, r->out.needed);
22171 ZERO_STRUCTP(r->out.needed);
22172 NDR_PULL_ALLOC(ndr, r->out.count);
22173 ZERO_STRUCTP(r->out.count);
22175 if (flags & NDR_OUT) {
22176 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22177 if (_ptr_info) {
22178 NDR_PULL_ALLOC(ndr, r->out.info);
22179 } else {
22180 r->out.info = NULL;
22182 if (r->out.info) {
22183 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22184 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22185 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
22186 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22188 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22189 NDR_PULL_ALLOC(ndr, r->out.needed);
22191 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22192 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22193 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22194 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22195 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22196 NDR_PULL_ALLOC(ndr, r->out.count);
22198 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22199 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22200 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22201 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22202 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22204 return NDR_ERR_SUCCESS;
22207 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct __spoolss_EnumForms *r)
22209 uint32_t cntr_info_0;
22210 if (flags & NDR_IN) {
22211 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22212 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
22214 if (flags & NDR_OUT) {
22215 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22216 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22217 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22219 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22220 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22223 return NDR_ERR_SUCCESS;
22226 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct __spoolss_EnumForms *r)
22228 uint32_t cntr_info_0;
22229 TALLOC_CTX *_mem_save_info_0;
22230 if (flags & NDR_IN) {
22231 ZERO_STRUCT(r->out);
22233 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22234 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
22236 if (flags & NDR_OUT) {
22237 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
22238 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22239 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22240 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22241 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22242 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22244 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22245 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22247 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22249 return NDR_ERR_SUCCESS;
22252 _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumForms *r)
22254 uint32_t cntr_info_1;
22255 ndr_print_struct(ndr, name, "spoolss_EnumForms");
22256 ndr->depth++;
22257 if (flags & NDR_SET_VALUES) {
22258 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22260 if (flags & NDR_IN) {
22261 ndr_print_struct(ndr, "in", "spoolss_EnumForms");
22262 ndr->depth++;
22263 ndr_print_ptr(ndr, "handle", r->in.handle);
22264 ndr->depth++;
22265 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22266 ndr->depth--;
22267 ndr_print_uint32(ndr, "level", r->in.level);
22268 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22269 ndr->depth++;
22270 if (r->in.buffer) {
22271 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22273 ndr->depth--;
22274 ndr_print_uint32(ndr, "offered", r->in.offered);
22275 ndr->depth--;
22277 if (flags & NDR_OUT) {
22278 ndr_print_struct(ndr, "out", "spoolss_EnumForms");
22279 ndr->depth++;
22280 ndr_print_ptr(ndr, "count", r->out.count);
22281 ndr->depth++;
22282 ndr_print_uint32(ndr, "count", *r->out.count);
22283 ndr->depth--;
22284 ndr_print_ptr(ndr, "info", r->out.info);
22285 ndr->depth++;
22286 if (r->out.info) {
22287 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
22288 ndr->depth++;
22289 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
22290 char *idx_1=NULL;
22291 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
22292 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
22293 ndr_print_spoolss_FormInfo(ndr, "info", &r->out.info[cntr_info_1]);
22294 free(idx_1);
22297 ndr->depth--;
22299 ndr->depth--;
22300 ndr_print_ptr(ndr, "needed", r->out.needed);
22301 ndr->depth++;
22302 ndr_print_uint32(ndr, "needed", *r->out.needed);
22303 ndr->depth--;
22304 ndr_print_WERROR(ndr, "result", r->out.result);
22305 ndr->depth--;
22307 ndr->depth--;
22310 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPorts *r)
22312 if (flags & NDR_IN) {
22313 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
22314 if (r->in.servername) {
22315 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22316 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22317 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22318 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22320 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22321 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22322 if (r->in.buffer) {
22323 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22325 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22327 if (flags & NDR_OUT) {
22328 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22329 if (r->out.info) {
22330 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
22332 if (r->out.needed == NULL) {
22333 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22335 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22336 if (r->out.count == NULL) {
22337 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22339 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22340 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22342 return NDR_ERR_SUCCESS;
22345 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPorts *r)
22347 uint32_t _ptr_servername;
22348 uint32_t _ptr_buffer;
22349 uint32_t _ptr_info;
22350 TALLOC_CTX *_mem_save_servername_0;
22351 TALLOC_CTX *_mem_save_buffer_0;
22352 TALLOC_CTX *_mem_save_info_0;
22353 TALLOC_CTX *_mem_save_needed_0;
22354 TALLOC_CTX *_mem_save_count_0;
22355 if (flags & NDR_IN) {
22356 ZERO_STRUCT(r->out);
22358 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
22359 if (_ptr_servername) {
22360 NDR_PULL_ALLOC(ndr, r->in.servername);
22361 } else {
22362 r->in.servername = NULL;
22364 if (r->in.servername) {
22365 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
22366 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
22367 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
22368 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
22369 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
22370 return 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));
22372 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
22373 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
22374 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
22376 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22377 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22378 if (_ptr_buffer) {
22379 NDR_PULL_ALLOC(ndr, r->in.buffer);
22380 } else {
22381 r->in.buffer = NULL;
22383 if (r->in.buffer) {
22384 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22385 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22386 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22387 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22389 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22390 NDR_PULL_ALLOC(ndr, r->out.needed);
22391 ZERO_STRUCTP(r->out.needed);
22392 NDR_PULL_ALLOC(ndr, r->out.count);
22393 ZERO_STRUCTP(r->out.count);
22395 if (flags & NDR_OUT) {
22396 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22397 if (_ptr_info) {
22398 NDR_PULL_ALLOC(ndr, r->out.info);
22399 } else {
22400 r->out.info = NULL;
22402 if (r->out.info) {
22403 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22404 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22405 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
22406 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22408 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22409 NDR_PULL_ALLOC(ndr, r->out.needed);
22411 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22412 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22413 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22414 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22415 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22416 NDR_PULL_ALLOC(ndr, r->out.count);
22418 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22419 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22420 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22421 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22422 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22424 return NDR_ERR_SUCCESS;
22427 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPorts *r)
22429 uint32_t cntr_info_0;
22430 if (flags & NDR_IN) {
22431 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22432 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
22434 if (flags & NDR_OUT) {
22435 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22436 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22437 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22439 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22440 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22443 return NDR_ERR_SUCCESS;
22446 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPorts *r)
22448 uint32_t cntr_info_0;
22449 TALLOC_CTX *_mem_save_info_0;
22450 if (flags & NDR_IN) {
22451 ZERO_STRUCT(r->out);
22453 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22454 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
22456 if (flags & NDR_OUT) {
22457 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
22458 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22459 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22460 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22461 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22462 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22464 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22465 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22467 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22469 return NDR_ERR_SUCCESS;
22472 _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPorts *r)
22474 uint32_t cntr_info_1;
22475 ndr_print_struct(ndr, name, "spoolss_EnumPorts");
22476 ndr->depth++;
22477 if (flags & NDR_SET_VALUES) {
22478 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22480 if (flags & NDR_IN) {
22481 ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
22482 ndr->depth++;
22483 ndr_print_ptr(ndr, "servername", r->in.servername);
22484 ndr->depth++;
22485 if (r->in.servername) {
22486 ndr_print_string(ndr, "servername", r->in.servername);
22488 ndr->depth--;
22489 ndr_print_uint32(ndr, "level", r->in.level);
22490 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22491 ndr->depth++;
22492 if (r->in.buffer) {
22493 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22495 ndr->depth--;
22496 ndr_print_uint32(ndr, "offered", r->in.offered);
22497 ndr->depth--;
22499 if (flags & NDR_OUT) {
22500 ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
22501 ndr->depth++;
22502 ndr_print_ptr(ndr, "count", r->out.count);
22503 ndr->depth++;
22504 ndr_print_uint32(ndr, "count", *r->out.count);
22505 ndr->depth--;
22506 ndr_print_ptr(ndr, "info", r->out.info);
22507 ndr->depth++;
22508 if (r->out.info) {
22509 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
22510 ndr->depth++;
22511 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
22512 char *idx_1=NULL;
22513 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
22514 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
22515 ndr_print_spoolss_PortInfo(ndr, "info", &r->out.info[cntr_info_1]);
22516 free(idx_1);
22519 ndr->depth--;
22521 ndr->depth--;
22522 ndr_print_ptr(ndr, "needed", r->out.needed);
22523 ndr->depth++;
22524 ndr_print_uint32(ndr, "needed", *r->out.needed);
22525 ndr->depth--;
22526 ndr_print_WERROR(ndr, "result", r->out.result);
22527 ndr->depth--;
22529 ndr->depth--;
22532 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumMonitors *r)
22534 if (flags & NDR_IN) {
22535 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
22536 if (r->in.servername) {
22537 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22538 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22539 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22540 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22542 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22543 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22544 if (r->in.buffer) {
22545 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22547 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22549 if (flags & NDR_OUT) {
22550 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22551 if (r->out.info) {
22552 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
22554 if (r->out.needed == NULL) {
22555 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22557 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22558 if (r->out.count == NULL) {
22559 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22561 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22562 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22564 return NDR_ERR_SUCCESS;
22567 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumMonitors *r)
22569 uint32_t _ptr_servername;
22570 uint32_t _ptr_buffer;
22571 uint32_t _ptr_info;
22572 TALLOC_CTX *_mem_save_servername_0;
22573 TALLOC_CTX *_mem_save_buffer_0;
22574 TALLOC_CTX *_mem_save_info_0;
22575 TALLOC_CTX *_mem_save_needed_0;
22576 TALLOC_CTX *_mem_save_count_0;
22577 if (flags & NDR_IN) {
22578 ZERO_STRUCT(r->out);
22580 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
22581 if (_ptr_servername) {
22582 NDR_PULL_ALLOC(ndr, r->in.servername);
22583 } else {
22584 r->in.servername = NULL;
22586 if (r->in.servername) {
22587 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
22588 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
22589 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
22590 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
22591 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
22592 return 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));
22594 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
22595 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
22596 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
22598 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22599 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22600 if (_ptr_buffer) {
22601 NDR_PULL_ALLOC(ndr, r->in.buffer);
22602 } else {
22603 r->in.buffer = NULL;
22605 if (r->in.buffer) {
22606 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22607 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22608 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22609 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22611 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22612 NDR_PULL_ALLOC(ndr, r->out.needed);
22613 ZERO_STRUCTP(r->out.needed);
22614 NDR_PULL_ALLOC(ndr, r->out.count);
22615 ZERO_STRUCTP(r->out.count);
22617 if (flags & NDR_OUT) {
22618 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22619 if (_ptr_info) {
22620 NDR_PULL_ALLOC(ndr, r->out.info);
22621 } else {
22622 r->out.info = NULL;
22624 if (r->out.info) {
22625 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22626 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22627 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
22628 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22630 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22631 NDR_PULL_ALLOC(ndr, r->out.needed);
22633 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22634 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22635 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22636 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22637 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22638 NDR_PULL_ALLOC(ndr, r->out.count);
22640 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22641 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22642 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22643 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22644 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22646 return NDR_ERR_SUCCESS;
22649 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumMonitors *r)
22651 uint32_t cntr_info_0;
22652 if (flags & NDR_IN) {
22653 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22654 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
22656 if (flags & NDR_OUT) {
22657 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22658 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22659 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22661 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22662 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22665 return NDR_ERR_SUCCESS;
22668 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumMonitors *r)
22670 uint32_t cntr_info_0;
22671 TALLOC_CTX *_mem_save_info_0;
22672 if (flags & NDR_IN) {
22673 ZERO_STRUCT(r->out);
22675 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22676 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
22678 if (flags & NDR_OUT) {
22679 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
22680 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22681 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22682 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22683 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22684 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22686 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22687 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22689 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22691 return NDR_ERR_SUCCESS;
22694 _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumMonitors *r)
22696 uint32_t cntr_info_1;
22697 ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
22698 ndr->depth++;
22699 if (flags & NDR_SET_VALUES) {
22700 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22702 if (flags & NDR_IN) {
22703 ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
22704 ndr->depth++;
22705 ndr_print_ptr(ndr, "servername", r->in.servername);
22706 ndr->depth++;
22707 if (r->in.servername) {
22708 ndr_print_string(ndr, "servername", r->in.servername);
22710 ndr->depth--;
22711 ndr_print_uint32(ndr, "level", r->in.level);
22712 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22713 ndr->depth++;
22714 if (r->in.buffer) {
22715 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22717 ndr->depth--;
22718 ndr_print_uint32(ndr, "offered", r->in.offered);
22719 ndr->depth--;
22721 if (flags & NDR_OUT) {
22722 ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
22723 ndr->depth++;
22724 ndr_print_ptr(ndr, "count", r->out.count);
22725 ndr->depth++;
22726 ndr_print_uint32(ndr, "count", *r->out.count);
22727 ndr->depth--;
22728 ndr_print_ptr(ndr, "info", r->out.info);
22729 ndr->depth++;
22730 if (r->out.info) {
22731 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
22732 ndr->depth++;
22733 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
22734 char *idx_1=NULL;
22735 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
22736 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
22737 ndr_print_spoolss_MonitorInfo(ndr, "info", &r->out.info[cntr_info_1]);
22738 free(idx_1);
22741 ndr->depth--;
22743 ndr->depth--;
22744 ndr_print_ptr(ndr, "needed", r->out.needed);
22745 ndr->depth++;
22746 ndr_print_uint32(ndr, "needed", *r->out.needed);
22747 ndr->depth--;
22748 ndr_print_WERROR(ndr, "result", r->out.result);
22749 ndr->depth--;
22751 ndr->depth--;
22754 static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, int flags, const struct spoolss_AddPort *r)
22756 if (flags & NDR_IN) {
22757 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
22758 if (r->in.server_name) {
22759 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
22760 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22761 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
22762 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));
22764 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
22765 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
22766 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22767 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
22768 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));
22770 if (flags & NDR_OUT) {
22771 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22773 return NDR_ERR_SUCCESS;
22776 static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, int flags, struct spoolss_AddPort *r)
22778 uint32_t _ptr_server_name;
22779 TALLOC_CTX *_mem_save_server_name_0;
22780 if (flags & NDR_IN) {
22781 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
22782 if (_ptr_server_name) {
22783 NDR_PULL_ALLOC(ndr, r->in.server_name);
22784 } else {
22785 r->in.server_name = NULL;
22787 if (r->in.server_name) {
22788 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
22789 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
22790 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
22791 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
22792 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
22793 return 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));
22795 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
22796 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));
22797 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
22799 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
22800 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
22801 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
22802 if (ndr_get_array_length(ndr, &r->in.monitor_name) > ndr_get_array_size(ndr, &r->in.monitor_name)) {
22803 return 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));
22805 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t)));
22806 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));
22808 if (flags & NDR_OUT) {
22809 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22811 return NDR_ERR_SUCCESS;
22814 _PUBLIC_ void ndr_print_spoolss_AddPort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPort *r)
22816 ndr_print_struct(ndr, name, "spoolss_AddPort");
22817 ndr->depth++;
22818 if (flags & NDR_SET_VALUES) {
22819 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22821 if (flags & NDR_IN) {
22822 ndr_print_struct(ndr, "in", "spoolss_AddPort");
22823 ndr->depth++;
22824 ndr_print_ptr(ndr, "server_name", r->in.server_name);
22825 ndr->depth++;
22826 if (r->in.server_name) {
22827 ndr_print_string(ndr, "server_name", r->in.server_name);
22829 ndr->depth--;
22830 ndr_print_uint32(ndr, "unknown", r->in.unknown);
22831 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
22832 ndr->depth--;
22834 if (flags & NDR_OUT) {
22835 ndr_print_struct(ndr, "out", "spoolss_AddPort");
22836 ndr->depth++;
22837 ndr_print_WERROR(ndr, "result", r->out.result);
22838 ndr->depth--;
22840 ndr->depth--;
22843 static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, int flags, const struct spoolss_ConfigurePort *r)
22845 if (flags & NDR_IN) {
22847 if (flags & NDR_OUT) {
22848 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22850 return NDR_ERR_SUCCESS;
22853 static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, int flags, struct spoolss_ConfigurePort *r)
22855 if (flags & NDR_IN) {
22857 if (flags & NDR_OUT) {
22858 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22860 return NDR_ERR_SUCCESS;
22863 _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ConfigurePort *r)
22865 ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
22866 ndr->depth++;
22867 if (flags & NDR_SET_VALUES) {
22868 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22870 if (flags & NDR_IN) {
22871 ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
22872 ndr->depth++;
22873 ndr->depth--;
22875 if (flags & NDR_OUT) {
22876 ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
22877 ndr->depth++;
22878 ndr_print_WERROR(ndr, "result", r->out.result);
22879 ndr->depth--;
22881 ndr->depth--;
22884 static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, int flags, const struct spoolss_DeletePort *r)
22886 if (flags & NDR_IN) {
22888 if (flags & NDR_OUT) {
22889 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22891 return NDR_ERR_SUCCESS;
22894 static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, int flags, struct spoolss_DeletePort *r)
22896 if (flags & NDR_IN) {
22898 if (flags & NDR_OUT) {
22899 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22901 return NDR_ERR_SUCCESS;
22904 _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePort *r)
22906 ndr_print_struct(ndr, name, "spoolss_DeletePort");
22907 ndr->depth++;
22908 if (flags & NDR_SET_VALUES) {
22909 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22911 if (flags & NDR_IN) {
22912 ndr_print_struct(ndr, "in", "spoolss_DeletePort");
22913 ndr->depth++;
22914 ndr->depth--;
22916 if (flags & NDR_OUT) {
22917 ndr_print_struct(ndr, "out", "spoolss_DeletePort");
22918 ndr->depth++;
22919 ndr_print_WERROR(ndr, "result", r->out.result);
22920 ndr->depth--;
22922 ndr->depth--;
22925 static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_CreatePrinterIC *r)
22927 if (flags & NDR_IN) {
22929 if (flags & NDR_OUT) {
22930 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22932 return NDR_ERR_SUCCESS;
22935 static enum ndr_err_code ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_CreatePrinterIC *r)
22937 if (flags & NDR_IN) {
22939 if (flags & NDR_OUT) {
22940 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22942 return NDR_ERR_SUCCESS;
22945 _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_CreatePrinterIC *r)
22947 ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
22948 ndr->depth++;
22949 if (flags & NDR_SET_VALUES) {
22950 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22952 if (flags & NDR_IN) {
22953 ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
22954 ndr->depth++;
22955 ndr->depth--;
22957 if (flags & NDR_OUT) {
22958 ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
22959 ndr->depth++;
22960 ndr_print_WERROR(ndr, "result", r->out.result);
22961 ndr->depth--;
22963 ndr->depth--;
22966 static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
22968 if (flags & NDR_IN) {
22970 if (flags & NDR_OUT) {
22971 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22973 return NDR_ERR_SUCCESS;
22976 static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
22978 if (flags & NDR_IN) {
22980 if (flags & NDR_OUT) {
22981 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22983 return NDR_ERR_SUCCESS;
22986 _PUBLIC_ void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
22988 ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
22989 ndr->depth++;
22990 if (flags & NDR_SET_VALUES) {
22991 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22993 if (flags & NDR_IN) {
22994 ndr_print_struct(ndr, "in", "spoolss_PlayGDIScriptOnPrinterIC");
22995 ndr->depth++;
22996 ndr->depth--;
22998 if (flags & NDR_OUT) {
22999 ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
23000 ndr->depth++;
23001 ndr_print_WERROR(ndr, "result", r->out.result);
23002 ndr->depth--;
23004 ndr->depth--;
23007 static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterIC *r)
23009 if (flags & NDR_IN) {
23011 if (flags & NDR_OUT) {
23012 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23014 return NDR_ERR_SUCCESS;
23017 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterIC *r)
23019 if (flags & NDR_IN) {
23021 if (flags & NDR_OUT) {
23022 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23024 return NDR_ERR_SUCCESS;
23027 _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterIC *r)
23029 ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
23030 ndr->depth++;
23031 if (flags & NDR_SET_VALUES) {
23032 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23034 if (flags & NDR_IN) {
23035 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
23036 ndr->depth++;
23037 ndr->depth--;
23039 if (flags & NDR_OUT) {
23040 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
23041 ndr->depth++;
23042 ndr_print_WERROR(ndr, "result", r->out.result);
23043 ndr->depth--;
23045 ndr->depth--;
23048 static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterConnection *r)
23050 if (flags & NDR_IN) {
23052 if (flags & NDR_OUT) {
23053 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23055 return NDR_ERR_SUCCESS;
23058 static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterConnection *r)
23060 if (flags & NDR_IN) {
23062 if (flags & NDR_OUT) {
23063 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23065 return NDR_ERR_SUCCESS;
23068 _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterConnection *r)
23070 ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
23071 ndr->depth++;
23072 if (flags & NDR_SET_VALUES) {
23073 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23075 if (flags & NDR_IN) {
23076 ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
23077 ndr->depth++;
23078 ndr->depth--;
23080 if (flags & NDR_OUT) {
23081 ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
23082 ndr->depth++;
23083 ndr_print_WERROR(ndr, "result", r->out.result);
23084 ndr->depth--;
23086 ndr->depth--;
23089 static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterConnection *r)
23091 if (flags & NDR_IN) {
23093 if (flags & NDR_OUT) {
23094 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23096 return NDR_ERR_SUCCESS;
23099 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterConnection *r)
23101 if (flags & NDR_IN) {
23103 if (flags & NDR_OUT) {
23104 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23106 return NDR_ERR_SUCCESS;
23109 _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterConnection *r)
23111 ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
23112 ndr->depth++;
23113 if (flags & NDR_SET_VALUES) {
23114 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23116 if (flags & NDR_IN) {
23117 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
23118 ndr->depth++;
23119 ndr->depth--;
23121 if (flags & NDR_OUT) {
23122 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
23123 ndr->depth++;
23124 ndr_print_WERROR(ndr, "result", r->out.result);
23125 ndr->depth--;
23127 ndr->depth--;
23130 static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, int flags, const struct spoolss_PrinterMessageBox *r)
23132 if (flags & NDR_IN) {
23134 if (flags & NDR_OUT) {
23135 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23137 return NDR_ERR_SUCCESS;
23140 static enum ndr_err_code ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull *ndr, int flags, struct spoolss_PrinterMessageBox *r)
23142 if (flags & NDR_IN) {
23144 if (flags & NDR_OUT) {
23145 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23147 return NDR_ERR_SUCCESS;
23150 _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PrinterMessageBox *r)
23152 ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
23153 ndr->depth++;
23154 if (flags & NDR_SET_VALUES) {
23155 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23157 if (flags & NDR_IN) {
23158 ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
23159 ndr->depth++;
23160 ndr->depth--;
23162 if (flags & NDR_OUT) {
23163 ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
23164 ndr->depth++;
23165 ndr_print_WERROR(ndr, "result", r->out.result);
23166 ndr->depth--;
23168 ndr->depth--;
23171 static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, int flags, const struct spoolss_AddMonitor *r)
23173 if (flags & NDR_IN) {
23175 if (flags & NDR_OUT) {
23176 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23178 return NDR_ERR_SUCCESS;
23181 static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, int flags, struct spoolss_AddMonitor *r)
23183 if (flags & NDR_IN) {
23185 if (flags & NDR_OUT) {
23186 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23188 return NDR_ERR_SUCCESS;
23191 _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddMonitor *r)
23193 ndr_print_struct(ndr, name, "spoolss_AddMonitor");
23194 ndr->depth++;
23195 if (flags & NDR_SET_VALUES) {
23196 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23198 if (flags & NDR_IN) {
23199 ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
23200 ndr->depth++;
23201 ndr->depth--;
23203 if (flags & NDR_OUT) {
23204 ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
23205 ndr->depth++;
23206 ndr_print_WERROR(ndr, "result", r->out.result);
23207 ndr->depth--;
23209 ndr->depth--;
23212 static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, int flags, const struct spoolss_DeleteMonitor *r)
23214 if (flags & NDR_IN) {
23216 if (flags & NDR_OUT) {
23217 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23219 return NDR_ERR_SUCCESS;
23222 static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, int flags, struct spoolss_DeleteMonitor *r)
23224 if (flags & NDR_IN) {
23226 if (flags & NDR_OUT) {
23227 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23229 return NDR_ERR_SUCCESS;
23232 _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteMonitor *r)
23234 ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
23235 ndr->depth++;
23236 if (flags & NDR_SET_VALUES) {
23237 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23239 if (flags & NDR_IN) {
23240 ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
23241 ndr->depth++;
23242 ndr->depth--;
23244 if (flags & NDR_OUT) {
23245 ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
23246 ndr->depth++;
23247 ndr_print_WERROR(ndr, "result", r->out.result);
23248 ndr->depth--;
23250 ndr->depth--;
23253 static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProcessor *r)
23255 if (flags & NDR_IN) {
23257 if (flags & NDR_OUT) {
23258 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23260 return NDR_ERR_SUCCESS;
23263 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProcessor *r)
23265 if (flags & NDR_IN) {
23267 if (flags & NDR_OUT) {
23268 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23270 return NDR_ERR_SUCCESS;
23273 _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProcessor *r)
23275 ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
23276 ndr->depth++;
23277 if (flags & NDR_SET_VALUES) {
23278 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23280 if (flags & NDR_IN) {
23281 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
23282 ndr->depth++;
23283 ndr->depth--;
23285 if (flags & NDR_OUT) {
23286 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
23287 ndr->depth++;
23288 ndr_print_WERROR(ndr, "result", r->out.result);
23289 ndr->depth--;
23291 ndr->depth--;
23294 static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProvidor *r)
23296 if (flags & NDR_IN) {
23298 if (flags & NDR_OUT) {
23299 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23301 return NDR_ERR_SUCCESS;
23304 static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProvidor *r)
23306 if (flags & NDR_IN) {
23308 if (flags & NDR_OUT) {
23309 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23311 return NDR_ERR_SUCCESS;
23314 _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProvidor *r)
23316 ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
23317 ndr->depth++;
23318 if (flags & NDR_SET_VALUES) {
23319 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23321 if (flags & NDR_IN) {
23322 ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
23323 ndr->depth++;
23324 ndr->depth--;
23326 if (flags & NDR_OUT) {
23327 ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
23328 ndr->depth++;
23329 ndr_print_WERROR(ndr, "result", r->out.result);
23330 ndr->depth--;
23332 ndr->depth--;
23335 static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProvidor *r)
23337 if (flags & NDR_IN) {
23339 if (flags & NDR_OUT) {
23340 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23342 return NDR_ERR_SUCCESS;
23345 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProvidor *r)
23347 if (flags & NDR_IN) {
23349 if (flags & NDR_OUT) {
23350 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23352 return NDR_ERR_SUCCESS;
23355 _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProvidor *r)
23357 ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
23358 ndr->depth++;
23359 if (flags & NDR_SET_VALUES) {
23360 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23362 if (flags & NDR_IN) {
23363 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
23364 ndr->depth++;
23365 ndr->depth--;
23367 if (flags & NDR_OUT) {
23368 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
23369 ndr->depth++;
23370 ndr_print_WERROR(ndr, "result", r->out.result);
23371 ndr->depth--;
23373 ndr->depth--;
23376 static enum ndr_err_code ndr_push_spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
23378 if (flags & NDR_IN) {
23380 if (flags & NDR_OUT) {
23381 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23383 return NDR_ERR_SUCCESS;
23386 static enum ndr_err_code ndr_pull_spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrintProcDataTypes *r)
23388 if (flags & NDR_IN) {
23390 if (flags & NDR_OUT) {
23391 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23393 return NDR_ERR_SUCCESS;
23396 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
23398 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcDataTypes");
23399 ndr->depth++;
23400 if (flags & NDR_SET_VALUES) {
23401 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23403 if (flags & NDR_IN) {
23404 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcDataTypes");
23405 ndr->depth++;
23406 ndr->depth--;
23408 if (flags & NDR_OUT) {
23409 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcDataTypes");
23410 ndr->depth++;
23411 ndr_print_WERROR(ndr, "result", r->out.result);
23412 ndr->depth--;
23414 ndr->depth--;
23417 static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinter *r)
23419 if (flags & NDR_IN) {
23420 if (r->in.handle == NULL) {
23421 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23423 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23424 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_type));
23425 if (r->in.data_type) {
23426 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
23427 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23428 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
23429 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));
23431 if (r->in.devmode_ctr == NULL) {
23432 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23434 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
23436 if (flags & NDR_OUT) {
23437 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23439 return NDR_ERR_SUCCESS;
23442 static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinter *r)
23444 uint32_t _ptr_data_type;
23445 TALLOC_CTX *_mem_save_handle_0;
23446 TALLOC_CTX *_mem_save_data_type_0;
23447 TALLOC_CTX *_mem_save_devmode_ctr_0;
23448 if (flags & NDR_IN) {
23449 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23450 NDR_PULL_ALLOC(ndr, r->in.handle);
23452 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23453 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23454 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23455 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23456 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
23457 if (_ptr_data_type) {
23458 NDR_PULL_ALLOC(ndr, r->in.data_type);
23459 } else {
23460 r->in.data_type = NULL;
23462 if (r->in.data_type) {
23463 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
23464 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
23465 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
23466 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
23467 if (ndr_get_array_length(ndr, &r->in.data_type) > ndr_get_array_size(ndr, &r->in.data_type)) {
23468 return 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));
23470 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t)));
23471 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));
23472 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
23474 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23475 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
23477 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
23478 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
23479 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
23480 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
23482 if (flags & NDR_OUT) {
23483 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23485 return NDR_ERR_SUCCESS;
23488 _PUBLIC_ void ndr_print_spoolss_ResetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinter *r)
23490 ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
23491 ndr->depth++;
23492 if (flags & NDR_SET_VALUES) {
23493 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23495 if (flags & NDR_IN) {
23496 ndr_print_struct(ndr, "in", "spoolss_ResetPrinter");
23497 ndr->depth++;
23498 ndr_print_ptr(ndr, "handle", r->in.handle);
23499 ndr->depth++;
23500 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23501 ndr->depth--;
23502 ndr_print_ptr(ndr, "data_type", r->in.data_type);
23503 ndr->depth++;
23504 if (r->in.data_type) {
23505 ndr_print_string(ndr, "data_type", r->in.data_type);
23507 ndr->depth--;
23508 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
23509 ndr->depth++;
23510 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
23511 ndr->depth--;
23512 ndr->depth--;
23514 if (flags & NDR_OUT) {
23515 ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
23516 ndr->depth++;
23517 ndr_print_WERROR(ndr, "result", r->out.result);
23518 ndr->depth--;
23520 ndr->depth--;
23523 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver2 *r)
23525 if (flags & NDR_IN) {
23526 if (r->in.handle == NULL) {
23527 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23529 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23530 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
23531 if (r->in.architecture) {
23532 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
23533 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23534 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
23535 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23537 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23538 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23539 if (r->in.buffer) {
23540 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23542 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23543 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
23544 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
23546 if (flags & NDR_OUT) {
23547 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23548 if (r->out.info) {
23550 struct ndr_push *_ndr_info;
23551 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
23552 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
23553 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
23554 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
23557 if (r->out.needed == NULL) {
23558 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23560 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23561 if (r->out.server_major_version == NULL) {
23562 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23564 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
23565 if (r->out.server_minor_version == NULL) {
23566 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23568 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
23569 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23571 return NDR_ERR_SUCCESS;
23574 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver2 *r)
23576 uint32_t _ptr_architecture;
23577 uint32_t _ptr_buffer;
23578 uint32_t _ptr_info;
23579 TALLOC_CTX *_mem_save_handle_0;
23580 TALLOC_CTX *_mem_save_architecture_0;
23581 TALLOC_CTX *_mem_save_buffer_0;
23582 TALLOC_CTX *_mem_save_info_0;
23583 TALLOC_CTX *_mem_save_needed_0;
23584 TALLOC_CTX *_mem_save_server_major_version_0;
23585 TALLOC_CTX *_mem_save_server_minor_version_0;
23586 if (flags & NDR_IN) {
23587 ZERO_STRUCT(r->out);
23589 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23590 NDR_PULL_ALLOC(ndr, r->in.handle);
23592 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23593 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23594 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23595 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23596 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
23597 if (_ptr_architecture) {
23598 NDR_PULL_ALLOC(ndr, r->in.architecture);
23599 } else {
23600 r->in.architecture = NULL;
23602 if (r->in.architecture) {
23603 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
23604 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
23605 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
23606 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
23607 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
23608 return 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));
23610 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
23611 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
23612 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
23614 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23615 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23616 if (_ptr_buffer) {
23617 NDR_PULL_ALLOC(ndr, r->in.buffer);
23618 } else {
23619 r->in.buffer = NULL;
23621 if (r->in.buffer) {
23622 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23623 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23624 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23625 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23627 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23628 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
23629 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
23630 NDR_PULL_ALLOC(ndr, r->out.needed);
23631 ZERO_STRUCTP(r->out.needed);
23632 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
23633 ZERO_STRUCTP(r->out.server_major_version);
23634 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
23635 ZERO_STRUCTP(r->out.server_minor_version);
23637 if (flags & NDR_OUT) {
23638 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23639 if (_ptr_info) {
23640 NDR_PULL_ALLOC(ndr, r->out.info);
23641 } else {
23642 r->out.info = NULL;
23644 if (r->out.info) {
23645 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23646 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23648 struct ndr_pull *_ndr_info;
23649 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
23650 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
23651 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
23652 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
23654 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23656 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23657 NDR_PULL_ALLOC(ndr, r->out.needed);
23659 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23660 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23661 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23662 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23663 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23664 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
23666 _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
23667 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
23668 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
23669 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
23670 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23671 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
23673 _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
23674 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
23675 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
23676 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
23677 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23679 return NDR_ERR_SUCCESS;
23682 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver2 *r)
23684 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
23685 ndr->depth++;
23686 if (flags & NDR_SET_VALUES) {
23687 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23689 if (flags & NDR_IN) {
23690 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
23691 ndr->depth++;
23692 ndr_print_ptr(ndr, "handle", r->in.handle);
23693 ndr->depth++;
23694 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23695 ndr->depth--;
23696 ndr_print_ptr(ndr, "architecture", r->in.architecture);
23697 ndr->depth++;
23698 if (r->in.architecture) {
23699 ndr_print_string(ndr, "architecture", r->in.architecture);
23701 ndr->depth--;
23702 ndr_print_uint32(ndr, "level", r->in.level);
23703 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23704 ndr->depth++;
23705 if (r->in.buffer) {
23706 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23708 ndr->depth--;
23709 ndr_print_uint32(ndr, "offered", r->in.offered);
23710 ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
23711 ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
23712 ndr->depth--;
23714 if (flags & NDR_OUT) {
23715 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
23716 ndr->depth++;
23717 ndr_print_ptr(ndr, "info", r->out.info);
23718 ndr->depth++;
23719 if (r->out.info) {
23720 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
23721 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
23723 ndr->depth--;
23724 ndr_print_ptr(ndr, "needed", r->out.needed);
23725 ndr->depth++;
23726 ndr_print_uint32(ndr, "needed", *r->out.needed);
23727 ndr->depth--;
23728 ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
23729 ndr->depth++;
23730 ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
23731 ndr->depth--;
23732 ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
23733 ndr->depth++;
23734 ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
23735 ndr->depth--;
23736 ndr_print_WERROR(ndr, "result", r->out.result);
23737 ndr->depth--;
23739 ndr->depth--;
23742 static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
23744 if (flags & NDR_IN) {
23746 if (flags & NDR_OUT) {
23747 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23749 return NDR_ERR_SUCCESS;
23752 static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindFirstPrinterChangeNotification *r)
23754 if (flags & NDR_IN) {
23756 if (flags & NDR_OUT) {
23757 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23759 return NDR_ERR_SUCCESS;
23762 _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
23764 ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
23765 ndr->depth++;
23766 if (flags & NDR_SET_VALUES) {
23767 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23769 if (flags & NDR_IN) {
23770 ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
23771 ndr->depth++;
23772 ndr->depth--;
23774 if (flags & NDR_OUT) {
23775 ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
23776 ndr->depth++;
23777 ndr_print_WERROR(ndr, "result", r->out.result);
23778 ndr->depth--;
23780 ndr->depth--;
23783 static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
23785 if (flags & NDR_IN) {
23787 if (flags & NDR_OUT) {
23788 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23790 return NDR_ERR_SUCCESS;
23793 static enum ndr_err_code ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindNextPrinterChangeNotification *r)
23795 if (flags & NDR_IN) {
23797 if (flags & NDR_OUT) {
23798 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23800 return NDR_ERR_SUCCESS;
23803 _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
23805 ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
23806 ndr->depth++;
23807 if (flags & NDR_SET_VALUES) {
23808 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23810 if (flags & NDR_IN) {
23811 ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
23812 ndr->depth++;
23813 ndr->depth--;
23815 if (flags & NDR_OUT) {
23816 ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
23817 ndr->depth++;
23818 ndr_print_WERROR(ndr, "result", r->out.result);
23819 ndr->depth--;
23821 ndr->depth--;
23824 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, int flags, const struct spoolss_FindClosePrinterNotify *r)
23826 if (flags & NDR_IN) {
23827 if (r->in.handle == NULL) {
23828 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23830 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23832 if (flags & NDR_OUT) {
23833 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23835 return NDR_ERR_SUCCESS;
23838 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, int flags, struct spoolss_FindClosePrinterNotify *r)
23840 TALLOC_CTX *_mem_save_handle_0;
23841 if (flags & NDR_IN) {
23842 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23843 NDR_PULL_ALLOC(ndr, r->in.handle);
23845 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23846 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23847 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23848 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23850 if (flags & NDR_OUT) {
23851 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23853 return NDR_ERR_SUCCESS;
23856 _PUBLIC_ void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindClosePrinterNotify *r)
23858 ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
23859 ndr->depth++;
23860 if (flags & NDR_SET_VALUES) {
23861 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23863 if (flags & NDR_IN) {
23864 ndr_print_struct(ndr, "in", "spoolss_FindClosePrinterNotify");
23865 ndr->depth++;
23866 ndr_print_ptr(ndr, "handle", r->in.handle);
23867 ndr->depth++;
23868 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23869 ndr->depth--;
23870 ndr->depth--;
23872 if (flags & NDR_OUT) {
23873 ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
23874 ndr->depth++;
23875 ndr_print_WERROR(ndr, "result", r->out.result);
23876 ndr->depth--;
23878 ndr->depth--;
23881 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
23883 if (flags & NDR_IN) {
23885 if (flags & NDR_OUT) {
23886 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23888 return NDR_ERR_SUCCESS;
23891 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
23893 if (flags & NDR_IN) {
23895 if (flags & NDR_OUT) {
23896 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23898 return NDR_ERR_SUCCESS;
23901 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
23903 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
23904 ndr->depth++;
23905 if (flags & NDR_SET_VALUES) {
23906 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23908 if (flags & NDR_IN) {
23909 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
23910 ndr->depth++;
23911 ndr->depth--;
23913 if (flags & NDR_OUT) {
23914 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
23915 ndr->depth++;
23916 ndr_print_WERROR(ndr, "result", r->out.result);
23917 ndr->depth--;
23919 ndr->depth--;
23922 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyOpenPrinter *r)
23924 if (flags & NDR_IN) {
23925 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
23926 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23927 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
23928 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));
23929 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
23930 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
23931 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
23932 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23933 if (r->in.buffer) {
23934 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
23935 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
23938 if (flags & NDR_OUT) {
23939 if (r->out.handle == NULL) {
23940 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23942 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
23943 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23945 return NDR_ERR_SUCCESS;
23948 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyOpenPrinter *r)
23950 uint32_t _ptr_buffer;
23951 TALLOC_CTX *_mem_save_buffer_0;
23952 TALLOC_CTX *_mem_save_handle_0;
23953 if (flags & NDR_IN) {
23954 ZERO_STRUCT(r->out);
23956 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
23957 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
23958 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
23959 return 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));
23961 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
23962 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));
23963 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
23964 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
23965 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
23966 if (r->in.bufsize > 512) {
23967 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
23969 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23970 if (_ptr_buffer) {
23971 NDR_PULL_ALLOC(ndr, r->in.buffer);
23972 } else {
23973 r->in.buffer = NULL;
23975 if (r->in.buffer) {
23976 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23977 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23978 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
23979 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
23980 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
23981 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23983 NDR_PULL_ALLOC(ndr, r->out.handle);
23984 ZERO_STRUCTP(r->out.handle);
23985 if (r->in.buffer) {
23986 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
23989 if (flags & NDR_OUT) {
23990 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23991 NDR_PULL_ALLOC(ndr, r->out.handle);
23993 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23994 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
23995 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
23996 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23997 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23999 return NDR_ERR_SUCCESS;
24002 _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyOpenPrinter *r)
24004 ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
24005 ndr->depth++;
24006 if (flags & NDR_SET_VALUES) {
24007 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24009 if (flags & NDR_IN) {
24010 ndr_print_struct(ndr, "in", "spoolss_ReplyOpenPrinter");
24011 ndr->depth++;
24012 ndr_print_string(ndr, "server_name", r->in.server_name);
24013 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
24014 ndr_print_winreg_Type(ndr, "type", r->in.type);
24015 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
24016 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24017 ndr->depth++;
24018 if (r->in.buffer) {
24019 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
24021 ndr->depth--;
24022 ndr->depth--;
24024 if (flags & NDR_OUT) {
24025 ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
24026 ndr->depth++;
24027 ndr_print_ptr(ndr, "handle", r->out.handle);
24028 ndr->depth++;
24029 ndr_print_policy_handle(ndr, "handle", r->out.handle);
24030 ndr->depth--;
24031 ndr_print_WERROR(ndr, "result", r->out.result);
24032 ndr->depth--;
24034 ndr->depth--;
24037 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinter *r)
24039 if (flags & NDR_IN) {
24040 if (r->in.handle == NULL) {
24041 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24043 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24044 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
24045 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
24046 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24047 if (r->in.buffer) {
24048 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
24049 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
24052 if (flags & NDR_OUT) {
24053 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24055 return NDR_ERR_SUCCESS;
24058 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinter *r)
24060 uint32_t _ptr_buffer;
24061 TALLOC_CTX *_mem_save_handle_0;
24062 TALLOC_CTX *_mem_save_buffer_0;
24063 if (flags & NDR_IN) {
24064 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24065 NDR_PULL_ALLOC(ndr, r->in.handle);
24067 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24068 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24069 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24070 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24071 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
24072 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
24073 if (r->in.bufsize > 512) {
24074 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
24076 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24077 if (_ptr_buffer) {
24078 NDR_PULL_ALLOC(ndr, r->in.buffer);
24079 } else {
24080 r->in.buffer = NULL;
24082 if (r->in.buffer) {
24083 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24084 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24085 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
24086 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
24087 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
24088 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24090 if (r->in.buffer) {
24091 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
24094 if (flags & NDR_OUT) {
24095 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24097 return NDR_ERR_SUCCESS;
24100 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinter *r)
24102 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
24103 ndr->depth++;
24104 if (flags & NDR_SET_VALUES) {
24105 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24107 if (flags & NDR_IN) {
24108 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
24109 ndr->depth++;
24110 ndr_print_ptr(ndr, "handle", r->in.handle);
24111 ndr->depth++;
24112 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24113 ndr->depth--;
24114 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
24115 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
24116 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24117 ndr->depth++;
24118 if (r->in.buffer) {
24119 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
24121 ndr->depth--;
24122 ndr->depth--;
24124 if (flags & NDR_OUT) {
24125 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
24126 ndr->depth++;
24127 ndr_print_WERROR(ndr, "result", r->out.result);
24128 ndr->depth--;
24130 ndr->depth--;
24133 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyClosePrinter *r)
24135 if (flags & NDR_IN) {
24136 if (r->in.handle == NULL) {
24137 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24139 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24141 if (flags & NDR_OUT) {
24142 if (r->out.handle == NULL) {
24143 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24145 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24146 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24148 return NDR_ERR_SUCCESS;
24151 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyClosePrinter *r)
24153 TALLOC_CTX *_mem_save_handle_0;
24154 if (flags & NDR_IN) {
24155 ZERO_STRUCT(r->out);
24157 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24158 NDR_PULL_ALLOC(ndr, r->in.handle);
24160 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24161 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24162 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24163 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24164 NDR_PULL_ALLOC(ndr, r->out.handle);
24165 *r->out.handle = *r->in.handle;
24167 if (flags & NDR_OUT) {
24168 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24169 NDR_PULL_ALLOC(ndr, r->out.handle);
24171 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24172 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
24173 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24174 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24175 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24177 return NDR_ERR_SUCCESS;
24180 _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyClosePrinter *r)
24182 ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
24183 ndr->depth++;
24184 if (flags & NDR_SET_VALUES) {
24185 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24187 if (flags & NDR_IN) {
24188 ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
24189 ndr->depth++;
24190 ndr_print_ptr(ndr, "handle", r->in.handle);
24191 ndr->depth++;
24192 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24193 ndr->depth--;
24194 ndr->depth--;
24196 if (flags & NDR_OUT) {
24197 ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
24198 ndr->depth++;
24199 ndr_print_ptr(ndr, "handle", r->out.handle);
24200 ndr->depth++;
24201 ndr_print_policy_handle(ndr, "handle", r->out.handle);
24202 ndr->depth--;
24203 ndr_print_WERROR(ndr, "result", r->out.result);
24204 ndr->depth--;
24206 ndr->depth--;
24209 static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPortEx *r)
24211 if (flags & NDR_IN) {
24213 if (flags & NDR_OUT) {
24214 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24216 return NDR_ERR_SUCCESS;
24219 static enum ndr_err_code ndr_pull_spoolss_AddPortEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPortEx *r)
24221 if (flags & NDR_IN) {
24223 if (flags & NDR_OUT) {
24224 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24226 return NDR_ERR_SUCCESS;
24229 _PUBLIC_ void ndr_print_spoolss_AddPortEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPortEx *r)
24231 ndr_print_struct(ndr, name, "spoolss_AddPortEx");
24232 ndr->depth++;
24233 if (flags & NDR_SET_VALUES) {
24234 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24236 if (flags & NDR_IN) {
24237 ndr_print_struct(ndr, "in", "spoolss_AddPortEx");
24238 ndr->depth++;
24239 ndr->depth--;
24241 if (flags & NDR_OUT) {
24242 ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
24243 ndr->depth++;
24244 ndr_print_WERROR(ndr, "result", r->out.result);
24245 ndr->depth--;
24247 ndr->depth--;
24250 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
24252 if (flags & NDR_IN) {
24254 if (flags & NDR_OUT) {
24255 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24257 return NDR_ERR_SUCCESS;
24260 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
24262 if (flags & NDR_IN) {
24264 if (flags & NDR_OUT) {
24265 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24267 return NDR_ERR_SUCCESS;
24270 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
24272 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
24273 ndr->depth++;
24274 if (flags & NDR_SET_VALUES) {
24275 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24277 if (flags & NDR_IN) {
24278 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
24279 ndr->depth++;
24280 ndr->depth--;
24282 if (flags & NDR_OUT) {
24283 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
24284 ndr->depth++;
24285 ndr_print_WERROR(ndr, "result", r->out.result);
24286 ndr->depth--;
24288 ndr->depth--;
24291 static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, int flags, const struct spoolss_SpoolerInit *r)
24293 if (flags & NDR_IN) {
24295 if (flags & NDR_OUT) {
24296 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24298 return NDR_ERR_SUCCESS;
24301 static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, int flags, struct spoolss_SpoolerInit *r)
24303 if (flags & NDR_IN) {
24305 if (flags & NDR_OUT) {
24306 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24308 return NDR_ERR_SUCCESS;
24311 _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SpoolerInit *r)
24313 ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
24314 ndr->depth++;
24315 if (flags & NDR_SET_VALUES) {
24316 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24318 if (flags & NDR_IN) {
24319 ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
24320 ndr->depth++;
24321 ndr->depth--;
24323 if (flags & NDR_OUT) {
24324 ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
24325 ndr->depth++;
24326 ndr_print_WERROR(ndr, "result", r->out.result);
24327 ndr->depth--;
24329 ndr->depth--;
24332 static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinterEx *r)
24334 if (flags & NDR_IN) {
24336 if (flags & NDR_OUT) {
24337 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24339 return NDR_ERR_SUCCESS;
24342 static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinterEx *r)
24344 if (flags & NDR_IN) {
24346 if (flags & NDR_OUT) {
24347 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24349 return NDR_ERR_SUCCESS;
24352 _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinterEx *r)
24354 ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
24355 ndr->depth++;
24356 if (flags & NDR_SET_VALUES) {
24357 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24359 if (flags & NDR_IN) {
24360 ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
24361 ndr->depth++;
24362 ndr->depth--;
24364 if (flags & NDR_OUT) {
24365 ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
24366 ndr->depth++;
24367 ndr_print_WERROR(ndr, "result", r->out.result);
24368 ndr->depth--;
24370 ndr->depth--;
24373 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
24375 if (flags & NDR_IN) {
24376 if (r->in.handle == NULL) {
24377 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24379 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24380 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
24381 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
24382 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.local_machine));
24383 if (r->in.local_machine) {
24384 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
24385 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
24387 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));
24389 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
24390 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.notify_options));
24391 if (r->in.notify_options) {
24392 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
24395 if (flags & NDR_OUT) {
24396 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24398 return NDR_ERR_SUCCESS;
24401 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
24403 uint32_t _ptr_local_machine;
24404 uint32_t _ptr_notify_options;
24405 TALLOC_CTX *_mem_save_handle_0;
24406 TALLOC_CTX *_mem_save_local_machine_0;
24407 TALLOC_CTX *_mem_save_notify_options_0;
24408 if (flags & NDR_IN) {
24409 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24410 NDR_PULL_ALLOC(ndr, r->in.handle);
24412 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24413 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24414 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24415 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24416 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
24417 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
24418 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local_machine));
24419 if (_ptr_local_machine) {
24420 NDR_PULL_ALLOC(ndr, r->in.local_machine);
24421 } else {
24422 r->in.local_machine = NULL;
24424 if (r->in.local_machine) {
24425 _mem_save_local_machine_0 = NDR_PULL_GET_MEM_CTX(ndr);
24426 NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
24427 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
24428 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
24429 if (ndr_get_array_length(ndr, &r->in.local_machine) > ndr_get_array_size(ndr, &r->in.local_machine)) {
24430 return 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));
24432 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t)));
24433 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));
24434 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
24436 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
24437 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_options));
24438 if (_ptr_notify_options) {
24439 NDR_PULL_ALLOC(ndr, r->in.notify_options);
24440 } else {
24441 r->in.notify_options = NULL;
24443 if (r->in.notify_options) {
24444 _mem_save_notify_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
24445 NDR_PULL_SET_MEM_CTX(ndr, r->in.notify_options, 0);
24446 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
24447 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_options_0, 0);
24450 if (flags & NDR_OUT) {
24451 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24453 return NDR_ERR_SUCCESS;
24456 _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
24458 ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
24459 ndr->depth++;
24460 if (flags & NDR_SET_VALUES) {
24461 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24463 if (flags & NDR_IN) {
24464 ndr_print_struct(ndr, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
24465 ndr->depth++;
24466 ndr_print_ptr(ndr, "handle", r->in.handle);
24467 ndr->depth++;
24468 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24469 ndr->depth--;
24470 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
24471 ndr_print_uint32(ndr, "options", r->in.options);
24472 ndr_print_ptr(ndr, "local_machine", r->in.local_machine);
24473 ndr->depth++;
24474 if (r->in.local_machine) {
24475 ndr_print_string(ndr, "local_machine", r->in.local_machine);
24477 ndr->depth--;
24478 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
24479 ndr_print_ptr(ndr, "notify_options", r->in.notify_options);
24480 ndr->depth++;
24481 if (r->in.notify_options) {
24482 ndr_print_spoolss_NotifyOption(ndr, "notify_options", r->in.notify_options);
24484 ndr->depth--;
24485 ndr->depth--;
24487 if (flags & NDR_OUT) {
24488 ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
24489 ndr->depth++;
24490 ndr_print_WERROR(ndr, "result", r->out.result);
24491 ndr->depth--;
24493 ndr->depth--;
24496 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinterEx *r)
24498 if (flags & NDR_IN) {
24499 if (r->in.handle == NULL) {
24500 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24502 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24503 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.color));
24504 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
24505 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reply_type));
24506 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.reply_type));
24507 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24509 if (flags & NDR_OUT) {
24510 if (r->out.reply_result == NULL) {
24511 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24513 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, *r->out.reply_result));
24514 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24516 return NDR_ERR_SUCCESS;
24519 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinterEx *r)
24521 TALLOC_CTX *_mem_save_handle_0;
24522 TALLOC_CTX *_mem_save_reply_result_0;
24523 if (flags & NDR_IN) {
24524 ZERO_STRUCT(r->out);
24526 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24527 NDR_PULL_ALLOC(ndr, r->in.handle);
24529 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24530 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24531 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24532 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24533 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.color));
24534 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
24535 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reply_type));
24536 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.reply_type));
24537 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24538 NDR_PULL_ALLOC(ndr, r->out.reply_result);
24539 ZERO_STRUCTP(r->out.reply_result);
24541 if (flags & NDR_OUT) {
24542 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24543 NDR_PULL_ALLOC(ndr, r->out.reply_result);
24545 _mem_save_reply_result_0 = NDR_PULL_GET_MEM_CTX(ndr);
24546 NDR_PULL_SET_MEM_CTX(ndr, r->out.reply_result, LIBNDR_FLAG_REF_ALLOC);
24547 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, r->out.reply_result));
24548 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reply_result_0, LIBNDR_FLAG_REF_ALLOC);
24549 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24551 return NDR_ERR_SUCCESS;
24554 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinterEx *r)
24556 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinterEx");
24557 ndr->depth++;
24558 if (flags & NDR_SET_VALUES) {
24559 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24561 if (flags & NDR_IN) {
24562 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinterEx");
24563 ndr->depth++;
24564 ndr_print_ptr(ndr, "handle", r->in.handle);
24565 ndr->depth++;
24566 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24567 ndr->depth--;
24568 ndr_print_uint32(ndr, "color", r->in.color);
24569 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
24570 ndr_print_uint32(ndr, "reply_type", r->in.reply_type);
24571 ndr_print_set_switch_value(ndr, &r->in.info, r->in.reply_type);
24572 ndr_print_spoolss_ReplyPrinterInfo(ndr, "info", &r->in.info);
24573 ndr->depth--;
24575 if (flags & NDR_OUT) {
24576 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinterEx");
24577 ndr->depth++;
24578 ndr_print_ptr(ndr, "reply_result", r->out.reply_result);
24579 ndr->depth++;
24580 ndr_print_spoolss_PrinterNotifyFlags(ndr, "reply_result", *r->out.reply_result);
24581 ndr->depth--;
24582 ndr_print_WERROR(ndr, "result", r->out.result);
24583 ndr->depth--;
24585 ndr->depth--;
24588 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push *ndr, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
24590 if (flags & NDR_IN) {
24591 if (r->in.handle == NULL) {
24592 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24594 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24595 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
24596 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.options));
24597 if (r->in.options) {
24598 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
24601 if (flags & NDR_OUT) {
24602 if (r->out.info == NULL) {
24603 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24605 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
24606 if (*r->out.info) {
24607 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
24609 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24611 return NDR_ERR_SUCCESS;
24614 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull *ndr, int flags, struct spoolss_RouterRefreshPrinterChangeNotify *r)
24616 uint32_t _ptr_options;
24617 uint32_t _ptr_info;
24618 TALLOC_CTX *_mem_save_handle_0;
24619 TALLOC_CTX *_mem_save_options_0;
24620 TALLOC_CTX *_mem_save_info_0;
24621 TALLOC_CTX *_mem_save_info_1;
24622 if (flags & NDR_IN) {
24623 ZERO_STRUCT(r->out);
24625 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24626 NDR_PULL_ALLOC(ndr, r->in.handle);
24628 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24629 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24630 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24631 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24632 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
24633 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
24634 if (_ptr_options) {
24635 NDR_PULL_ALLOC(ndr, r->in.options);
24636 } else {
24637 r->in.options = NULL;
24639 if (r->in.options) {
24640 _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
24641 NDR_PULL_SET_MEM_CTX(ndr, r->in.options, 0);
24642 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
24643 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
24645 NDR_PULL_ALLOC(ndr, r->out.info);
24646 ZERO_STRUCTP(r->out.info);
24648 if (flags & NDR_OUT) {
24649 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24650 NDR_PULL_ALLOC(ndr, r->out.info);
24652 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24653 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
24654 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24655 if (_ptr_info) {
24656 NDR_PULL_ALLOC(ndr, *r->out.info);
24657 } else {
24658 *r->out.info = NULL;
24660 if (*r->out.info) {
24661 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
24662 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
24663 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
24664 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
24666 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
24667 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24669 return NDR_ERR_SUCCESS;
24672 _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
24674 ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotify");
24675 ndr->depth++;
24676 if (flags & NDR_SET_VALUES) {
24677 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24679 if (flags & NDR_IN) {
24680 ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotify");
24681 ndr->depth++;
24682 ndr_print_ptr(ndr, "handle", r->in.handle);
24683 ndr->depth++;
24684 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24685 ndr->depth--;
24686 ndr_print_uint32(ndr, "change_low", r->in.change_low);
24687 ndr_print_ptr(ndr, "options", r->in.options);
24688 ndr->depth++;
24689 if (r->in.options) {
24690 ndr_print_spoolss_NotifyOption(ndr, "options", r->in.options);
24692 ndr->depth--;
24693 ndr->depth--;
24695 if (flags & NDR_OUT) {
24696 ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotify");
24697 ndr->depth++;
24698 ndr_print_ptr(ndr, "info", r->out.info);
24699 ndr->depth++;
24700 ndr_print_ptr(ndr, "info", *r->out.info);
24701 ndr->depth++;
24702 if (*r->out.info) {
24703 ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
24705 ndr->depth--;
24706 ndr->depth--;
24707 ndr_print_WERROR(ndr, "result", r->out.result);
24708 ndr->depth--;
24710 ndr->depth--;
24713 static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, int flags, const struct spoolss_44 *r)
24715 if (flags & NDR_IN) {
24717 if (flags & NDR_OUT) {
24718 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24720 return NDR_ERR_SUCCESS;
24723 static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, int flags, struct spoolss_44 *r)
24725 if (flags & NDR_IN) {
24727 if (flags & NDR_OUT) {
24728 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24730 return NDR_ERR_SUCCESS;
24733 _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_44 *r)
24735 ndr_print_struct(ndr, name, "spoolss_44");
24736 ndr->depth++;
24737 if (flags & NDR_SET_VALUES) {
24738 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24740 if (flags & NDR_IN) {
24741 ndr_print_struct(ndr, "in", "spoolss_44");
24742 ndr->depth++;
24743 ndr->depth--;
24745 if (flags & NDR_OUT) {
24746 ndr_print_struct(ndr, "out", "spoolss_44");
24747 ndr->depth++;
24748 ndr_print_WERROR(ndr, "result", r->out.result);
24749 ndr->depth--;
24751 ndr->depth--;
24754 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinterEx *r)
24756 if (flags & NDR_IN) {
24757 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
24758 if (r->in.printername) {
24759 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
24760 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24761 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
24762 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24764 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
24765 if (r->in.datatype) {
24766 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
24767 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24768 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
24769 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24771 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
24772 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
24773 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24774 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.userlevel, r->in.level));
24775 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
24777 if (flags & NDR_OUT) {
24778 if (r->out.handle == NULL) {
24779 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24781 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24782 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24784 return NDR_ERR_SUCCESS;
24787 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinterEx *r)
24789 uint32_t _ptr_printername;
24790 uint32_t _ptr_datatype;
24791 TALLOC_CTX *_mem_save_printername_0;
24792 TALLOC_CTX *_mem_save_datatype_0;
24793 TALLOC_CTX *_mem_save_handle_0;
24794 if (flags & NDR_IN) {
24795 ZERO_STRUCT(r->out);
24797 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
24798 if (_ptr_printername) {
24799 NDR_PULL_ALLOC(ndr, r->in.printername);
24800 } else {
24801 r->in.printername = NULL;
24803 if (r->in.printername) {
24804 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
24805 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
24806 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
24807 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
24808 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
24809 return 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));
24811 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
24812 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
24813 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
24815 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
24816 if (_ptr_datatype) {
24817 NDR_PULL_ALLOC(ndr, r->in.datatype);
24818 } else {
24819 r->in.datatype = NULL;
24821 if (r->in.datatype) {
24822 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
24823 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
24824 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
24825 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
24826 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
24827 return 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));
24829 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
24830 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
24831 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
24833 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
24834 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
24835 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24836 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.userlevel, r->in.level));
24837 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
24838 NDR_PULL_ALLOC(ndr, r->out.handle);
24839 ZERO_STRUCTP(r->out.handle);
24841 if (flags & NDR_OUT) {
24842 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24843 NDR_PULL_ALLOC(ndr, r->out.handle);
24845 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24846 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
24847 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24848 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24849 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24851 return NDR_ERR_SUCCESS;
24854 _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinterEx *r)
24856 ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
24857 ndr->depth++;
24858 if (flags & NDR_SET_VALUES) {
24859 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24861 if (flags & NDR_IN) {
24862 ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
24863 ndr->depth++;
24864 ndr_print_ptr(ndr, "printername", r->in.printername);
24865 ndr->depth++;
24866 if (r->in.printername) {
24867 ndr_print_string(ndr, "printername", r->in.printername);
24869 ndr->depth--;
24870 ndr_print_ptr(ndr, "datatype", r->in.datatype);
24871 ndr->depth++;
24872 if (r->in.datatype) {
24873 ndr_print_string(ndr, "datatype", r->in.datatype);
24875 ndr->depth--;
24876 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
24877 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
24878 ndr_print_uint32(ndr, "level", r->in.level);
24879 ndr_print_set_switch_value(ndr, &r->in.userlevel, r->in.level);
24880 ndr_print_spoolss_UserLevel(ndr, "userlevel", &r->in.userlevel);
24881 ndr->depth--;
24883 if (flags & NDR_OUT) {
24884 ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
24885 ndr->depth++;
24886 ndr_print_ptr(ndr, "handle", r->out.handle);
24887 ndr->depth++;
24888 ndr_print_policy_handle(ndr, "handle", r->out.handle);
24889 ndr->depth--;
24890 ndr_print_WERROR(ndr, "result", r->out.result);
24891 ndr->depth--;
24893 ndr->depth--;
24896 static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterEx *r)
24898 if (flags & NDR_IN) {
24899 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
24900 if (r->in.server) {
24901 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
24902 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24903 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
24904 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24906 if (r->in.info_ctr == NULL) {
24907 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24909 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
24910 if (r->in.devmode_ctr == NULL) {
24911 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24913 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
24914 if (r->in.secdesc_ctr == NULL) {
24915 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24917 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
24918 if (r->in.userlevel_ctr == NULL) {
24919 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24921 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
24923 if (flags & NDR_OUT) {
24924 if (r->out.handle == NULL) {
24925 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24927 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24928 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24930 return NDR_ERR_SUCCESS;
24933 static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterEx *r)
24935 uint32_t _ptr_server;
24936 TALLOC_CTX *_mem_save_server_0;
24937 TALLOC_CTX *_mem_save_info_ctr_0;
24938 TALLOC_CTX *_mem_save_devmode_ctr_0;
24939 TALLOC_CTX *_mem_save_secdesc_ctr_0;
24940 TALLOC_CTX *_mem_save_userlevel_ctr_0;
24941 TALLOC_CTX *_mem_save_handle_0;
24942 if (flags & NDR_IN) {
24943 ZERO_STRUCT(r->out);
24945 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
24946 if (_ptr_server) {
24947 NDR_PULL_ALLOC(ndr, r->in.server);
24948 } else {
24949 r->in.server = NULL;
24951 if (r->in.server) {
24952 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
24953 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
24954 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
24955 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
24956 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
24957 return 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));
24959 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
24960 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
24961 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
24963 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24964 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
24966 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
24967 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
24968 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
24969 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
24970 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24971 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
24973 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
24974 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
24975 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
24976 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
24977 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24978 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
24980 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
24981 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
24982 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
24983 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
24984 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24985 NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
24987 _mem_save_userlevel_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
24988 NDR_PULL_SET_MEM_CTX(ndr, r->in.userlevel_ctr, LIBNDR_FLAG_REF_ALLOC);
24989 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
24990 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userlevel_ctr_0, LIBNDR_FLAG_REF_ALLOC);
24991 NDR_PULL_ALLOC(ndr, r->out.handle);
24992 ZERO_STRUCTP(r->out.handle);
24994 if (flags & NDR_OUT) {
24995 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24996 NDR_PULL_ALLOC(ndr, r->out.handle);
24998 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24999 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
25000 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25001 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25002 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25004 return NDR_ERR_SUCCESS;
25007 _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterEx *r)
25009 ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
25010 ndr->depth++;
25011 if (flags & NDR_SET_VALUES) {
25012 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25014 if (flags & NDR_IN) {
25015 ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
25016 ndr->depth++;
25017 ndr_print_ptr(ndr, "server", r->in.server);
25018 ndr->depth++;
25019 if (r->in.server) {
25020 ndr_print_string(ndr, "server", r->in.server);
25022 ndr->depth--;
25023 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
25024 ndr->depth++;
25025 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
25026 ndr->depth--;
25027 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
25028 ndr->depth++;
25029 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
25030 ndr->depth--;
25031 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
25032 ndr->depth++;
25033 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
25034 ndr->depth--;
25035 ndr_print_ptr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
25036 ndr->depth++;
25037 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
25038 ndr->depth--;
25039 ndr->depth--;
25041 if (flags & NDR_OUT) {
25042 ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
25043 ndr->depth++;
25044 ndr_print_ptr(ndr, "handle", r->out.handle);
25045 ndr->depth++;
25046 ndr_print_policy_handle(ndr, "handle", r->out.handle);
25047 ndr->depth--;
25048 ndr_print_WERROR(ndr, "result", r->out.result);
25049 ndr->depth--;
25051 ndr->depth--;
25054 static enum ndr_err_code ndr_push_spoolss_47(struct ndr_push *ndr, int flags, const struct spoolss_47 *r)
25056 if (flags & NDR_IN) {
25058 if (flags & NDR_OUT) {
25059 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25061 return NDR_ERR_SUCCESS;
25064 static enum ndr_err_code ndr_pull_spoolss_47(struct ndr_pull *ndr, int flags, struct spoolss_47 *r)
25066 if (flags & NDR_IN) {
25068 if (flags & NDR_OUT) {
25069 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25071 return NDR_ERR_SUCCESS;
25074 _PUBLIC_ void ndr_print_spoolss_47(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_47 *r)
25076 ndr_print_struct(ndr, name, "spoolss_47");
25077 ndr->depth++;
25078 if (flags & NDR_SET_VALUES) {
25079 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25081 if (flags & NDR_IN) {
25082 ndr_print_struct(ndr, "in", "spoolss_47");
25083 ndr->depth++;
25084 ndr->depth--;
25086 if (flags & NDR_OUT) {
25087 ndr_print_struct(ndr, "out", "spoolss_47");
25088 ndr->depth++;
25089 ndr_print_WERROR(ndr, "result", r->out.result);
25090 ndr->depth--;
25092 ndr->depth--;
25095 static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterData *r)
25097 if (flags & NDR_IN) {
25098 if (r->in.handle == NULL) {
25099 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25101 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25102 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
25103 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
25104 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
25106 if (flags & NDR_OUT) {
25107 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered / 2));
25108 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
25109 if (r->out.value_needed == NULL) {
25110 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25112 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
25113 if (r->out.printerdata_type == NULL) {
25114 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25116 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.printerdata_type));
25117 if (r->out.buffer == NULL) {
25118 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25120 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.buffer));
25121 if (r->out.data_needed == NULL) {
25122 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25124 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
25125 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25127 return NDR_ERR_SUCCESS;
25130 static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterData *r)
25132 TALLOC_CTX *_mem_save_handle_0;
25133 TALLOC_CTX *_mem_save_value_needed_0;
25134 TALLOC_CTX *_mem_save_printerdata_type_0;
25135 TALLOC_CTX *_mem_save_buffer_0;
25136 TALLOC_CTX *_mem_save_data_needed_0;
25137 if (flags & NDR_IN) {
25138 ZERO_STRUCT(r->out);
25140 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25141 NDR_PULL_ALLOC(ndr, r->in.handle);
25143 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25144 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25145 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25146 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25147 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
25148 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
25149 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
25150 NDR_PULL_ALLOC(ndr, r->out.value_needed);
25151 ZERO_STRUCTP(r->out.value_needed);
25152 NDR_PULL_ALLOC(ndr, r->out.printerdata_type);
25153 ZERO_STRUCTP(r->out.printerdata_type);
25154 NDR_PULL_ALLOC(ndr, r->out.buffer);
25155 ZERO_STRUCTP(r->out.buffer);
25156 NDR_PULL_ALLOC(ndr, r->out.data_needed);
25157 ZERO_STRUCTP(r->out.data_needed);
25159 if (flags & NDR_OUT) {
25160 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
25161 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));
25162 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25163 NDR_PULL_ALLOC(ndr, r->out.value_needed);
25165 _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25166 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
25167 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
25168 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
25169 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25170 NDR_PULL_ALLOC(ndr, r->out.printerdata_type);
25172 _mem_save_printerdata_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
25173 NDR_PULL_SET_MEM_CTX(ndr, r->out.printerdata_type, LIBNDR_FLAG_REF_ALLOC);
25174 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.printerdata_type));
25175 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printerdata_type_0, LIBNDR_FLAG_REF_ALLOC);
25176 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25177 NDR_PULL_ALLOC(ndr, r->out.buffer);
25179 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25180 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
25181 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.buffer));
25182 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
25183 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25184 NDR_PULL_ALLOC(ndr, r->out.data_needed);
25186 _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25187 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
25188 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
25189 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
25190 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25191 if (r->out.value_name) {
25192 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
25195 return NDR_ERR_SUCCESS;
25198 _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterData *r)
25200 ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
25201 ndr->depth++;
25202 if (flags & NDR_SET_VALUES) {
25203 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25205 if (flags & NDR_IN) {
25206 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
25207 ndr->depth++;
25208 ndr_print_ptr(ndr, "handle", r->in.handle);
25209 ndr->depth++;
25210 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25211 ndr->depth--;
25212 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
25213 ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
25214 ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
25215 ndr->depth--;
25217 if (flags & NDR_OUT) {
25218 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
25219 ndr->depth++;
25220 ndr_print_string(ndr, "value_name", r->out.value_name);
25221 ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
25222 ndr->depth++;
25223 ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
25224 ndr->depth--;
25225 ndr_print_ptr(ndr, "printerdata_type", r->out.printerdata_type);
25226 ndr->depth++;
25227 ndr_print_uint32(ndr, "printerdata_type", *r->out.printerdata_type);
25228 ndr->depth--;
25229 ndr_print_ptr(ndr, "buffer", r->out.buffer);
25230 ndr->depth++;
25231 ndr_print_DATA_BLOB(ndr, "buffer", *r->out.buffer);
25232 ndr->depth--;
25233 ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
25234 ndr->depth++;
25235 ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
25236 ndr->depth--;
25237 ndr_print_WERROR(ndr, "result", r->out.result);
25238 ndr->depth--;
25240 ndr->depth--;
25243 static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterData *r)
25245 if (flags & NDR_IN) {
25246 if (r->in.handle == NULL) {
25247 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25249 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25250 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25251 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25252 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25253 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));
25255 if (flags & NDR_OUT) {
25256 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25258 return NDR_ERR_SUCCESS;
25261 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterData(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterData *r)
25263 TALLOC_CTX *_mem_save_handle_0;
25264 if (flags & NDR_IN) {
25265 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25266 NDR_PULL_ALLOC(ndr, r->in.handle);
25268 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25269 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25270 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25271 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25272 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
25273 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
25274 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
25275 return 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));
25277 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
25278 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));
25280 if (flags & NDR_OUT) {
25281 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25283 return NDR_ERR_SUCCESS;
25286 _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterData *r)
25288 ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
25289 ndr->depth++;
25290 if (flags & NDR_SET_VALUES) {
25291 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25293 if (flags & NDR_IN) {
25294 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
25295 ndr->depth++;
25296 ndr_print_ptr(ndr, "handle", r->in.handle);
25297 ndr->depth++;
25298 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25299 ndr->depth--;
25300 ndr_print_string(ndr, "value_name", r->in.value_name);
25301 ndr->depth--;
25303 if (flags & NDR_OUT) {
25304 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
25305 ndr->depth++;
25306 ndr_print_WERROR(ndr, "result", r->out.result);
25307 ndr->depth--;
25309 ndr->depth--;
25312 static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, int flags, const struct spoolss_4a *r)
25314 if (flags & NDR_IN) {
25316 if (flags & NDR_OUT) {
25317 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25319 return NDR_ERR_SUCCESS;
25322 static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, int flags, struct spoolss_4a *r)
25324 if (flags & NDR_IN) {
25326 if (flags & NDR_OUT) {
25327 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25329 return NDR_ERR_SUCCESS;
25332 _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4a *r)
25334 ndr_print_struct(ndr, name, "spoolss_4a");
25335 ndr->depth++;
25336 if (flags & NDR_SET_VALUES) {
25337 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25339 if (flags & NDR_IN) {
25340 ndr_print_struct(ndr, "in", "spoolss_4a");
25341 ndr->depth++;
25342 ndr->depth--;
25344 if (flags & NDR_OUT) {
25345 ndr_print_struct(ndr, "out", "spoolss_4a");
25346 ndr->depth++;
25347 ndr_print_WERROR(ndr, "result", r->out.result);
25348 ndr->depth--;
25350 ndr->depth--;
25353 static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, int flags, const struct spoolss_4b *r)
25355 if (flags & NDR_IN) {
25357 if (flags & NDR_OUT) {
25358 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25360 return NDR_ERR_SUCCESS;
25363 static enum ndr_err_code ndr_pull_spoolss_4b(struct ndr_pull *ndr, int flags, struct spoolss_4b *r)
25365 if (flags & NDR_IN) {
25367 if (flags & NDR_OUT) {
25368 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25370 return NDR_ERR_SUCCESS;
25373 _PUBLIC_ void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r)
25375 ndr_print_struct(ndr, name, "spoolss_4b");
25376 ndr->depth++;
25377 if (flags & NDR_SET_VALUES) {
25378 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25380 if (flags & NDR_IN) {
25381 ndr_print_struct(ndr, "in", "spoolss_4b");
25382 ndr->depth++;
25383 ndr->depth--;
25385 if (flags & NDR_OUT) {
25386 ndr_print_struct(ndr, "out", "spoolss_4b");
25387 ndr->depth++;
25388 ndr_print_WERROR(ndr, "result", r->out.result);
25389 ndr->depth--;
25391 ndr->depth--;
25394 static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, int flags, const struct spoolss_4c *r)
25396 if (flags & NDR_IN) {
25398 if (flags & NDR_OUT) {
25399 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25401 return NDR_ERR_SUCCESS;
25404 static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, int flags, struct spoolss_4c *r)
25406 if (flags & NDR_IN) {
25408 if (flags & NDR_OUT) {
25409 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25411 return NDR_ERR_SUCCESS;
25414 _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4c *r)
25416 ndr_print_struct(ndr, name, "spoolss_4c");
25417 ndr->depth++;
25418 if (flags & NDR_SET_VALUES) {
25419 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25421 if (flags & NDR_IN) {
25422 ndr_print_struct(ndr, "in", "spoolss_4c");
25423 ndr->depth++;
25424 ndr->depth--;
25426 if (flags & NDR_OUT) {
25427 ndr_print_struct(ndr, "out", "spoolss_4c");
25428 ndr->depth++;
25429 ndr_print_WERROR(ndr, "result", r->out.result);
25430 ndr->depth--;
25432 ndr->depth--;
25435 static enum ndr_err_code ndr_push_spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterDataEx *r)
25437 if (flags & NDR_IN) {
25438 if (r->in.handle == NULL) {
25439 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25441 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25442 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
25443 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25444 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
25445 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));
25446 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25447 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25448 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25449 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));
25450 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.type));
25451 if (r->in.buffer == NULL) {
25452 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25454 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25455 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
25456 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25458 if (flags & NDR_OUT) {
25459 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25461 return NDR_ERR_SUCCESS;
25464 static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterDataEx *r)
25466 TALLOC_CTX *_mem_save_handle_0;
25467 if (flags & NDR_IN) {
25468 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25469 NDR_PULL_ALLOC(ndr, r->in.handle);
25471 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25472 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25473 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25474 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25475 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
25476 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
25477 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
25478 return 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));
25480 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
25481 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));
25482 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
25483 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
25484 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
25485 return 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));
25487 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
25488 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));
25489 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.type));
25490 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
25491 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25492 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
25494 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
25495 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25496 if (r->in.buffer) {
25497 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
25500 if (flags & NDR_OUT) {
25501 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25503 return NDR_ERR_SUCCESS;
25506 _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterDataEx *r)
25508 ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
25509 ndr->depth++;
25510 if (flags & NDR_SET_VALUES) {
25511 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25513 if (flags & NDR_IN) {
25514 ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
25515 ndr->depth++;
25516 ndr_print_ptr(ndr, "handle", r->in.handle);
25517 ndr->depth++;
25518 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25519 ndr->depth--;
25520 ndr_print_string(ndr, "key_name", r->in.key_name);
25521 ndr_print_string(ndr, "value_name", r->in.value_name);
25522 ndr_print_uint32(ndr, "type", r->in.type);
25523 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25524 ndr->depth++;
25525 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
25526 ndr->depth--;
25527 ndr_print_uint32(ndr, "offered", r->in.offered);
25528 ndr->depth--;
25530 if (flags & NDR_OUT) {
25531 ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
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_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDataEx *r)
25541 if (flags & NDR_IN) {
25542 if (r->in.handle == NULL) {
25543 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25545 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25546 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
25547 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25548 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
25549 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));
25550 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25551 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25552 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25553 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));
25554 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25556 if (flags & NDR_OUT) {
25557 if (r->out.type == NULL) {
25558 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25560 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.type));
25561 if (r->out.buffer == NULL) {
25562 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25564 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25565 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
25566 if (r->out.needed == NULL) {
25567 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25569 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25570 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25572 return NDR_ERR_SUCCESS;
25575 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDataEx *r)
25577 TALLOC_CTX *_mem_save_handle_0;
25578 TALLOC_CTX *_mem_save_type_0;
25579 TALLOC_CTX *_mem_save_needed_0;
25580 if (flags & NDR_IN) {
25581 ZERO_STRUCT(r->out);
25583 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25584 NDR_PULL_ALLOC(ndr, r->in.handle);
25586 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25587 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25588 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25589 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25590 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
25591 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
25592 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
25593 return 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));
25595 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
25596 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));
25597 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
25598 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
25599 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
25600 return 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));
25602 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
25603 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));
25604 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25605 NDR_PULL_ALLOC(ndr, r->out.type);
25606 ZERO_STRUCTP(r->out.type);
25607 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
25608 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
25609 NDR_PULL_ALLOC(ndr, r->out.needed);
25610 ZERO_STRUCTP(r->out.needed);
25612 if (flags & NDR_OUT) {
25613 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25614 NDR_PULL_ALLOC(ndr, r->out.type);
25616 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
25617 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
25618 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.type));
25619 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
25620 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
25621 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25622 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
25624 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
25625 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25626 NDR_PULL_ALLOC(ndr, r->out.needed);
25628 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25629 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25630 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25631 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25632 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25633 if (r->out.buffer) {
25634 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
25637 return NDR_ERR_SUCCESS;
25640 _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r)
25642 ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
25643 ndr->depth++;
25644 if (flags & NDR_SET_VALUES) {
25645 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25647 if (flags & NDR_IN) {
25648 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
25649 ndr->depth++;
25650 ndr_print_ptr(ndr, "handle", r->in.handle);
25651 ndr->depth++;
25652 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25653 ndr->depth--;
25654 ndr_print_string(ndr, "key_name", r->in.key_name);
25655 ndr_print_string(ndr, "value_name", r->in.value_name);
25656 ndr_print_uint32(ndr, "offered", r->in.offered);
25657 ndr->depth--;
25659 if (flags & NDR_OUT) {
25660 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
25661 ndr->depth++;
25662 ndr_print_ptr(ndr, "type", r->out.type);
25663 ndr->depth++;
25664 ndr_print_uint32(ndr, "type", *r->out.type);
25665 ndr->depth--;
25666 ndr_print_ptr(ndr, "buffer", r->out.buffer);
25667 ndr->depth++;
25668 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
25669 ndr->depth--;
25670 ndr_print_ptr(ndr, "needed", r->out.needed);
25671 ndr->depth++;
25672 ndr_print_uint32(ndr, "needed", *r->out.needed);
25673 ndr->depth--;
25674 ndr_print_WERROR(ndr, "result", r->out.result);
25675 ndr->depth--;
25677 ndr->depth--;
25680 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterDataEx *r)
25682 if (flags & NDR_IN) {
25683 if (r->in.handle == NULL) {
25684 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25686 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25687 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
25688 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25689 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
25690 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));
25691 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25693 if (flags & NDR_OUT) {
25694 if (r->out.buffer == NULL) {
25695 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25697 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25698 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
25699 if (r->out.needed == NULL) {
25700 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25702 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25703 if (r->out.count == NULL) {
25704 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25706 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
25707 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25709 return NDR_ERR_SUCCESS;
25712 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterDataEx *r)
25714 TALLOC_CTX *_mem_save_handle_0;
25715 TALLOC_CTX *_mem_save_needed_0;
25716 TALLOC_CTX *_mem_save_count_0;
25717 if (flags & NDR_IN) {
25718 ZERO_STRUCT(r->out);
25720 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25721 NDR_PULL_ALLOC(ndr, r->in.handle);
25723 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25724 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25725 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25726 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25727 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
25728 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
25729 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
25730 return 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));
25732 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
25733 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));
25734 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25735 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
25736 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
25737 NDR_PULL_ALLOC(ndr, r->out.needed);
25738 ZERO_STRUCTP(r->out.needed);
25739 NDR_PULL_ALLOC(ndr, r->out.count);
25740 ZERO_STRUCTP(r->out.count);
25742 if (flags & NDR_OUT) {
25743 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
25744 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25745 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
25747 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
25748 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25749 NDR_PULL_ALLOC(ndr, r->out.needed);
25751 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25752 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25753 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25754 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25755 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25756 NDR_PULL_ALLOC(ndr, r->out.count);
25758 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
25759 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
25760 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
25761 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
25762 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25763 if (r->out.buffer) {
25764 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
25767 return NDR_ERR_SUCCESS;
25770 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDataEx *r)
25772 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
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_EnumPrinterDataEx");
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_string(ndr, "key_name", r->in.key_name);
25785 ndr_print_uint32(ndr, "offered", r->in.offered);
25786 ndr->depth--;
25788 if (flags & NDR_OUT) {
25789 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
25790 ndr->depth++;
25791 ndr_print_ptr(ndr, "buffer", r->out.buffer);
25792 ndr->depth++;
25793 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
25794 ndr->depth--;
25795 ndr_print_ptr(ndr, "needed", r->out.needed);
25796 ndr->depth++;
25797 ndr_print_uint32(ndr, "needed", *r->out.needed);
25798 ndr->depth--;
25799 ndr_print_ptr(ndr, "count", r->out.count);
25800 ndr->depth++;
25801 ndr_print_uint32(ndr, "count", *r->out.count);
25802 ndr->depth--;
25803 ndr_print_WERROR(ndr, "result", r->out.result);
25804 ndr->depth--;
25806 ndr->depth--;
25809 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterKey *r)
25811 uint32_t cntr_key_buffer_1;
25812 if (flags & NDR_IN) {
25813 if (r->in.handle == NULL) {
25814 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25816 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25817 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
25818 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25819 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
25820 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));
25821 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.key_buffer_size));
25823 if (flags & NDR_OUT) {
25824 if (r->out.key_buffer == NULL) {
25825 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25827 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.key_buffer_size / 2));
25828 for (cntr_key_buffer_1 = 0; cntr_key_buffer_1 < r->in.key_buffer_size / 2; cntr_key_buffer_1++) {
25829 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.key_buffer[cntr_key_buffer_1]));
25831 if (r->out.needed == NULL) {
25832 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25834 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25835 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25837 return NDR_ERR_SUCCESS;
25840 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterKey *r)
25842 uint32_t cntr_key_buffer_1;
25843 TALLOC_CTX *_mem_save_handle_0;
25844 TALLOC_CTX *_mem_save_key_buffer_1;
25845 TALLOC_CTX *_mem_save_needed_0;
25846 if (flags & NDR_IN) {
25847 ZERO_STRUCT(r->out);
25849 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25850 NDR_PULL_ALLOC(ndr, r->in.handle);
25852 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25853 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25854 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25855 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25856 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
25857 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
25858 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
25859 return 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));
25861 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
25862 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));
25863 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.key_buffer_size));
25864 NDR_PULL_ALLOC_N(ndr, r->out.key_buffer, r->in.key_buffer_size / 2);
25865 memset(r->out.key_buffer, 0, (r->in.key_buffer_size / 2) * sizeof(*r->out.key_buffer));
25866 NDR_PULL_ALLOC(ndr, r->out.needed);
25867 ZERO_STRUCTP(r->out.needed);
25869 if (flags & NDR_OUT) {
25870 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.key_buffer));
25871 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25872 NDR_PULL_ALLOC_N(ndr, r->out.key_buffer, ndr_get_array_size(ndr, &r->out.key_buffer));
25874 _mem_save_key_buffer_1 = NDR_PULL_GET_MEM_CTX(ndr);
25875 NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, 0);
25876 for (cntr_key_buffer_1 = 0; cntr_key_buffer_1 < r->in.key_buffer_size / 2; cntr_key_buffer_1++) {
25877 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.key_buffer[cntr_key_buffer_1]));
25879 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_1, 0);
25880 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25881 NDR_PULL_ALLOC(ndr, r->out.needed);
25883 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25884 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25885 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25886 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25887 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25888 if (r->out.key_buffer) {
25889 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.key_buffer, r->in.key_buffer_size / 2));
25892 return NDR_ERR_SUCCESS;
25895 _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterKey *r)
25897 uint32_t cntr_key_buffer_1;
25898 ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
25899 ndr->depth++;
25900 if (flags & NDR_SET_VALUES) {
25901 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25903 if (flags & NDR_IN) {
25904 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterKey");
25905 ndr->depth++;
25906 ndr_print_ptr(ndr, "handle", r->in.handle);
25907 ndr->depth++;
25908 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25909 ndr->depth--;
25910 ndr_print_string(ndr, "key_name", r->in.key_name);
25911 ndr_print_uint32(ndr, "key_buffer_size", r->in.key_buffer_size);
25912 ndr->depth--;
25914 if (flags & NDR_OUT) {
25915 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
25916 ndr->depth++;
25917 ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
25918 ndr->depth++;
25919 ndr->print(ndr, "%s: ARRAY(%d)", "key_buffer", (int)r->in.key_buffer_size / 2);
25920 ndr->depth++;
25921 for (cntr_key_buffer_1=0;cntr_key_buffer_1<r->in.key_buffer_size / 2;cntr_key_buffer_1++) {
25922 char *idx_1=NULL;
25923 if (asprintf(&idx_1, "[%d]", cntr_key_buffer_1) != -1) {
25924 ndr_print_uint16(ndr, "key_buffer", r->out.key_buffer[cntr_key_buffer_1]);
25925 free(idx_1);
25928 ndr->depth--;
25929 ndr->depth--;
25930 ndr_print_ptr(ndr, "needed", r->out.needed);
25931 ndr->depth++;
25932 ndr_print_uint32(ndr, "needed", *r->out.needed);
25933 ndr->depth--;
25934 ndr_print_WERROR(ndr, "result", r->out.result);
25935 ndr->depth--;
25937 ndr->depth--;
25940 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDataEx *r)
25942 if (flags & NDR_IN) {
25943 if (r->in.handle == NULL) {
25944 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25946 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25947 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
25948 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25949 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
25950 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));
25951 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25952 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25953 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25954 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));
25956 if (flags & NDR_OUT) {
25957 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25959 return NDR_ERR_SUCCESS;
25962 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDataEx *r)
25964 TALLOC_CTX *_mem_save_handle_0;
25965 if (flags & NDR_IN) {
25966 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25967 NDR_PULL_ALLOC(ndr, r->in.handle);
25969 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25970 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25971 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25972 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25973 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
25974 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
25975 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
25976 return 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));
25978 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
25979 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));
25980 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
25981 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
25982 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
25983 return 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));
25985 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
25986 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));
25988 if (flags & NDR_OUT) {
25989 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25991 return NDR_ERR_SUCCESS;
25994 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDataEx *r)
25996 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
25997 ndr->depth++;
25998 if (flags & NDR_SET_VALUES) {
25999 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26001 if (flags & NDR_IN) {
26002 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDataEx");
26003 ndr->depth++;
26004 ndr_print_ptr(ndr, "handle", r->in.handle);
26005 ndr->depth++;
26006 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26007 ndr->depth--;
26008 ndr_print_string(ndr, "key_name", r->in.key_name);
26009 ndr_print_string(ndr, "value_name", r->in.value_name);
26010 ndr->depth--;
26012 if (flags & NDR_OUT) {
26013 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
26014 ndr->depth++;
26015 ndr_print_WERROR(ndr, "result", r->out.result);
26016 ndr->depth--;
26018 ndr->depth--;
26021 static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterKey *r)
26023 if (flags & NDR_IN) {
26024 if (r->in.handle == NULL) {
26025 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26027 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26028 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26029 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26030 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26031 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));
26033 if (flags & NDR_OUT) {
26034 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26036 return NDR_ERR_SUCCESS;
26039 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterKey *r)
26041 TALLOC_CTX *_mem_save_handle_0;
26042 if (flags & NDR_IN) {
26043 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26044 NDR_PULL_ALLOC(ndr, r->in.handle);
26046 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26047 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26048 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26049 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26050 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26051 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26052 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26053 return 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));
26055 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26056 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));
26058 if (flags & NDR_OUT) {
26059 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26061 return NDR_ERR_SUCCESS;
26064 _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterKey *r)
26066 ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
26067 ndr->depth++;
26068 if (flags & NDR_SET_VALUES) {
26069 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26071 if (flags & NDR_IN) {
26072 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
26073 ndr->depth++;
26074 ndr_print_ptr(ndr, "handle", r->in.handle);
26075 ndr->depth++;
26076 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26077 ndr->depth--;
26078 ndr_print_string(ndr, "key_name", r->in.key_name);
26079 ndr->depth--;
26081 if (flags & NDR_OUT) {
26082 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
26083 ndr->depth++;
26084 ndr_print_WERROR(ndr, "result", r->out.result);
26085 ndr->depth--;
26087 ndr->depth--;
26090 static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, int flags, const struct spoolss_53 *r)
26092 if (flags & NDR_IN) {
26094 if (flags & NDR_OUT) {
26095 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26097 return NDR_ERR_SUCCESS;
26100 static enum ndr_err_code ndr_pull_spoolss_53(struct ndr_pull *ndr, int flags, struct spoolss_53 *r)
26102 if (flags & NDR_IN) {
26104 if (flags & NDR_OUT) {
26105 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26107 return NDR_ERR_SUCCESS;
26110 _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_53 *r)
26112 ndr_print_struct(ndr, name, "spoolss_53");
26113 ndr->depth++;
26114 if (flags & NDR_SET_VALUES) {
26115 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26117 if (flags & NDR_IN) {
26118 ndr_print_struct(ndr, "in", "spoolss_53");
26119 ndr->depth++;
26120 ndr->depth--;
26122 if (flags & NDR_OUT) {
26123 ndr_print_struct(ndr, "out", "spoolss_53");
26124 ndr->depth++;
26125 ndr_print_WERROR(ndr, "result", r->out.result);
26126 ndr->depth--;
26128 ndr->depth--;
26131 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriverEx *r)
26133 if (flags & NDR_IN) {
26134 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
26135 if (r->in.server) {
26136 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26137 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26138 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26139 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26141 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
26142 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26143 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
26144 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26145 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
26146 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26147 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
26148 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26149 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
26150 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
26152 if (flags & NDR_OUT) {
26153 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26155 return NDR_ERR_SUCCESS;
26158 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriverEx *r)
26160 uint32_t _ptr_server;
26161 TALLOC_CTX *_mem_save_server_0;
26162 if (flags & NDR_IN) {
26163 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
26164 if (_ptr_server) {
26165 NDR_PULL_ALLOC(ndr, r->in.server);
26166 } else {
26167 r->in.server = NULL;
26169 if (r->in.server) {
26170 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
26171 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
26172 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
26173 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
26174 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
26175 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server), ndr_get_array_length(ndr, &r->in.server));
26177 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
26178 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
26179 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
26181 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
26182 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
26183 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
26184 return 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));
26186 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
26187 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
26188 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
26189 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
26190 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
26191 return 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));
26193 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
26194 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
26195 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
26196 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
26198 if (flags & NDR_OUT) {
26199 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26201 return NDR_ERR_SUCCESS;
26204 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriverEx *r)
26206 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
26207 ndr->depth++;
26208 if (flags & NDR_SET_VALUES) {
26209 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26211 if (flags & NDR_IN) {
26212 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
26213 ndr->depth++;
26214 ndr_print_ptr(ndr, "server", r->in.server);
26215 ndr->depth++;
26216 if (r->in.server) {
26217 ndr_print_string(ndr, "server", r->in.server);
26219 ndr->depth--;
26220 ndr_print_string(ndr, "architecture", r->in.architecture);
26221 ndr_print_string(ndr, "driver", r->in.driver);
26222 ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
26223 ndr_print_uint32(ndr, "version", r->in.version);
26224 ndr->depth--;
26226 if (flags & NDR_OUT) {
26227 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
26228 ndr->depth++;
26229 ndr_print_WERROR(ndr, "result", r->out.result);
26230 ndr->depth--;
26232 ndr->depth--;
26235 static enum ndr_err_code ndr_push_spoolss_55(struct ndr_push *ndr, int flags, const struct spoolss_55 *r)
26237 if (flags & NDR_IN) {
26239 if (flags & NDR_OUT) {
26240 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26242 return NDR_ERR_SUCCESS;
26245 static enum ndr_err_code ndr_pull_spoolss_55(struct ndr_pull *ndr, int flags, struct spoolss_55 *r)
26247 if (flags & NDR_IN) {
26249 if (flags & NDR_OUT) {
26250 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26252 return NDR_ERR_SUCCESS;
26255 _PUBLIC_ void ndr_print_spoolss_55(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_55 *r)
26257 ndr_print_struct(ndr, name, "spoolss_55");
26258 ndr->depth++;
26259 if (flags & NDR_SET_VALUES) {
26260 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26262 if (flags & NDR_IN) {
26263 ndr_print_struct(ndr, "in", "spoolss_55");
26264 ndr->depth++;
26265 ndr->depth--;
26267 if (flags & NDR_OUT) {
26268 ndr_print_struct(ndr, "out", "spoolss_55");
26269 ndr->depth++;
26270 ndr_print_WERROR(ndr, "result", r->out.result);
26271 ndr->depth--;
26273 ndr->depth--;
26276 static enum ndr_err_code ndr_push_spoolss_56(struct ndr_push *ndr, int flags, const struct spoolss_56 *r)
26278 if (flags & NDR_IN) {
26280 if (flags & NDR_OUT) {
26281 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26283 return NDR_ERR_SUCCESS;
26286 static enum ndr_err_code ndr_pull_spoolss_56(struct ndr_pull *ndr, int flags, struct spoolss_56 *r)
26288 if (flags & NDR_IN) {
26290 if (flags & NDR_OUT) {
26291 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26293 return NDR_ERR_SUCCESS;
26296 _PUBLIC_ void ndr_print_spoolss_56(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_56 *r)
26298 ndr_print_struct(ndr, name, "spoolss_56");
26299 ndr->depth++;
26300 if (flags & NDR_SET_VALUES) {
26301 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26303 if (flags & NDR_IN) {
26304 ndr_print_struct(ndr, "in", "spoolss_56");
26305 ndr->depth++;
26306 ndr->depth--;
26308 if (flags & NDR_OUT) {
26309 ndr_print_struct(ndr, "out", "spoolss_56");
26310 ndr->depth++;
26311 ndr_print_WERROR(ndr, "result", r->out.result);
26312 ndr->depth--;
26314 ndr->depth--;
26317 static enum ndr_err_code ndr_push_spoolss_57(struct ndr_push *ndr, int flags, const struct spoolss_57 *r)
26319 if (flags & NDR_IN) {
26321 if (flags & NDR_OUT) {
26322 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26324 return NDR_ERR_SUCCESS;
26327 static enum ndr_err_code ndr_pull_spoolss_57(struct ndr_pull *ndr, int flags, struct spoolss_57 *r)
26329 if (flags & NDR_IN) {
26331 if (flags & NDR_OUT) {
26332 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26334 return NDR_ERR_SUCCESS;
26337 _PUBLIC_ void ndr_print_spoolss_57(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_57 *r)
26339 ndr_print_struct(ndr, name, "spoolss_57");
26340 ndr->depth++;
26341 if (flags & NDR_SET_VALUES) {
26342 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26344 if (flags & NDR_IN) {
26345 ndr_print_struct(ndr, "in", "spoolss_57");
26346 ndr->depth++;
26347 ndr->depth--;
26349 if (flags & NDR_OUT) {
26350 ndr_print_struct(ndr, "out", "spoolss_57");
26351 ndr->depth++;
26352 ndr_print_WERROR(ndr, "result", r->out.result);
26353 ndr->depth--;
26355 ndr->depth--;
26358 static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, int flags, const struct spoolss_XcvData *r)
26360 if (flags & NDR_IN) {
26361 if (r->in.handle == NULL) {
26362 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26364 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26365 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
26366 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26367 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
26368 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));
26369 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
26370 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
26371 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
26372 if (r->in.status_code == NULL) {
26373 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26375 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
26377 if (flags & NDR_OUT) {
26378 if (r->out.out_data == NULL) {
26379 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26381 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
26382 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
26383 if (r->out.needed == NULL) {
26384 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26387 if (r->out.status_code == NULL) {
26388 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26390 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
26391 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26393 return NDR_ERR_SUCCESS;
26396 static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flags, struct spoolss_XcvData *r)
26398 TALLOC_CTX *_mem_save_handle_0;
26399 TALLOC_CTX *_mem_save_needed_0;
26400 TALLOC_CTX *_mem_save_status_code_0;
26401 if (flags & NDR_IN) {
26402 ZERO_STRUCT(r->out);
26404 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26405 NDR_PULL_ALLOC(ndr, r->in.handle);
26407 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26408 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26409 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26410 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26411 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
26412 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
26413 if (ndr_get_array_length(ndr, &r->in.function_name) > ndr_get_array_size(ndr, &r->in.function_name)) {
26414 return 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));
26416 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t)));
26417 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));
26418 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
26419 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
26420 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
26421 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26422 NDR_PULL_ALLOC(ndr, r->in.status_code);
26424 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
26425 NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
26426 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
26427 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
26428 NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
26429 memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
26430 NDR_PULL_ALLOC(ndr, r->out.needed);
26431 ZERO_STRUCTP(r->out.needed);
26432 NDR_PULL_ALLOC(ndr, r->out.status_code);
26433 *r->out.status_code = *r->in.status_code;
26435 if (flags & NDR_OUT) {
26436 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
26437 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26438 NDR_PULL_ALLOC_N(ndr, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data));
26440 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data)));
26441 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26442 NDR_PULL_ALLOC(ndr, r->out.needed);
26444 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26445 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26446 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26447 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26448 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26449 NDR_PULL_ALLOC(ndr, r->out.status_code);
26451 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
26452 NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
26453 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
26454 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
26455 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26456 if (r->out.out_data) {
26457 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
26460 return NDR_ERR_SUCCESS;
26463 _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_XcvData *r)
26465 ndr_print_struct(ndr, name, "spoolss_XcvData");
26466 ndr->depth++;
26467 if (flags & NDR_SET_VALUES) {
26468 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26470 if (flags & NDR_IN) {
26471 ndr_print_struct(ndr, "in", "spoolss_XcvData");
26472 ndr->depth++;
26473 ndr_print_ptr(ndr, "handle", r->in.handle);
26474 ndr->depth++;
26475 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26476 ndr->depth--;
26477 ndr_print_string(ndr, "function_name", r->in.function_name);
26478 ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
26479 ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
26480 ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
26481 ndr_print_ptr(ndr, "status_code", r->in.status_code);
26482 ndr->depth++;
26483 ndr_print_uint32(ndr, "status_code", *r->in.status_code);
26484 ndr->depth--;
26485 ndr->depth--;
26487 if (flags & NDR_OUT) {
26488 ndr_print_struct(ndr, "out", "spoolss_XcvData");
26489 ndr->depth++;
26490 ndr_print_ptr(ndr, "out_data", r->out.out_data);
26491 ndr->depth++;
26492 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
26493 ndr->depth--;
26494 ndr_print_ptr(ndr, "needed", r->out.needed);
26495 ndr->depth++;
26496 ndr_print_uint32(ndr, "needed", *r->out.needed);
26497 ndr->depth--;
26498 ndr_print_ptr(ndr, "status_code", r->out.status_code);
26499 ndr->depth++;
26500 ndr_print_uint32(ndr, "status_code", *r->out.status_code);
26501 ndr->depth--;
26502 ndr_print_WERROR(ndr, "result", r->out.result);
26503 ndr->depth--;
26505 ndr->depth--;
26508 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriverEx *r)
26510 if (flags & NDR_IN) {
26511 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
26512 if (r->in.servername) {
26513 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
26514 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26515 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
26516 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26518 if (r->in.info_ctr == NULL) {
26519 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26521 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
26522 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
26524 if (flags & NDR_OUT) {
26525 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26527 return NDR_ERR_SUCCESS;
26530 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriverEx *r)
26532 uint32_t _ptr_servername;
26533 TALLOC_CTX *_mem_save_servername_0;
26534 TALLOC_CTX *_mem_save_info_ctr_0;
26535 if (flags & NDR_IN) {
26536 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
26537 if (_ptr_servername) {
26538 NDR_PULL_ALLOC(ndr, r->in.servername);
26539 } else {
26540 r->in.servername = NULL;
26542 if (r->in.servername) {
26543 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
26544 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
26545 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
26546 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
26547 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
26548 return 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));
26550 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
26551 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
26552 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
26554 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26555 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
26557 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26558 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
26559 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
26560 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26561 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
26563 if (flags & NDR_OUT) {
26564 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26566 return NDR_ERR_SUCCESS;
26569 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriverEx *r)
26571 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
26572 ndr->depth++;
26573 if (flags & NDR_SET_VALUES) {
26574 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26576 if (flags & NDR_IN) {
26577 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
26578 ndr->depth++;
26579 ndr_print_ptr(ndr, "servername", r->in.servername);
26580 ndr->depth++;
26581 if (r->in.servername) {
26582 ndr_print_string(ndr, "servername", r->in.servername);
26584 ndr->depth--;
26585 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
26586 ndr->depth++;
26587 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
26588 ndr->depth--;
26589 ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
26590 ndr->depth--;
26592 if (flags & NDR_OUT) {
26593 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
26594 ndr->depth++;
26595 ndr_print_WERROR(ndr, "result", r->out.result);
26596 ndr->depth--;
26598 ndr->depth--;
26601 static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, int flags, const struct spoolss_5a *r)
26603 if (flags & NDR_IN) {
26605 if (flags & NDR_OUT) {
26606 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26608 return NDR_ERR_SUCCESS;
26611 static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, int flags, struct spoolss_5a *r)
26613 if (flags & NDR_IN) {
26615 if (flags & NDR_OUT) {
26616 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26618 return NDR_ERR_SUCCESS;
26621 _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5a *r)
26623 ndr_print_struct(ndr, name, "spoolss_5a");
26624 ndr->depth++;
26625 if (flags & NDR_SET_VALUES) {
26626 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26628 if (flags & NDR_IN) {
26629 ndr_print_struct(ndr, "in", "spoolss_5a");
26630 ndr->depth++;
26631 ndr->depth--;
26633 if (flags & NDR_OUT) {
26634 ndr_print_struct(ndr, "out", "spoolss_5a");
26635 ndr->depth++;
26636 ndr_print_WERROR(ndr, "result", r->out.result);
26637 ndr->depth--;
26639 ndr->depth--;
26642 static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, int flags, const struct spoolss_5b *r)
26644 if (flags & NDR_IN) {
26646 if (flags & NDR_OUT) {
26647 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26649 return NDR_ERR_SUCCESS;
26652 static enum ndr_err_code ndr_pull_spoolss_5b(struct ndr_pull *ndr, int flags, struct spoolss_5b *r)
26654 if (flags & NDR_IN) {
26656 if (flags & NDR_OUT) {
26657 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26659 return NDR_ERR_SUCCESS;
26662 _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5b *r)
26664 ndr_print_struct(ndr, name, "spoolss_5b");
26665 ndr->depth++;
26666 if (flags & NDR_SET_VALUES) {
26667 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26669 if (flags & NDR_IN) {
26670 ndr_print_struct(ndr, "in", "spoolss_5b");
26671 ndr->depth++;
26672 ndr->depth--;
26674 if (flags & NDR_OUT) {
26675 ndr_print_struct(ndr, "out", "spoolss_5b");
26676 ndr->depth++;
26677 ndr_print_WERROR(ndr, "result", r->out.result);
26678 ndr->depth--;
26680 ndr->depth--;
26683 static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, int flags, const struct spoolss_5c *r)
26685 if (flags & NDR_IN) {
26687 if (flags & NDR_OUT) {
26688 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26690 return NDR_ERR_SUCCESS;
26693 static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, int flags, struct spoolss_5c *r)
26695 if (flags & NDR_IN) {
26697 if (flags & NDR_OUT) {
26698 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26700 return NDR_ERR_SUCCESS;
26703 _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5c *r)
26705 ndr_print_struct(ndr, name, "spoolss_5c");
26706 ndr->depth++;
26707 if (flags & NDR_SET_VALUES) {
26708 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26710 if (flags & NDR_IN) {
26711 ndr_print_struct(ndr, "in", "spoolss_5c");
26712 ndr->depth++;
26713 ndr->depth--;
26715 if (flags & NDR_OUT) {
26716 ndr_print_struct(ndr, "out", "spoolss_5c");
26717 ndr->depth++;
26718 ndr_print_WERROR(ndr, "result", r->out.result);
26719 ndr->depth--;
26721 ndr->depth--;
26724 static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, int flags, const struct spoolss_5d *r)
26726 if (flags & NDR_IN) {
26728 if (flags & NDR_OUT) {
26729 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26731 return NDR_ERR_SUCCESS;
26734 static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, int flags, struct spoolss_5d *r)
26736 if (flags & NDR_IN) {
26738 if (flags & NDR_OUT) {
26739 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26741 return NDR_ERR_SUCCESS;
26744 _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5d *r)
26746 ndr_print_struct(ndr, name, "spoolss_5d");
26747 ndr->depth++;
26748 if (flags & NDR_SET_VALUES) {
26749 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26751 if (flags & NDR_IN) {
26752 ndr_print_struct(ndr, "in", "spoolss_5d");
26753 ndr->depth++;
26754 ndr->depth--;
26756 if (flags & NDR_OUT) {
26757 ndr_print_struct(ndr, "out", "spoolss_5d");
26758 ndr->depth++;
26759 ndr_print_WERROR(ndr, "result", r->out.result);
26760 ndr->depth--;
26762 ndr->depth--;
26765 static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, int flags, const struct spoolss_5e *r)
26767 if (flags & NDR_IN) {
26769 if (flags & NDR_OUT) {
26770 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26772 return NDR_ERR_SUCCESS;
26775 static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, int flags, struct spoolss_5e *r)
26777 if (flags & NDR_IN) {
26779 if (flags & NDR_OUT) {
26780 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26782 return NDR_ERR_SUCCESS;
26785 _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5e *r)
26787 ndr_print_struct(ndr, name, "spoolss_5e");
26788 ndr->depth++;
26789 if (flags & NDR_SET_VALUES) {
26790 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26792 if (flags & NDR_IN) {
26793 ndr_print_struct(ndr, "in", "spoolss_5e");
26794 ndr->depth++;
26795 ndr->depth--;
26797 if (flags & NDR_OUT) {
26798 ndr_print_struct(ndr, "out", "spoolss_5e");
26799 ndr->depth++;
26800 ndr_print_WERROR(ndr, "result", r->out.result);
26801 ndr->depth--;
26803 ndr->depth--;
26806 static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, int flags, const struct spoolss_5f *r)
26808 if (flags & NDR_IN) {
26810 if (flags & NDR_OUT) {
26811 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26813 return NDR_ERR_SUCCESS;
26816 static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, int flags, struct spoolss_5f *r)
26818 if (flags & NDR_IN) {
26820 if (flags & NDR_OUT) {
26821 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26823 return NDR_ERR_SUCCESS;
26826 _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5f *r)
26828 ndr_print_struct(ndr, name, "spoolss_5f");
26829 ndr->depth++;
26830 if (flags & NDR_SET_VALUES) {
26831 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26833 if (flags & NDR_IN) {
26834 ndr_print_struct(ndr, "in", "spoolss_5f");
26835 ndr->depth++;
26836 ndr->depth--;
26838 if (flags & NDR_OUT) {
26839 ndr_print_struct(ndr, "out", "spoolss_5f");
26840 ndr->depth++;
26841 ndr_print_WERROR(ndr, "result", r->out.result);
26842 ndr->depth--;
26844 ndr->depth--;
26847 static const struct ndr_interface_call spoolss_calls[] = {
26849 "spoolss_EnumPrinters",
26850 sizeof(struct spoolss_EnumPrinters),
26851 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
26852 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
26853 (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
26854 false,
26857 "spoolss_OpenPrinter",
26858 sizeof(struct spoolss_OpenPrinter),
26859 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
26860 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
26861 (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
26862 false,
26865 "spoolss_SetJob",
26866 sizeof(struct spoolss_SetJob),
26867 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
26868 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
26869 (ndr_print_function_t) ndr_print_spoolss_SetJob,
26870 false,
26873 "spoolss_GetJob",
26874 sizeof(struct spoolss_GetJob),
26875 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
26876 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
26877 (ndr_print_function_t) ndr_print_spoolss_GetJob,
26878 false,
26881 "spoolss_EnumJobs",
26882 sizeof(struct spoolss_EnumJobs),
26883 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
26884 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
26885 (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
26886 false,
26889 "spoolss_AddPrinter",
26890 sizeof(struct spoolss_AddPrinter),
26891 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
26892 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
26893 (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
26894 false,
26897 "spoolss_DeletePrinter",
26898 sizeof(struct spoolss_DeletePrinter),
26899 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
26900 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
26901 (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
26902 false,
26905 "spoolss_SetPrinter",
26906 sizeof(struct spoolss_SetPrinter),
26907 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
26908 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
26909 (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
26910 false,
26913 "spoolss_GetPrinter",
26914 sizeof(struct spoolss_GetPrinter),
26915 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
26916 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
26917 (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
26918 false,
26921 "spoolss_AddPrinterDriver",
26922 sizeof(struct spoolss_AddPrinterDriver),
26923 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
26924 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
26925 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
26926 false,
26929 "spoolss_EnumPrinterDrivers",
26930 sizeof(struct spoolss_EnumPrinterDrivers),
26931 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
26932 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
26933 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
26934 false,
26937 "spoolss_GetPrinterDriver",
26938 sizeof(struct spoolss_GetPrinterDriver),
26939 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
26940 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
26941 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
26942 false,
26945 "spoolss_GetPrinterDriverDirectory",
26946 sizeof(struct spoolss_GetPrinterDriverDirectory),
26947 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
26948 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
26949 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
26950 false,
26953 "spoolss_DeletePrinterDriver",
26954 sizeof(struct spoolss_DeletePrinterDriver),
26955 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
26956 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
26957 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
26958 false,
26961 "spoolss_AddPrintProcessor",
26962 sizeof(struct spoolss_AddPrintProcessor),
26963 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
26964 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
26965 (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
26966 false,
26969 "spoolss_EnumPrintProcessors",
26970 sizeof(struct spoolss_EnumPrintProcessors),
26971 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
26972 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
26973 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
26974 false,
26977 "spoolss_GetPrintProcessorDirectory",
26978 sizeof(struct spoolss_GetPrintProcessorDirectory),
26979 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
26980 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
26981 (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
26982 false,
26985 "spoolss_StartDocPrinter",
26986 sizeof(struct spoolss_StartDocPrinter),
26987 (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
26988 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
26989 (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
26990 false,
26993 "spoolss_StartPagePrinter",
26994 sizeof(struct spoolss_StartPagePrinter),
26995 (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
26996 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
26997 (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
26998 false,
27001 "spoolss_WritePrinter",
27002 sizeof(struct spoolss_WritePrinter),
27003 (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
27004 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
27005 (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
27006 false,
27009 "spoolss_EndPagePrinter",
27010 sizeof(struct spoolss_EndPagePrinter),
27011 (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
27012 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
27013 (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
27014 false,
27017 "spoolss_AbortPrinter",
27018 sizeof(struct spoolss_AbortPrinter),
27019 (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
27020 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
27021 (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
27022 false,
27025 "spoolss_ReadPrinter",
27026 sizeof(struct spoolss_ReadPrinter),
27027 (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
27028 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
27029 (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
27030 false,
27033 "spoolss_EndDocPrinter",
27034 sizeof(struct spoolss_EndDocPrinter),
27035 (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
27036 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
27037 (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
27038 false,
27041 "spoolss_AddJob",
27042 sizeof(struct spoolss_AddJob),
27043 (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
27044 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
27045 (ndr_print_function_t) ndr_print_spoolss_AddJob,
27046 false,
27049 "spoolss_ScheduleJob",
27050 sizeof(struct spoolss_ScheduleJob),
27051 (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
27052 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
27053 (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
27054 false,
27057 "spoolss_GetPrinterData",
27058 sizeof(struct spoolss_GetPrinterData),
27059 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
27060 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
27061 (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
27062 false,
27065 "spoolss_SetPrinterData",
27066 sizeof(struct spoolss_SetPrinterData),
27067 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
27068 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
27069 (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
27070 false,
27073 "spoolss_WaitForPrinterChange",
27074 sizeof(struct spoolss_WaitForPrinterChange),
27075 (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
27076 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
27077 (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
27078 false,
27081 "spoolss_ClosePrinter",
27082 sizeof(struct spoolss_ClosePrinter),
27083 (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
27084 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
27085 (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
27086 false,
27089 "spoolss_AddForm",
27090 sizeof(struct spoolss_AddForm),
27091 (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
27092 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
27093 (ndr_print_function_t) ndr_print_spoolss_AddForm,
27094 false,
27097 "spoolss_DeleteForm",
27098 sizeof(struct spoolss_DeleteForm),
27099 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
27100 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
27101 (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
27102 false,
27105 "spoolss_GetForm",
27106 sizeof(struct spoolss_GetForm),
27107 (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
27108 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
27109 (ndr_print_function_t) ndr_print_spoolss_GetForm,
27110 false,
27113 "spoolss_SetForm",
27114 sizeof(struct spoolss_SetForm),
27115 (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
27116 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
27117 (ndr_print_function_t) ndr_print_spoolss_SetForm,
27118 false,
27121 "spoolss_EnumForms",
27122 sizeof(struct spoolss_EnumForms),
27123 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
27124 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
27125 (ndr_print_function_t) ndr_print_spoolss_EnumForms,
27126 false,
27129 "spoolss_EnumPorts",
27130 sizeof(struct spoolss_EnumPorts),
27131 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
27132 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
27133 (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
27134 false,
27137 "spoolss_EnumMonitors",
27138 sizeof(struct spoolss_EnumMonitors),
27139 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
27140 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
27141 (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
27142 false,
27145 "spoolss_AddPort",
27146 sizeof(struct spoolss_AddPort),
27147 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
27148 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
27149 (ndr_print_function_t) ndr_print_spoolss_AddPort,
27150 false,
27153 "spoolss_ConfigurePort",
27154 sizeof(struct spoolss_ConfigurePort),
27155 (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
27156 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
27157 (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
27158 false,
27161 "spoolss_DeletePort",
27162 sizeof(struct spoolss_DeletePort),
27163 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
27164 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
27165 (ndr_print_function_t) ndr_print_spoolss_DeletePort,
27166 false,
27169 "spoolss_CreatePrinterIC",
27170 sizeof(struct spoolss_CreatePrinterIC),
27171 (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
27172 (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
27173 (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
27174 false,
27177 "spoolss_PlayGDIScriptOnPrinterIC",
27178 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
27179 (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
27180 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
27181 (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
27182 false,
27185 "spoolss_DeletePrinterIC",
27186 sizeof(struct spoolss_DeletePrinterIC),
27187 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
27188 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
27189 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
27190 false,
27193 "spoolss_AddPrinterConnection",
27194 sizeof(struct spoolss_AddPrinterConnection),
27195 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
27196 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
27197 (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
27198 false,
27201 "spoolss_DeletePrinterConnection",
27202 sizeof(struct spoolss_DeletePrinterConnection),
27203 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
27204 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
27205 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
27206 false,
27209 "spoolss_PrinterMessageBox",
27210 sizeof(struct spoolss_PrinterMessageBox),
27211 (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
27212 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
27213 (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
27214 false,
27217 "spoolss_AddMonitor",
27218 sizeof(struct spoolss_AddMonitor),
27219 (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
27220 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
27221 (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
27222 false,
27225 "spoolss_DeleteMonitor",
27226 sizeof(struct spoolss_DeleteMonitor),
27227 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
27228 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
27229 (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
27230 false,
27233 "spoolss_DeletePrintProcessor",
27234 sizeof(struct spoolss_DeletePrintProcessor),
27235 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
27236 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
27237 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
27238 false,
27241 "spoolss_AddPrintProvidor",
27242 sizeof(struct spoolss_AddPrintProvidor),
27243 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
27244 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
27245 (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
27246 false,
27249 "spoolss_DeletePrintProvidor",
27250 sizeof(struct spoolss_DeletePrintProvidor),
27251 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
27252 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
27253 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
27254 false,
27257 "spoolss_EnumPrintProcDataTypes",
27258 sizeof(struct spoolss_EnumPrintProcDataTypes),
27259 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcDataTypes,
27260 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcDataTypes,
27261 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcDataTypes,
27262 false,
27265 "spoolss_ResetPrinter",
27266 sizeof(struct spoolss_ResetPrinter),
27267 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
27268 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
27269 (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
27270 false,
27273 "spoolss_GetPrinterDriver2",
27274 sizeof(struct spoolss_GetPrinterDriver2),
27275 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
27276 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
27277 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
27278 false,
27281 "spoolss_FindFirstPrinterChangeNotification",
27282 sizeof(struct spoolss_FindFirstPrinterChangeNotification),
27283 (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
27284 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
27285 (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
27286 false,
27289 "spoolss_FindNextPrinterChangeNotification",
27290 sizeof(struct spoolss_FindNextPrinterChangeNotification),
27291 (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
27292 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
27293 (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
27294 false,
27297 "spoolss_FindClosePrinterNotify",
27298 sizeof(struct spoolss_FindClosePrinterNotify),
27299 (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
27300 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
27301 (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
27302 false,
27305 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
27306 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
27307 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
27308 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
27309 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
27310 false,
27313 "spoolss_ReplyOpenPrinter",
27314 sizeof(struct spoolss_ReplyOpenPrinter),
27315 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
27316 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
27317 (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
27318 false,
27321 "spoolss_RouterReplyPrinter",
27322 sizeof(struct spoolss_RouterReplyPrinter),
27323 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
27324 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
27325 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
27326 false,
27329 "spoolss_ReplyClosePrinter",
27330 sizeof(struct spoolss_ReplyClosePrinter),
27331 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
27332 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
27333 (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
27334 false,
27337 "spoolss_AddPortEx",
27338 sizeof(struct spoolss_AddPortEx),
27339 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
27340 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
27341 (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
27342 false,
27345 "spoolss_RouterFindFirstPrinterChangeNotification",
27346 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
27347 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
27348 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
27349 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
27350 false,
27353 "spoolss_SpoolerInit",
27354 sizeof(struct spoolss_SpoolerInit),
27355 (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
27356 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
27357 (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
27358 false,
27361 "spoolss_ResetPrinterEx",
27362 sizeof(struct spoolss_ResetPrinterEx),
27363 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
27364 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
27365 (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
27366 false,
27369 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
27370 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
27371 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
27372 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
27373 (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
27374 false,
27377 "spoolss_RouterReplyPrinterEx",
27378 sizeof(struct spoolss_RouterReplyPrinterEx),
27379 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinterEx,
27380 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinterEx,
27381 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinterEx,
27382 false,
27385 "spoolss_RouterRefreshPrinterChangeNotify",
27386 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify),
27387 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotify,
27388 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify,
27389 (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotify,
27390 false,
27393 "spoolss_44",
27394 sizeof(struct spoolss_44),
27395 (ndr_push_flags_fn_t) ndr_push_spoolss_44,
27396 (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
27397 (ndr_print_function_t) ndr_print_spoolss_44,
27398 false,
27401 "spoolss_OpenPrinterEx",
27402 sizeof(struct spoolss_OpenPrinterEx),
27403 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
27404 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
27405 (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
27406 false,
27409 "spoolss_AddPrinterEx",
27410 sizeof(struct spoolss_AddPrinterEx),
27411 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
27412 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
27413 (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
27414 false,
27417 "spoolss_47",
27418 sizeof(struct spoolss_47),
27419 (ndr_push_flags_fn_t) ndr_push_spoolss_47,
27420 (ndr_pull_flags_fn_t) ndr_pull_spoolss_47,
27421 (ndr_print_function_t) ndr_print_spoolss_47,
27422 false,
27425 "spoolss_EnumPrinterData",
27426 sizeof(struct spoolss_EnumPrinterData),
27427 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
27428 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
27429 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
27430 false,
27433 "spoolss_DeletePrinterData",
27434 sizeof(struct spoolss_DeletePrinterData),
27435 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
27436 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
27437 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
27438 false,
27441 "spoolss_4a",
27442 sizeof(struct spoolss_4a),
27443 (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
27444 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
27445 (ndr_print_function_t) ndr_print_spoolss_4a,
27446 false,
27449 "spoolss_4b",
27450 sizeof(struct spoolss_4b),
27451 (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
27452 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
27453 (ndr_print_function_t) ndr_print_spoolss_4b,
27454 false,
27457 "spoolss_4c",
27458 sizeof(struct spoolss_4c),
27459 (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
27460 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
27461 (ndr_print_function_t) ndr_print_spoolss_4c,
27462 false,
27465 "spoolss_SetPrinterDataEx",
27466 sizeof(struct spoolss_SetPrinterDataEx),
27467 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
27468 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
27469 (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
27470 false,
27473 "spoolss_GetPrinterDataEx",
27474 sizeof(struct spoolss_GetPrinterDataEx),
27475 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
27476 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
27477 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
27478 false,
27481 "spoolss_EnumPrinterDataEx",
27482 sizeof(struct spoolss_EnumPrinterDataEx),
27483 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
27484 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
27485 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
27486 false,
27489 "spoolss_EnumPrinterKey",
27490 sizeof(struct spoolss_EnumPrinterKey),
27491 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
27492 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
27493 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
27494 false,
27497 "spoolss_DeletePrinterDataEx",
27498 sizeof(struct spoolss_DeletePrinterDataEx),
27499 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
27500 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
27501 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
27502 false,
27505 "spoolss_DeletePrinterKey",
27506 sizeof(struct spoolss_DeletePrinterKey),
27507 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
27508 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
27509 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
27510 false,
27513 "spoolss_53",
27514 sizeof(struct spoolss_53),
27515 (ndr_push_flags_fn_t) ndr_push_spoolss_53,
27516 (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
27517 (ndr_print_function_t) ndr_print_spoolss_53,
27518 false,
27521 "spoolss_DeletePrinterDriverEx",
27522 sizeof(struct spoolss_DeletePrinterDriverEx),
27523 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
27524 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
27525 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
27526 false,
27529 "spoolss_55",
27530 sizeof(struct spoolss_55),
27531 (ndr_push_flags_fn_t) ndr_push_spoolss_55,
27532 (ndr_pull_flags_fn_t) ndr_pull_spoolss_55,
27533 (ndr_print_function_t) ndr_print_spoolss_55,
27534 false,
27537 "spoolss_56",
27538 sizeof(struct spoolss_56),
27539 (ndr_push_flags_fn_t) ndr_push_spoolss_56,
27540 (ndr_pull_flags_fn_t) ndr_pull_spoolss_56,
27541 (ndr_print_function_t) ndr_print_spoolss_56,
27542 false,
27545 "spoolss_57",
27546 sizeof(struct spoolss_57),
27547 (ndr_push_flags_fn_t) ndr_push_spoolss_57,
27548 (ndr_pull_flags_fn_t) ndr_pull_spoolss_57,
27549 (ndr_print_function_t) ndr_print_spoolss_57,
27550 false,
27553 "spoolss_XcvData",
27554 sizeof(struct spoolss_XcvData),
27555 (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
27556 (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
27557 (ndr_print_function_t) ndr_print_spoolss_XcvData,
27558 false,
27561 "spoolss_AddPrinterDriverEx",
27562 sizeof(struct spoolss_AddPrinterDriverEx),
27563 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
27564 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
27565 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
27566 false,
27569 "spoolss_5a",
27570 sizeof(struct spoolss_5a),
27571 (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
27572 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
27573 (ndr_print_function_t) ndr_print_spoolss_5a,
27574 false,
27577 "spoolss_5b",
27578 sizeof(struct spoolss_5b),
27579 (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
27580 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
27581 (ndr_print_function_t) ndr_print_spoolss_5b,
27582 false,
27585 "spoolss_5c",
27586 sizeof(struct spoolss_5c),
27587 (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
27588 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
27589 (ndr_print_function_t) ndr_print_spoolss_5c,
27590 false,
27593 "spoolss_5d",
27594 sizeof(struct spoolss_5d),
27595 (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
27596 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
27597 (ndr_print_function_t) ndr_print_spoolss_5d,
27598 false,
27601 "spoolss_5e",
27602 sizeof(struct spoolss_5e),
27603 (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
27604 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
27605 (ndr_print_function_t) ndr_print_spoolss_5e,
27606 false,
27609 "spoolss_5f",
27610 sizeof(struct spoolss_5f),
27611 (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
27612 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
27613 (ndr_print_function_t) ndr_print_spoolss_5f,
27614 false,
27616 { NULL, 0, NULL, NULL, NULL, false }
27619 static const char * const spoolss_endpoint_strings[] = {
27620 "ncacn_np:[\\pipe\\spoolss]",
27623 static const struct ndr_interface_string_array spoolss_endpoints = {
27624 .count = 1,
27625 .names = spoolss_endpoint_strings
27628 static const char * const spoolss_authservice_strings[] = {
27629 "host",
27632 static const struct ndr_interface_string_array spoolss_authservices = {
27633 .count = 1,
27634 .names = spoolss_authservice_strings
27638 const struct ndr_interface_table ndr_table_spoolss = {
27639 .name = "spoolss",
27640 .syntax_id = {
27641 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
27642 NDR_SPOOLSS_VERSION
27644 .helpstring = NDR_SPOOLSS_HELPSTRING,
27645 .num_calls = 96,
27646 .calls = spoolss_calls,
27647 .endpoints = &spoolss_endpoints,
27648 .authservices = &spoolss_authservices