s3: re-run make samba3-idl.
[Samba/gbeck.git] / librpc / gen_ndr / ndr_spoolss.c
blobf82f42e146c3ce2e616d4250d2d4c850145143ee
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_PrinterStatus(struct ndr_push *ndr, int ndr_flags, uint32_t r)
229 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
230 return NDR_ERR_SUCCESS;
233 static enum ndr_err_code ndr_pull_spoolss_PrinterStatus(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
235 uint32_t v;
236 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
237 *r = v;
238 return NDR_ERR_SUCCESS;
241 _PUBLIC_ void ndr_print_spoolss_PrinterStatus(struct ndr_print *ndr, const char *name, uint32_t r)
243 ndr_print_uint32(ndr, name, r);
244 ndr->depth++;
245 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAUSED", PRINTER_STATUS_PAUSED, r);
246 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_ERROR", PRINTER_STATUS_ERROR, r);
247 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PENDING_DELETION", PRINTER_STATUS_PENDING_DELETION, r);
248 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_JAM", PRINTER_STATUS_PAPER_JAM, r);
249 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_OUT", PRINTER_STATUS_PAPER_OUT, r);
250 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_MANUAL_FEED", PRINTER_STATUS_MANUAL_FEED, r);
251 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_PROBLEM", PRINTER_STATUS_PAPER_PROBLEM, r);
252 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OFFLINE", PRINTER_STATUS_OFFLINE, r);
253 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_IO_ACTIVE", PRINTER_STATUS_IO_ACTIVE, r);
254 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_BUSY", PRINTER_STATUS_BUSY, r);
255 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PRINTING", PRINTER_STATUS_PRINTING, r);
256 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUTPUT_BIN_FULL", PRINTER_STATUS_OUTPUT_BIN_FULL, r);
257 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NOT_AVAILABLE", PRINTER_STATUS_NOT_AVAILABLE, r);
258 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WAITING", PRINTER_STATUS_WAITING, r);
259 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PROCESSING", PRINTER_STATUS_PROCESSING, r);
260 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_INITIALIZING", PRINTER_STATUS_INITIALIZING, r);
261 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WARMING_UP", PRINTER_STATUS_WARMING_UP, r);
262 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_TONER_LOW", PRINTER_STATUS_TONER_LOW, r);
263 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NO_TONER", PRINTER_STATUS_NO_TONER, r);
264 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAGE_PUNT", PRINTER_STATUS_PAGE_PUNT, r);
265 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_USER_INTERVENTION", PRINTER_STATUS_USER_INTERVENTION, r);
266 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUT_OF_MEMORY", PRINTER_STATUS_OUT_OF_MEMORY, r);
267 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_DOOR_OPEN", PRINTER_STATUS_DOOR_OPEN, r);
268 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_SERVER_UNKNOWN", PRINTER_STATUS_SERVER_UNKNOWN, r);
269 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_POWER_SAVE", PRINTER_STATUS_POWER_SAVE, r);
270 ndr->depth--;
273 static enum ndr_err_code ndr_push_spoolss_JobStatus(struct ndr_push *ndr, int ndr_flags, uint32_t r)
275 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
276 return NDR_ERR_SUCCESS;
279 static enum ndr_err_code ndr_pull_spoolss_JobStatus(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
281 uint32_t v;
282 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
283 *r = v;
284 return NDR_ERR_SUCCESS;
287 _PUBLIC_ void ndr_print_spoolss_JobStatus(struct ndr_print *ndr, const char *name, uint32_t r)
289 ndr_print_uint32(ndr, name, r);
290 ndr->depth++;
291 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PAUSED", JOB_STATUS_PAUSED, r);
292 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_ERROR", JOB_STATUS_ERROR, r);
293 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_DELETING", JOB_STATUS_DELETING, r);
294 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_SPOOLING", JOB_STATUS_SPOOLING, r);
295 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PRINTING", JOB_STATUS_PRINTING, r);
296 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_OFFLINE", JOB_STATUS_OFFLINE, r);
297 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PAPEROUT", JOB_STATUS_PAPEROUT, r);
298 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PRINTED", JOB_STATUS_PRINTED, r);
299 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_DELETED", JOB_STATUS_DELETED, r);
300 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_BLOCKED_DEVQ", JOB_STATUS_BLOCKED_DEVQ, r);
301 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_USER_INTERVENTION", JOB_STATUS_USER_INTERVENTION, r);
302 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_RESTART", JOB_STATUS_RESTART, r);
303 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_COMPLETE", JOB_STATUS_COMPLETE, r);
304 ndr->depth--;
307 static enum ndr_err_code ndr_push_spoolss_PrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo0 *r)
309 if (ndr_flags & NDR_SCALARS) {
310 NDR_CHECK(ndr_push_align(ndr, 4));
312 uint32_t _flags_save_string = ndr->flags;
313 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
314 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
315 ndr->flags = _flags_save_string;
318 uint32_t _flags_save_string = ndr->flags;
319 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
320 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
321 ndr->flags = _flags_save_string;
323 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
324 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
325 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
326 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
327 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
329 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
330 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
332 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
333 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
334 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
335 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
336 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->job_error));
337 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
338 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
339 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
340 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
341 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
342 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
343 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
344 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
345 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
346 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
347 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
348 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
349 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
351 if (ndr_flags & NDR_BUFFERS) {
353 uint32_t _flags_save_string = ndr->flags;
354 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
355 if (r->printername) {
356 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
357 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
359 ndr->flags = _flags_save_string;
362 uint32_t _flags_save_string = ndr->flags;
363 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
364 if (r->servername) {
365 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
366 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
368 ndr->flags = _flags_save_string;
371 return NDR_ERR_SUCCESS;
374 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo0 *r)
376 uint32_t _ptr_printername;
377 TALLOC_CTX *_mem_save_printername_0;
378 uint32_t _ptr_servername;
379 TALLOC_CTX *_mem_save_servername_0;
380 if (ndr_flags & NDR_SCALARS) {
381 NDR_CHECK(ndr_pull_align(ndr, 4));
383 uint32_t _flags_save_string = ndr->flags;
384 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
385 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
386 if (_ptr_printername) {
387 NDR_PULL_ALLOC(ndr, r->printername);
388 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
389 } else {
390 r->printername = NULL;
392 ndr->flags = _flags_save_string;
395 uint32_t _flags_save_string = ndr->flags;
396 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
397 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
398 if (_ptr_servername) {
399 NDR_PULL_ALLOC(ndr, r->servername);
400 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
401 } else {
402 r->servername = NULL;
404 ndr->flags = _flags_save_string;
406 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
407 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
408 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
409 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
410 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
411 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
412 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
413 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
414 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
415 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
416 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
417 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
418 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
419 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->job_error));
420 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
421 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
422 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
423 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
424 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
425 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
426 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
427 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
428 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
429 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
430 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
431 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
432 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
434 if (ndr_flags & NDR_BUFFERS) {
436 uint32_t _flags_save_string = ndr->flags;
437 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
438 if (r->printername) {
439 uint32_t _relative_save_offset;
440 _relative_save_offset = ndr->offset;
441 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
442 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
443 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
444 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
445 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
446 ndr->offset = _relative_save_offset;
448 ndr->flags = _flags_save_string;
451 uint32_t _flags_save_string = ndr->flags;
452 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
453 if (r->servername) {
454 uint32_t _relative_save_offset;
455 _relative_save_offset = ndr->offset;
456 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
457 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
458 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
459 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
460 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
461 ndr->offset = _relative_save_offset;
463 ndr->flags = _flags_save_string;
466 return NDR_ERR_SUCCESS;
469 _PUBLIC_ void ndr_print_spoolss_PrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo0 *r)
471 ndr_print_struct(ndr, name, "spoolss_PrinterInfo0");
472 ndr->depth++;
473 ndr_print_ptr(ndr, "printername", r->printername);
474 ndr->depth++;
475 if (r->printername) {
476 ndr_print_string(ndr, "printername", r->printername);
478 ndr->depth--;
479 ndr_print_ptr(ndr, "servername", r->servername);
480 ndr->depth++;
481 if (r->servername) {
482 ndr_print_string(ndr, "servername", r->servername);
484 ndr->depth--;
485 ndr_print_uint32(ndr, "cjobs", r->cjobs);
486 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
487 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
488 ndr_print_spoolss_Time(ndr, "time", &r->time);
489 ndr_print_uint32(ndr, "global_counter", r->global_counter);
490 ndr_print_uint32(ndr, "total_pages", r->total_pages);
491 ndr_print_uint32(ndr, "version", r->version);
492 ndr_print_uint32(ndr, "free_build", r->free_build);
493 ndr_print_uint32(ndr, "spooling", r->spooling);
494 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
495 ndr_print_uint32(ndr, "session_counter", r->session_counter);
496 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
497 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
498 ndr_print_spoolss_JobStatus(ndr, "job_error", r->job_error);
499 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
500 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
501 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
502 ndr_print_uint32(ndr, "change_id", r->change_id);
503 ndr_print_WERROR(ndr, "last_error", r->last_error);
504 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
505 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
506 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
507 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
508 ndr_print_uint16(ndr, "processor_level", r->processor_level);
509 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
510 ndr_print_uint32(ndr, "reserved2", r->reserved2);
511 ndr_print_uint32(ndr, "reserved3", r->reserved3);
512 ndr->depth--;
515 static enum ndr_err_code ndr_push_spoolss_DeviceModeFields(struct ndr_push *ndr, int ndr_flags, uint32_t r)
517 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
518 return NDR_ERR_SUCCESS;
521 static enum ndr_err_code ndr_pull_spoolss_DeviceModeFields(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
523 uint32_t v;
524 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
525 *r = v;
526 return NDR_ERR_SUCCESS;
529 _PUBLIC_ void ndr_print_spoolss_DeviceModeFields(struct ndr_print *ndr, const char *name, uint32_t r)
531 ndr_print_uint32(ndr, name, r);
532 ndr->depth++;
533 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ORIENTATION", DEVMODE_ORIENTATION, r);
534 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERSIZE", DEVMODE_PAPERSIZE, r);
535 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERLENGTH", DEVMODE_PAPERLENGTH, r);
536 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERWIDTH", DEVMODE_PAPERWIDTH, r);
537 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_SCALE", DEVMODE_SCALE, r);
538 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_POSITION", DEVMODE_POSITION, r);
539 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_NUP", DEVMODE_NUP, r);
540 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COPIES", DEVMODE_COPIES, r);
541 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DEFAULTSOURCE", DEVMODE_DEFAULTSOURCE, r);
542 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PRINTQUALITY", DEVMODE_PRINTQUALITY, r);
543 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLOR", DEVMODE_COLOR, r);
544 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DUPLEX", DEVMODE_DUPLEX, r);
545 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_YRESOLUTION", DEVMODE_YRESOLUTION, r);
546 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_TTOPTION", DEVMODE_TTOPTION, r);
547 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLLATE", DEVMODE_COLLATE, r);
548 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_FORMNAME", DEVMODE_FORMNAME, r);
549 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_LOGPIXELS", DEVMODE_LOGPIXELS, r);
550 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_BITSPERPEL", DEVMODE_BITSPERPEL, r);
551 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSWIDTH", DEVMODE_PELSWIDTH, r);
552 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSHEIGHT", DEVMODE_PELSHEIGHT, r);
553 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFLAGS", DEVMODE_DISPLAYFLAGS, r);
554 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFREQUENCY", DEVMODE_DISPLAYFREQUENCY, r);
555 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMMETHOD", DEVMODE_ICMMETHOD, r);
556 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMINTENT", DEVMODE_ICMINTENT, r);
557 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_MEDIATYPE", DEVMODE_MEDIATYPE, r);
558 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DITHERTYPE", DEVMODE_DITHERTYPE, r);
559 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGWIDTH", DEVMODE_PANNINGWIDTH, r);
560 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGHEIGHT", DEVMODE_PANNINGHEIGHT, r);
561 ndr->depth--;
564 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeviceMode(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceMode *r)
566 if (ndr_flags & NDR_SCALARS) {
567 NDR_CHECK(ndr_push_align(ndr, 4));
568 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->devicename, 32, sizeof(uint16_t), CH_UTF16));
569 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->specversion));
570 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverversion));
571 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
572 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverextra_data.length));
573 NDR_CHECK(ndr_push_spoolss_DeviceModeFields(ndr, NDR_SCALARS, r->fields));
574 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->orientation));
575 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->papersize));
576 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperlength));
577 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperwidth));
578 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->scale));
579 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->copies));
580 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->defaultsource));
581 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->printquality));
582 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->color));
583 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->duplex));
584 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->yresolution));
585 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ttoption));
586 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->collate));
587 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, 32, sizeof(uint16_t), CH_UTF16));
588 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logpixels));
589 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bitsperpel));
590 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelswidth));
591 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelsheight));
592 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayflags));
593 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayfrequency));
594 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->icmmethod));
595 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->icmintent));
596 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->mediatype));
597 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dithertype));
598 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved1));
599 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
600 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningwidth));
601 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningheight));
603 uint32_t _flags_save_DATA_BLOB = ndr->flags;
604 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
606 struct ndr_push *_ndr_driverextra_data;
607 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->driverextra_data.length));
608 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, r->driverextra_data));
609 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_driverextra_data, 0, r->driverextra_data.length));
611 ndr->flags = _flags_save_DATA_BLOB;
614 if (ndr_flags & NDR_BUFFERS) {
616 return NDR_ERR_SUCCESS;
619 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeviceMode(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceMode *r)
621 if (ndr_flags & NDR_SCALARS) {
622 NDR_CHECK(ndr_pull_align(ndr, 4));
623 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->devicename, 32, sizeof(uint16_t), CH_UTF16));
624 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->specversion));
625 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->driverversion));
626 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
627 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->__driverextra_length));
628 NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr, NDR_SCALARS, &r->fields));
629 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->orientation));
630 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->papersize));
631 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperlength));
632 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperwidth));
633 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->scale));
634 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->copies));
635 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->defaultsource));
636 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->printquality));
637 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->color));
638 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->duplex));
639 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->yresolution));
640 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ttoption));
641 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->collate));
642 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, 32, sizeof(uint16_t), CH_UTF16));
643 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logpixels));
644 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bitsperpel));
645 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelswidth));
646 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelsheight));
647 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayflags));
648 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayfrequency));
649 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->icmmethod));
650 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->icmintent));
651 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->mediatype));
652 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dithertype));
653 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
654 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
655 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningwidth));
656 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningheight));
658 uint32_t _flags_save_DATA_BLOB = ndr->flags;
659 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
661 struct ndr_pull *_ndr_driverextra_data;
662 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->__driverextra_length));
663 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, &r->driverextra_data));
664 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_driverextra_data, 0, r->__driverextra_length));
666 ndr->flags = _flags_save_DATA_BLOB;
669 if (ndr_flags & NDR_BUFFERS) {
671 return NDR_ERR_SUCCESS;
674 _PUBLIC_ void ndr_print_spoolss_DeviceMode(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceMode *r)
676 ndr_print_struct(ndr, name, "spoolss_DeviceMode");
677 ndr->depth++;
678 ndr_print_string(ndr, "devicename", r->devicename);
679 ndr_print_uint16(ndr, "specversion", r->specversion);
680 ndr_print_uint16(ndr, "driverversion", r->driverversion);
681 ndr_print_uint16(ndr, "size", r->size);
682 ndr_print_uint16(ndr, "__driverextra_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->driverextra_data.length:r->__driverextra_length);
683 ndr_print_spoolss_DeviceModeFields(ndr, "fields", r->fields);
684 ndr_print_uint16(ndr, "orientation", r->orientation);
685 ndr_print_uint16(ndr, "papersize", r->papersize);
686 ndr_print_uint16(ndr, "paperlength", r->paperlength);
687 ndr_print_uint16(ndr, "paperwidth", r->paperwidth);
688 ndr_print_uint16(ndr, "scale", r->scale);
689 ndr_print_uint16(ndr, "copies", r->copies);
690 ndr_print_uint16(ndr, "defaultsource", r->defaultsource);
691 ndr_print_uint16(ndr, "printquality", r->printquality);
692 ndr_print_uint16(ndr, "color", r->color);
693 ndr_print_uint16(ndr, "duplex", r->duplex);
694 ndr_print_uint16(ndr, "yresolution", r->yresolution);
695 ndr_print_uint16(ndr, "ttoption", r->ttoption);
696 ndr_print_uint16(ndr, "collate", r->collate);
697 ndr_print_string(ndr, "formname", r->formname);
698 ndr_print_uint16(ndr, "logpixels", r->logpixels);
699 ndr_print_uint32(ndr, "bitsperpel", r->bitsperpel);
700 ndr_print_uint32(ndr, "pelswidth", r->pelswidth);
701 ndr_print_uint32(ndr, "pelsheight", r->pelsheight);
702 ndr_print_uint32(ndr, "displayflags", r->displayflags);
703 ndr_print_uint32(ndr, "displayfrequency", r->displayfrequency);
704 ndr_print_uint32(ndr, "icmmethod", r->icmmethod);
705 ndr_print_uint32(ndr, "icmintent", r->icmintent);
706 ndr_print_uint32(ndr, "mediatype", r->mediatype);
707 ndr_print_uint32(ndr, "dithertype", r->dithertype);
708 ndr_print_uint32(ndr, "reserved1", r->reserved1);
709 ndr_print_uint32(ndr, "reserved2", r->reserved2);
710 ndr_print_uint32(ndr, "panningwidth", r->panningwidth);
711 ndr_print_uint32(ndr, "panningheight", r->panningheight);
712 ndr_print_DATA_BLOB(ndr, "driverextra_data", r->driverextra_data);
713 ndr->depth--;
716 _PUBLIC_ size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode *r, struct smb_iconv_convenience *ic, int flags)
718 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DeviceMode, ic);
721 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
723 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
724 return NDR_ERR_SUCCESS;
727 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
729 uint32_t v;
730 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
731 *r = v;
732 return NDR_ERR_SUCCESS;
735 _PUBLIC_ void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print *ndr, const char *name, uint32_t r)
737 ndr_print_uint32(ndr, name, r);
738 ndr->depth++;
739 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT, r);
740 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL, r);
741 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS, r);
742 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE, r);
743 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME, r);
744 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE, r);
745 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED, r);
746 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK, r);
747 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND, r);
748 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER, r);
749 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1, r);
750 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2, r);
751 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3, r);
752 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4, r);
753 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5, r);
754 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6, r);
755 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7, r);
756 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8, r);
757 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE, r);
758 ndr->depth--;
761 static enum ndr_err_code ndr_push_spoolss_PrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo1 *r)
763 if (ndr_flags & NDR_SCALARS) {
764 NDR_CHECK(ndr_push_align(ndr, 4));
765 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->flags));
767 uint32_t _flags_save_string = ndr->flags;
768 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
769 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name));
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_push_relative_ptr1(ndr, r->description));
776 ndr->flags = _flags_save_string;
779 uint32_t _flags_save_string = ndr->flags;
780 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
781 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
782 ndr->flags = _flags_save_string;
785 if (ndr_flags & NDR_BUFFERS) {
787 uint32_t _flags_save_string = ndr->flags;
788 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
789 if (r->name) {
790 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->name));
791 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name));
793 ndr->flags = _flags_save_string;
796 uint32_t _flags_save_string = ndr->flags;
797 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
798 if (r->description) {
799 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
800 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
802 ndr->flags = _flags_save_string;
805 uint32_t _flags_save_string = ndr->flags;
806 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
807 if (r->comment) {
808 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->comment));
809 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
811 ndr->flags = _flags_save_string;
814 return NDR_ERR_SUCCESS;
817 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo1 *r)
819 uint32_t _ptr_name;
820 TALLOC_CTX *_mem_save_name_0;
821 uint32_t _ptr_description;
822 TALLOC_CTX *_mem_save_description_0;
823 uint32_t _ptr_comment;
824 TALLOC_CTX *_mem_save_comment_0;
825 if (ndr_flags & NDR_SCALARS) {
826 NDR_CHECK(ndr_pull_align(ndr, 4));
827 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->flags));
829 uint32_t _flags_save_string = ndr->flags;
830 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
831 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
832 if (_ptr_name) {
833 NDR_PULL_ALLOC(ndr, r->name);
834 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name, _ptr_name));
835 } else {
836 r->name = NULL;
838 ndr->flags = _flags_save_string;
841 uint32_t _flags_save_string = ndr->flags;
842 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
843 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
844 if (_ptr_description) {
845 NDR_PULL_ALLOC(ndr, r->description);
846 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
847 } else {
848 r->description = NULL;
850 ndr->flags = _flags_save_string;
853 uint32_t _flags_save_string = ndr->flags;
854 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
855 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
856 if (_ptr_comment) {
857 NDR_PULL_ALLOC(ndr, r->comment);
858 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
859 } else {
860 r->comment = NULL;
862 ndr->flags = _flags_save_string;
865 if (ndr_flags & NDR_BUFFERS) {
867 uint32_t _flags_save_string = ndr->flags;
868 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
869 if (r->name) {
870 uint32_t _relative_save_offset;
871 _relative_save_offset = ndr->offset;
872 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name));
873 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
874 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
875 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name));
876 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
877 ndr->offset = _relative_save_offset;
879 ndr->flags = _flags_save_string;
882 uint32_t _flags_save_string = ndr->flags;
883 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
884 if (r->description) {
885 uint32_t _relative_save_offset;
886 _relative_save_offset = ndr->offset;
887 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
888 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
889 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
890 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
891 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
892 ndr->offset = _relative_save_offset;
894 ndr->flags = _flags_save_string;
897 uint32_t _flags_save_string = ndr->flags;
898 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
899 if (r->comment) {
900 uint32_t _relative_save_offset;
901 _relative_save_offset = ndr->offset;
902 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
903 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
904 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
905 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
906 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
907 ndr->offset = _relative_save_offset;
909 ndr->flags = _flags_save_string;
912 return NDR_ERR_SUCCESS;
915 _PUBLIC_ void ndr_print_spoolss_PrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo1 *r)
917 ndr_print_struct(ndr, name, "spoolss_PrinterInfo1");
918 ndr->depth++;
919 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->flags);
920 ndr_print_ptr(ndr, "name", r->name);
921 ndr->depth++;
922 if (r->name) {
923 ndr_print_string(ndr, "name", r->name);
925 ndr->depth--;
926 ndr_print_ptr(ndr, "description", r->description);
927 ndr->depth++;
928 if (r->description) {
929 ndr_print_string(ndr, "description", r->description);
931 ndr->depth--;
932 ndr_print_ptr(ndr, "comment", r->comment);
933 ndr->depth++;
934 if (r->comment) {
935 ndr_print_string(ndr, "comment", r->comment);
937 ndr->depth--;
938 ndr->depth--;
941 static enum ndr_err_code ndr_push_spoolss_PrinterAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
943 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
944 return NDR_ERR_SUCCESS;
947 static enum ndr_err_code ndr_pull_spoolss_PrinterAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
949 uint32_t v;
950 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
951 *r = v;
952 return NDR_ERR_SUCCESS;
955 _PUBLIC_ void ndr_print_spoolss_PrinterAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
957 ndr_print_uint32(ndr, name, r);
958 ndr->depth++;
959 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED, r);
960 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT, r);
961 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT, r);
962 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED, r);
963 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK, r);
964 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN, r);
965 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL, r);
966 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ, r);
967 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS, r);
968 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST, r);
969 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE, r);
970 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI, r);
971 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY, r);
972 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED, r);
973 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX, r);
974 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS, r);
975 ndr->depth--;
978 static enum ndr_err_code ndr_push_spoolss_PrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo2 *r)
980 if (ndr_flags & NDR_SCALARS) {
981 NDR_CHECK(ndr_push_align(ndr, 4));
983 uint32_t _flags_save_string = ndr->flags;
984 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
985 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
986 ndr->flags = _flags_save_string;
989 uint32_t _flags_save_string = ndr->flags;
990 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
991 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
992 ndr->flags = _flags_save_string;
995 uint32_t _flags_save_string = ndr->flags;
996 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
997 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sharename));
998 ndr->flags = _flags_save_string;
1001 uint32_t _flags_save_string = ndr->flags;
1002 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1003 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
1004 ndr->flags = _flags_save_string;
1007 uint32_t _flags_save_string = ndr->flags;
1008 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1009 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->drivername));
1010 ndr->flags = _flags_save_string;
1013 uint32_t _flags_save_string = ndr->flags;
1014 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1015 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
1016 ndr->flags = _flags_save_string;
1019 uint32_t _flags_save_string = ndr->flags;
1020 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1021 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->location));
1022 ndr->flags = _flags_save_string;
1024 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
1026 uint32_t _flags_save_string = ndr->flags;
1027 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1028 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sepfile));
1029 ndr->flags = _flags_save_string;
1032 uint32_t _flags_save_string = ndr->flags;
1033 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1034 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printprocessor));
1035 ndr->flags = _flags_save_string;
1038 uint32_t _flags_save_string = ndr->flags;
1039 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1040 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->datatype));
1041 ndr->flags = _flags_save_string;
1044 uint32_t _flags_save_string = ndr->flags;
1045 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1046 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
1047 ndr->flags = _flags_save_string;
1049 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
1050 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1051 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
1052 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
1053 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
1054 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
1055 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
1056 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
1057 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
1059 if (ndr_flags & NDR_BUFFERS) {
1061 uint32_t _flags_save_string = ndr->flags;
1062 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1063 if (r->servername) {
1064 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
1065 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
1067 ndr->flags = _flags_save_string;
1070 uint32_t _flags_save_string = ndr->flags;
1071 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1072 if (r->printername) {
1073 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1074 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1076 ndr->flags = _flags_save_string;
1079 uint32_t _flags_save_string = ndr->flags;
1080 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1081 if (r->sharename) {
1082 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->sharename));
1083 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sharename));
1085 ndr->flags = _flags_save_string;
1088 uint32_t _flags_save_string = ndr->flags;
1089 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1090 if (r->portname) {
1091 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->portname));
1092 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
1094 ndr->flags = _flags_save_string;
1097 uint32_t _flags_save_string = ndr->flags;
1098 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1099 if (r->drivername) {
1100 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->drivername));
1101 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->drivername));
1103 ndr->flags = _flags_save_string;
1106 uint32_t _flags_save_string = ndr->flags;
1107 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1108 if (r->comment) {
1109 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->comment));
1110 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
1112 ndr->flags = _flags_save_string;
1115 uint32_t _flags_save_string = ndr->flags;
1116 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1117 if (r->location) {
1118 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->location));
1119 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->location));
1121 ndr->flags = _flags_save_string;
1123 if (r->devmode) {
1124 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
1126 struct ndr_push *_ndr_devmode;
1127 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1128 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1129 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
1133 uint32_t _flags_save_string = ndr->flags;
1134 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1135 if (r->sepfile) {
1136 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->sepfile));
1137 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sepfile));
1139 ndr->flags = _flags_save_string;
1142 uint32_t _flags_save_string = ndr->flags;
1143 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1144 if (r->printprocessor) {
1145 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printprocessor));
1146 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printprocessor));
1148 ndr->flags = _flags_save_string;
1151 uint32_t _flags_save_string = ndr->flags;
1152 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1153 if (r->datatype) {
1154 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->datatype));
1155 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->datatype));
1157 ndr->flags = _flags_save_string;
1160 uint32_t _flags_save_string = ndr->flags;
1161 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1162 if (r->parameters) {
1163 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
1164 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
1166 ndr->flags = _flags_save_string;
1168 if (r->secdesc) {
1169 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
1171 struct ndr_push *_ndr_secdesc;
1172 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1173 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1174 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1178 return NDR_ERR_SUCCESS;
1181 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo2 *r)
1183 uint32_t _ptr_servername;
1184 TALLOC_CTX *_mem_save_servername_0;
1185 uint32_t _ptr_printername;
1186 TALLOC_CTX *_mem_save_printername_0;
1187 uint32_t _ptr_sharename;
1188 TALLOC_CTX *_mem_save_sharename_0;
1189 uint32_t _ptr_portname;
1190 TALLOC_CTX *_mem_save_portname_0;
1191 uint32_t _ptr_drivername;
1192 TALLOC_CTX *_mem_save_drivername_0;
1193 uint32_t _ptr_comment;
1194 TALLOC_CTX *_mem_save_comment_0;
1195 uint32_t _ptr_location;
1196 TALLOC_CTX *_mem_save_location_0;
1197 uint32_t _ptr_devmode;
1198 TALLOC_CTX *_mem_save_devmode_0;
1199 uint32_t _ptr_sepfile;
1200 TALLOC_CTX *_mem_save_sepfile_0;
1201 uint32_t _ptr_printprocessor;
1202 TALLOC_CTX *_mem_save_printprocessor_0;
1203 uint32_t _ptr_datatype;
1204 TALLOC_CTX *_mem_save_datatype_0;
1205 uint32_t _ptr_parameters;
1206 TALLOC_CTX *_mem_save_parameters_0;
1207 uint32_t _ptr_secdesc;
1208 TALLOC_CTX *_mem_save_secdesc_0;
1209 if (ndr_flags & NDR_SCALARS) {
1210 NDR_CHECK(ndr_pull_align(ndr, 4));
1212 uint32_t _flags_save_string = ndr->flags;
1213 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1214 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1215 if (_ptr_servername) {
1216 NDR_PULL_ALLOC(ndr, r->servername);
1217 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1218 } else {
1219 r->servername = NULL;
1221 ndr->flags = _flags_save_string;
1224 uint32_t _flags_save_string = ndr->flags;
1225 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1226 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1227 if (_ptr_printername) {
1228 NDR_PULL_ALLOC(ndr, r->printername);
1229 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1230 } else {
1231 r->printername = NULL;
1233 ndr->flags = _flags_save_string;
1236 uint32_t _flags_save_string = ndr->flags;
1237 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1238 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
1239 if (_ptr_sharename) {
1240 NDR_PULL_ALLOC(ndr, r->sharename);
1241 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sharename, _ptr_sharename));
1242 } else {
1243 r->sharename = NULL;
1245 ndr->flags = _flags_save_string;
1248 uint32_t _flags_save_string = ndr->flags;
1249 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1250 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1251 if (_ptr_portname) {
1252 NDR_PULL_ALLOC(ndr, r->portname);
1253 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1254 } else {
1255 r->portname = NULL;
1257 ndr->flags = _flags_save_string;
1260 uint32_t _flags_save_string = ndr->flags;
1261 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1262 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
1263 if (_ptr_drivername) {
1264 NDR_PULL_ALLOC(ndr, r->drivername);
1265 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->drivername, _ptr_drivername));
1266 } else {
1267 r->drivername = NULL;
1269 ndr->flags = _flags_save_string;
1272 uint32_t _flags_save_string = ndr->flags;
1273 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1274 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1275 if (_ptr_comment) {
1276 NDR_PULL_ALLOC(ndr, r->comment);
1277 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1278 } else {
1279 r->comment = NULL;
1281 ndr->flags = _flags_save_string;
1284 uint32_t _flags_save_string = ndr->flags;
1285 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1286 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
1287 if (_ptr_location) {
1288 NDR_PULL_ALLOC(ndr, r->location);
1289 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->location, _ptr_location));
1290 } else {
1291 r->location = NULL;
1293 ndr->flags = _flags_save_string;
1295 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
1296 if (_ptr_devmode) {
1297 NDR_PULL_ALLOC(ndr, r->devmode);
1298 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
1299 } else {
1300 r->devmode = NULL;
1303 uint32_t _flags_save_string = ndr->flags;
1304 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1305 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
1306 if (_ptr_sepfile) {
1307 NDR_PULL_ALLOC(ndr, r->sepfile);
1308 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sepfile, _ptr_sepfile));
1309 } else {
1310 r->sepfile = NULL;
1312 ndr->flags = _flags_save_string;
1315 uint32_t _flags_save_string = ndr->flags;
1316 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1317 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
1318 if (_ptr_printprocessor) {
1319 NDR_PULL_ALLOC(ndr, r->printprocessor);
1320 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printprocessor, _ptr_printprocessor));
1321 } else {
1322 r->printprocessor = NULL;
1324 ndr->flags = _flags_save_string;
1327 uint32_t _flags_save_string = ndr->flags;
1328 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1329 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
1330 if (_ptr_datatype) {
1331 NDR_PULL_ALLOC(ndr, r->datatype);
1332 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->datatype, _ptr_datatype));
1333 } else {
1334 r->datatype = NULL;
1336 ndr->flags = _flags_save_string;
1339 uint32_t _flags_save_string = ndr->flags;
1340 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1341 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
1342 if (_ptr_parameters) {
1343 NDR_PULL_ALLOC(ndr, r->parameters);
1344 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
1345 } else {
1346 r->parameters = NULL;
1348 ndr->flags = _flags_save_string;
1350 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1351 if (_ptr_secdesc) {
1352 NDR_PULL_ALLOC(ndr, r->secdesc);
1353 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1354 } else {
1355 r->secdesc = NULL;
1357 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1358 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
1359 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
1360 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
1361 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
1362 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
1363 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
1364 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
1366 if (ndr_flags & NDR_BUFFERS) {
1368 uint32_t _flags_save_string = ndr->flags;
1369 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1370 if (r->servername) {
1371 uint32_t _relative_save_offset;
1372 _relative_save_offset = ndr->offset;
1373 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1374 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1375 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1376 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1377 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
1378 ndr->offset = _relative_save_offset;
1380 ndr->flags = _flags_save_string;
1383 uint32_t _flags_save_string = ndr->flags;
1384 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1385 if (r->printername) {
1386 uint32_t _relative_save_offset;
1387 _relative_save_offset = ndr->offset;
1388 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1389 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1390 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1391 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1392 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1393 ndr->offset = _relative_save_offset;
1395 ndr->flags = _flags_save_string;
1398 uint32_t _flags_save_string = ndr->flags;
1399 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1400 if (r->sharename) {
1401 uint32_t _relative_save_offset;
1402 _relative_save_offset = ndr->offset;
1403 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sharename));
1404 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
1405 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
1406 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sharename));
1407 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
1408 ndr->offset = _relative_save_offset;
1410 ndr->flags = _flags_save_string;
1413 uint32_t _flags_save_string = ndr->flags;
1414 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1415 if (r->portname) {
1416 uint32_t _relative_save_offset;
1417 _relative_save_offset = ndr->offset;
1418 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
1419 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1420 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
1421 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
1422 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
1423 ndr->offset = _relative_save_offset;
1425 ndr->flags = _flags_save_string;
1428 uint32_t _flags_save_string = ndr->flags;
1429 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1430 if (r->drivername) {
1431 uint32_t _relative_save_offset;
1432 _relative_save_offset = ndr->offset;
1433 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->drivername));
1434 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1435 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
1436 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->drivername));
1437 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
1438 ndr->offset = _relative_save_offset;
1440 ndr->flags = _flags_save_string;
1443 uint32_t _flags_save_string = ndr->flags;
1444 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1445 if (r->comment) {
1446 uint32_t _relative_save_offset;
1447 _relative_save_offset = ndr->offset;
1448 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
1449 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
1450 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
1451 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
1452 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
1453 ndr->offset = _relative_save_offset;
1455 ndr->flags = _flags_save_string;
1458 uint32_t _flags_save_string = ndr->flags;
1459 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1460 if (r->location) {
1461 uint32_t _relative_save_offset;
1462 _relative_save_offset = ndr->offset;
1463 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->location));
1464 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
1465 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
1466 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->location));
1467 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
1468 ndr->offset = _relative_save_offset;
1470 ndr->flags = _flags_save_string;
1472 if (r->devmode) {
1473 uint32_t _relative_save_offset;
1474 _relative_save_offset = ndr->offset;
1475 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
1476 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
1477 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
1479 struct ndr_pull *_ndr_devmode;
1480 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1481 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1482 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
1484 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
1485 ndr->offset = _relative_save_offset;
1488 uint32_t _flags_save_string = ndr->flags;
1489 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1490 if (r->sepfile) {
1491 uint32_t _relative_save_offset;
1492 _relative_save_offset = ndr->offset;
1493 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sepfile));
1494 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
1495 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
1496 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sepfile));
1497 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
1498 ndr->offset = _relative_save_offset;
1500 ndr->flags = _flags_save_string;
1503 uint32_t _flags_save_string = ndr->flags;
1504 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1505 if (r->printprocessor) {
1506 uint32_t _relative_save_offset;
1507 _relative_save_offset = ndr->offset;
1508 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printprocessor));
1509 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
1510 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
1511 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printprocessor));
1512 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
1513 ndr->offset = _relative_save_offset;
1515 ndr->flags = _flags_save_string;
1518 uint32_t _flags_save_string = ndr->flags;
1519 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1520 if (r->datatype) {
1521 uint32_t _relative_save_offset;
1522 _relative_save_offset = ndr->offset;
1523 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->datatype));
1524 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
1525 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
1526 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->datatype));
1527 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
1528 ndr->offset = _relative_save_offset;
1530 ndr->flags = _flags_save_string;
1533 uint32_t _flags_save_string = ndr->flags;
1534 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1535 if (r->parameters) {
1536 uint32_t _relative_save_offset;
1537 _relative_save_offset = ndr->offset;
1538 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
1539 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
1540 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
1541 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
1542 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
1543 ndr->offset = _relative_save_offset;
1545 ndr->flags = _flags_save_string;
1547 if (r->secdesc) {
1548 uint32_t _relative_save_offset;
1549 _relative_save_offset = ndr->offset;
1550 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
1551 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
1552 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
1554 struct ndr_pull *_ndr_secdesc;
1555 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1556 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1557 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1559 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
1560 ndr->offset = _relative_save_offset;
1563 return NDR_ERR_SUCCESS;
1566 _PUBLIC_ void ndr_print_spoolss_PrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo2 *r)
1568 ndr_print_struct(ndr, name, "spoolss_PrinterInfo2");
1569 ndr->depth++;
1570 ndr_print_ptr(ndr, "servername", r->servername);
1571 ndr->depth++;
1572 if (r->servername) {
1573 ndr_print_string(ndr, "servername", r->servername);
1575 ndr->depth--;
1576 ndr_print_ptr(ndr, "printername", r->printername);
1577 ndr->depth++;
1578 if (r->printername) {
1579 ndr_print_string(ndr, "printername", r->printername);
1581 ndr->depth--;
1582 ndr_print_ptr(ndr, "sharename", r->sharename);
1583 ndr->depth++;
1584 if (r->sharename) {
1585 ndr_print_string(ndr, "sharename", r->sharename);
1587 ndr->depth--;
1588 ndr_print_ptr(ndr, "portname", r->portname);
1589 ndr->depth++;
1590 if (r->portname) {
1591 ndr_print_string(ndr, "portname", r->portname);
1593 ndr->depth--;
1594 ndr_print_ptr(ndr, "drivername", r->drivername);
1595 ndr->depth++;
1596 if (r->drivername) {
1597 ndr_print_string(ndr, "drivername", r->drivername);
1599 ndr->depth--;
1600 ndr_print_ptr(ndr, "comment", r->comment);
1601 ndr->depth++;
1602 if (r->comment) {
1603 ndr_print_string(ndr, "comment", r->comment);
1605 ndr->depth--;
1606 ndr_print_ptr(ndr, "location", r->location);
1607 ndr->depth++;
1608 if (r->location) {
1609 ndr_print_string(ndr, "location", r->location);
1611 ndr->depth--;
1612 ndr_print_ptr(ndr, "devmode", r->devmode);
1613 ndr->depth++;
1614 if (r->devmode) {
1615 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
1617 ndr->depth--;
1618 ndr_print_ptr(ndr, "sepfile", r->sepfile);
1619 ndr->depth++;
1620 if (r->sepfile) {
1621 ndr_print_string(ndr, "sepfile", r->sepfile);
1623 ndr->depth--;
1624 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
1625 ndr->depth++;
1626 if (r->printprocessor) {
1627 ndr_print_string(ndr, "printprocessor", r->printprocessor);
1629 ndr->depth--;
1630 ndr_print_ptr(ndr, "datatype", r->datatype);
1631 ndr->depth++;
1632 if (r->datatype) {
1633 ndr_print_string(ndr, "datatype", r->datatype);
1635 ndr->depth--;
1636 ndr_print_ptr(ndr, "parameters", r->parameters);
1637 ndr->depth++;
1638 if (r->parameters) {
1639 ndr_print_string(ndr, "parameters", r->parameters);
1641 ndr->depth--;
1642 ndr_print_ptr(ndr, "secdesc", r->secdesc);
1643 ndr->depth++;
1644 if (r->secdesc) {
1645 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
1647 ndr->depth--;
1648 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1649 ndr_print_uint32(ndr, "priority", r->priority);
1650 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
1651 ndr_print_uint32(ndr, "starttime", r->starttime);
1652 ndr_print_uint32(ndr, "untiltime", r->untiltime);
1653 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
1654 ndr_print_uint32(ndr, "cjobs", r->cjobs);
1655 ndr_print_uint32(ndr, "averageppm", r->averageppm);
1656 ndr->depth--;
1659 static enum ndr_err_code ndr_push_spoolss_PrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo3 *r)
1661 if (ndr_flags & NDR_SCALARS) {
1662 NDR_CHECK(ndr_push_align(ndr, 4));
1663 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
1665 if (ndr_flags & NDR_BUFFERS) {
1666 if (r->secdesc) {
1667 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
1669 struct ndr_push *_ndr_secdesc;
1670 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1671 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1672 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1676 return NDR_ERR_SUCCESS;
1679 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo3 *r)
1681 uint32_t _ptr_secdesc;
1682 TALLOC_CTX *_mem_save_secdesc_0;
1683 if (ndr_flags & NDR_SCALARS) {
1684 NDR_CHECK(ndr_pull_align(ndr, 4));
1685 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1686 if (_ptr_secdesc) {
1687 NDR_PULL_ALLOC(ndr, r->secdesc);
1688 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1689 } else {
1690 r->secdesc = NULL;
1693 if (ndr_flags & NDR_BUFFERS) {
1694 if (r->secdesc) {
1695 uint32_t _relative_save_offset;
1696 _relative_save_offset = ndr->offset;
1697 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
1698 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
1699 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
1701 struct ndr_pull *_ndr_secdesc;
1702 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1703 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1704 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1706 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
1707 ndr->offset = _relative_save_offset;
1710 return NDR_ERR_SUCCESS;
1713 _PUBLIC_ void ndr_print_spoolss_PrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo3 *r)
1715 ndr_print_struct(ndr, name, "spoolss_PrinterInfo3");
1716 ndr->depth++;
1717 ndr_print_ptr(ndr, "secdesc", r->secdesc);
1718 ndr->depth++;
1719 if (r->secdesc) {
1720 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
1722 ndr->depth--;
1723 ndr->depth--;
1726 static enum ndr_err_code ndr_push_spoolss_PrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo4 *r)
1728 if (ndr_flags & NDR_SCALARS) {
1729 NDR_CHECK(ndr_push_align(ndr, 4));
1731 uint32_t _flags_save_string = ndr->flags;
1732 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1733 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1734 ndr->flags = _flags_save_string;
1737 uint32_t _flags_save_string = ndr->flags;
1738 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1739 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
1740 ndr->flags = _flags_save_string;
1742 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1744 if (ndr_flags & NDR_BUFFERS) {
1746 uint32_t _flags_save_string = ndr->flags;
1747 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1748 if (r->printername) {
1749 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1750 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1752 ndr->flags = _flags_save_string;
1755 uint32_t _flags_save_string = ndr->flags;
1756 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1757 if (r->servername) {
1758 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
1759 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
1761 ndr->flags = _flags_save_string;
1764 return NDR_ERR_SUCCESS;
1767 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo4 *r)
1769 uint32_t _ptr_printername;
1770 TALLOC_CTX *_mem_save_printername_0;
1771 uint32_t _ptr_servername;
1772 TALLOC_CTX *_mem_save_servername_0;
1773 if (ndr_flags & NDR_SCALARS) {
1774 NDR_CHECK(ndr_pull_align(ndr, 4));
1776 uint32_t _flags_save_string = ndr->flags;
1777 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1778 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1779 if (_ptr_printername) {
1780 NDR_PULL_ALLOC(ndr, r->printername);
1781 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1782 } else {
1783 r->printername = NULL;
1785 ndr->flags = _flags_save_string;
1788 uint32_t _flags_save_string = ndr->flags;
1789 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1790 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1791 if (_ptr_servername) {
1792 NDR_PULL_ALLOC(ndr, r->servername);
1793 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1794 } else {
1795 r->servername = NULL;
1797 ndr->flags = _flags_save_string;
1799 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1801 if (ndr_flags & NDR_BUFFERS) {
1803 uint32_t _flags_save_string = ndr->flags;
1804 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1805 if (r->printername) {
1806 uint32_t _relative_save_offset;
1807 _relative_save_offset = ndr->offset;
1808 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1809 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1810 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1811 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1812 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1813 ndr->offset = _relative_save_offset;
1815 ndr->flags = _flags_save_string;
1818 uint32_t _flags_save_string = ndr->flags;
1819 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1820 if (r->servername) {
1821 uint32_t _relative_save_offset;
1822 _relative_save_offset = ndr->offset;
1823 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1824 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1825 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1826 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1827 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
1828 ndr->offset = _relative_save_offset;
1830 ndr->flags = _flags_save_string;
1833 return NDR_ERR_SUCCESS;
1836 _PUBLIC_ void ndr_print_spoolss_PrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo4 *r)
1838 ndr_print_struct(ndr, name, "spoolss_PrinterInfo4");
1839 ndr->depth++;
1840 ndr_print_ptr(ndr, "printername", r->printername);
1841 ndr->depth++;
1842 if (r->printername) {
1843 ndr_print_string(ndr, "printername", r->printername);
1845 ndr->depth--;
1846 ndr_print_ptr(ndr, "servername", r->servername);
1847 ndr->depth++;
1848 if (r->servername) {
1849 ndr_print_string(ndr, "servername", r->servername);
1851 ndr->depth--;
1852 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1853 ndr->depth--;
1856 static enum ndr_err_code ndr_push_spoolss_PrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo5 *r)
1858 if (ndr_flags & NDR_SCALARS) {
1859 NDR_CHECK(ndr_push_align(ndr, 4));
1861 uint32_t _flags_save_string = ndr->flags;
1862 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1863 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1864 ndr->flags = _flags_save_string;
1867 uint32_t _flags_save_string = ndr->flags;
1868 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1869 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
1870 ndr->flags = _flags_save_string;
1872 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1873 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
1874 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
1876 if (ndr_flags & NDR_BUFFERS) {
1878 uint32_t _flags_save_string = ndr->flags;
1879 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1880 if (r->printername) {
1881 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1882 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1884 ndr->flags = _flags_save_string;
1887 uint32_t _flags_save_string = ndr->flags;
1888 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1889 if (r->portname) {
1890 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->portname));
1891 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
1893 ndr->flags = _flags_save_string;
1896 return NDR_ERR_SUCCESS;
1899 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo5 *r)
1901 uint32_t _ptr_printername;
1902 TALLOC_CTX *_mem_save_printername_0;
1903 uint32_t _ptr_portname;
1904 TALLOC_CTX *_mem_save_portname_0;
1905 if (ndr_flags & NDR_SCALARS) {
1906 NDR_CHECK(ndr_pull_align(ndr, 4));
1908 uint32_t _flags_save_string = ndr->flags;
1909 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1910 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1911 if (_ptr_printername) {
1912 NDR_PULL_ALLOC(ndr, r->printername);
1913 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1914 } else {
1915 r->printername = NULL;
1917 ndr->flags = _flags_save_string;
1920 uint32_t _flags_save_string = ndr->flags;
1921 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1922 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1923 if (_ptr_portname) {
1924 NDR_PULL_ALLOC(ndr, r->portname);
1925 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1926 } else {
1927 r->portname = NULL;
1929 ndr->flags = _flags_save_string;
1931 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1932 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
1933 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
1935 if (ndr_flags & NDR_BUFFERS) {
1937 uint32_t _flags_save_string = ndr->flags;
1938 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1939 if (r->printername) {
1940 uint32_t _relative_save_offset;
1941 _relative_save_offset = ndr->offset;
1942 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1943 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1944 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1945 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1946 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1947 ndr->offset = _relative_save_offset;
1949 ndr->flags = _flags_save_string;
1952 uint32_t _flags_save_string = ndr->flags;
1953 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1954 if (r->portname) {
1955 uint32_t _relative_save_offset;
1956 _relative_save_offset = ndr->offset;
1957 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
1958 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1959 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
1960 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
1961 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
1962 ndr->offset = _relative_save_offset;
1964 ndr->flags = _flags_save_string;
1967 return NDR_ERR_SUCCESS;
1970 _PUBLIC_ void ndr_print_spoolss_PrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo5 *r)
1972 ndr_print_struct(ndr, name, "spoolss_PrinterInfo5");
1973 ndr->depth++;
1974 ndr_print_ptr(ndr, "printername", r->printername);
1975 ndr->depth++;
1976 if (r->printername) {
1977 ndr_print_string(ndr, "printername", r->printername);
1979 ndr->depth--;
1980 ndr_print_ptr(ndr, "portname", r->portname);
1981 ndr->depth++;
1982 if (r->portname) {
1983 ndr_print_string(ndr, "portname", r->portname);
1985 ndr->depth--;
1986 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1987 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
1988 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
1989 ndr->depth--;
1992 static enum ndr_err_code ndr_push_spoolss_PrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo6 *r)
1994 if (ndr_flags & NDR_SCALARS) {
1995 NDR_CHECK(ndr_push_align(ndr, 4));
1996 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
1998 if (ndr_flags & NDR_BUFFERS) {
2000 return NDR_ERR_SUCCESS;
2003 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo6 *r)
2005 if (ndr_flags & NDR_SCALARS) {
2006 NDR_CHECK(ndr_pull_align(ndr, 4));
2007 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
2009 if (ndr_flags & NDR_BUFFERS) {
2011 return NDR_ERR_SUCCESS;
2014 _PUBLIC_ void ndr_print_spoolss_PrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo6 *r)
2016 ndr_print_struct(ndr, name, "spoolss_PrinterInfo6");
2017 ndr->depth++;
2018 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
2019 ndr->depth--;
2022 static enum ndr_err_code ndr_push_spoolss_DsPrintAction(struct ndr_push *ndr, int ndr_flags, uint32_t r)
2024 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
2025 return NDR_ERR_SUCCESS;
2028 static enum ndr_err_code ndr_pull_spoolss_DsPrintAction(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
2030 uint32_t v;
2031 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
2032 *r = v;
2033 return NDR_ERR_SUCCESS;
2036 _PUBLIC_ void ndr_print_spoolss_DsPrintAction(struct ndr_print *ndr, const char *name, uint32_t r)
2038 ndr_print_uint32(ndr, name, r);
2039 ndr->depth++;
2040 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH, r);
2041 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE, r);
2042 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH, r);
2043 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH, r);
2044 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING, r);
2045 ndr->depth--;
2048 static enum ndr_err_code ndr_push_spoolss_PrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo7 *r)
2050 if (ndr_flags & NDR_SCALARS) {
2051 NDR_CHECK(ndr_push_align(ndr, 4));
2053 uint32_t _flags_save_string = ndr->flags;
2054 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2055 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->guid));
2056 ndr->flags = _flags_save_string;
2058 NDR_CHECK(ndr_push_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 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->guid));
2066 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->guid));
2068 ndr->flags = _flags_save_string;
2071 return NDR_ERR_SUCCESS;
2074 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo7 *r)
2076 uint32_t _ptr_guid;
2077 TALLOC_CTX *_mem_save_guid_0;
2078 if (ndr_flags & NDR_SCALARS) {
2079 NDR_CHECK(ndr_pull_align(ndr, 4));
2081 uint32_t _flags_save_string = ndr->flags;
2082 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2083 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
2084 if (_ptr_guid) {
2085 NDR_PULL_ALLOC(ndr, r->guid);
2086 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->guid, _ptr_guid));
2087 } else {
2088 r->guid = NULL;
2090 ndr->flags = _flags_save_string;
2092 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
2094 if (ndr_flags & NDR_BUFFERS) {
2096 uint32_t _flags_save_string = ndr->flags;
2097 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2098 if (r->guid) {
2099 uint32_t _relative_save_offset;
2100 _relative_save_offset = ndr->offset;
2101 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->guid));
2102 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
2103 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
2104 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->guid));
2105 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
2106 ndr->offset = _relative_save_offset;
2108 ndr->flags = _flags_save_string;
2111 return NDR_ERR_SUCCESS;
2114 _PUBLIC_ void ndr_print_spoolss_PrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo7 *r)
2116 ndr_print_struct(ndr, name, "spoolss_PrinterInfo7");
2117 ndr->depth++;
2118 ndr_print_ptr(ndr, "guid", r->guid);
2119 ndr->depth++;
2120 if (r->guid) {
2121 ndr_print_string(ndr, "guid", r->guid);
2123 ndr->depth--;
2124 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
2125 ndr->depth--;
2128 static enum ndr_err_code ndr_push_spoolss_DeviceModeInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceModeInfo *r)
2130 if (ndr_flags & NDR_SCALARS) {
2131 NDR_CHECK(ndr_push_align(ndr, 4));
2132 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
2134 if (ndr_flags & NDR_BUFFERS) {
2135 if (r->devmode) {
2136 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
2138 struct ndr_push *_ndr_devmode;
2139 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2140 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2141 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
2145 return NDR_ERR_SUCCESS;
2148 static enum ndr_err_code ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceModeInfo *r)
2150 uint32_t _ptr_devmode;
2151 TALLOC_CTX *_mem_save_devmode_0;
2152 if (ndr_flags & NDR_SCALARS) {
2153 NDR_CHECK(ndr_pull_align(ndr, 4));
2154 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2155 if (_ptr_devmode) {
2156 NDR_PULL_ALLOC(ndr, r->devmode);
2157 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
2158 } else {
2159 r->devmode = NULL;
2162 if (ndr_flags & NDR_BUFFERS) {
2163 if (r->devmode) {
2164 uint32_t _relative_save_offset;
2165 _relative_save_offset = ndr->offset;
2166 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
2167 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2168 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2170 struct ndr_pull *_ndr_devmode;
2171 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2172 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2173 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
2175 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2176 ndr->offset = _relative_save_offset;
2179 return NDR_ERR_SUCCESS;
2182 _PUBLIC_ void ndr_print_spoolss_DeviceModeInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceModeInfo *r)
2184 ndr_print_struct(ndr, name, "spoolss_DeviceModeInfo");
2185 ndr->depth++;
2186 ndr_print_ptr(ndr, "devmode", r->devmode);
2187 ndr->depth++;
2188 if (r->devmode) {
2189 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2191 ndr->depth--;
2192 ndr->depth--;
2195 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterInfo *r)
2197 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
2198 if (ndr_flags & NDR_SCALARS) {
2199 int level = ndr_push_get_switch_value(ndr, r);
2200 switch (level) {
2201 case 0: {
2202 NDR_CHECK(ndr_push_align(ndr, 4));
2203 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2204 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2205 break; }
2207 case 1: {
2208 NDR_CHECK(ndr_push_align(ndr, 4));
2209 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2210 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2211 break; }
2213 case 2: {
2214 NDR_CHECK(ndr_push_align(ndr, 4));
2215 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2216 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2217 break; }
2219 case 3: {
2220 NDR_CHECK(ndr_push_align(ndr, 4));
2221 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2222 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2223 break; }
2225 case 4: {
2226 NDR_CHECK(ndr_push_align(ndr, 4));
2227 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2228 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2229 break; }
2231 case 5: {
2232 NDR_CHECK(ndr_push_align(ndr, 4));
2233 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2234 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2235 break; }
2237 case 6: {
2238 NDR_CHECK(ndr_push_align(ndr, 4));
2239 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2240 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2241 break; }
2243 case 7: {
2244 NDR_CHECK(ndr_push_align(ndr, 4));
2245 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2246 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2247 break; }
2249 case 8: {
2250 NDR_CHECK(ndr_push_align(ndr, 4));
2251 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2252 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2253 break; }
2255 case 9: {
2256 NDR_CHECK(ndr_push_align(ndr, 4));
2257 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2258 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2259 break; }
2261 default: {
2262 break; }
2266 if (ndr_flags & NDR_BUFFERS) {
2267 int level = ndr_push_get_switch_value(ndr, r);
2268 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
2269 switch (level) {
2270 case 0:
2271 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2272 break;
2274 case 1:
2275 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2276 break;
2278 case 2:
2279 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2280 break;
2282 case 3:
2283 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2284 break;
2286 case 4:
2287 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2288 break;
2290 case 5:
2291 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2292 break;
2294 case 6:
2295 break;
2297 case 7:
2298 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2299 break;
2301 case 8:
2302 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2303 break;
2305 case 9:
2306 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2307 break;
2309 default:
2310 break;
2314 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
2315 return NDR_ERR_SUCCESS;
2318 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterInfo *r)
2320 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
2321 int level;
2322 level = ndr_pull_get_switch_value(ndr, r);
2323 if (ndr_flags & NDR_SCALARS) {
2324 switch (level) {
2325 case 0: {
2326 NDR_CHECK(ndr_pull_align(ndr, 4));
2327 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2328 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2329 break; }
2331 case 1: {
2332 NDR_CHECK(ndr_pull_align(ndr, 4));
2333 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2334 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2335 break; }
2337 case 2: {
2338 NDR_CHECK(ndr_pull_align(ndr, 4));
2339 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2340 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2341 break; }
2343 case 3: {
2344 NDR_CHECK(ndr_pull_align(ndr, 4));
2345 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2346 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2347 break; }
2349 case 4: {
2350 NDR_CHECK(ndr_pull_align(ndr, 4));
2351 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2352 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2353 break; }
2355 case 5: {
2356 NDR_CHECK(ndr_pull_align(ndr, 4));
2357 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2358 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2359 break; }
2361 case 6: {
2362 NDR_CHECK(ndr_pull_align(ndr, 4));
2363 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2364 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2365 break; }
2367 case 7: {
2368 NDR_CHECK(ndr_pull_align(ndr, 4));
2369 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2370 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2371 break; }
2373 case 8: {
2374 NDR_CHECK(ndr_pull_align(ndr, 4));
2375 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2376 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2377 break; }
2379 case 9: {
2380 NDR_CHECK(ndr_pull_align(ndr, 4));
2381 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2382 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2383 break; }
2385 default: {
2386 break; }
2390 if (ndr_flags & NDR_BUFFERS) {
2391 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
2392 switch (level) {
2393 case 0:
2394 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2395 break;
2397 case 1:
2398 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2399 break;
2401 case 2:
2402 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2403 break;
2405 case 3:
2406 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2407 break;
2409 case 4:
2410 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2411 break;
2413 case 5:
2414 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2415 break;
2417 case 6:
2418 break;
2420 case 7:
2421 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2422 break;
2424 case 8:
2425 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2426 break;
2428 case 9:
2429 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2430 break;
2432 default:
2433 break;
2437 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
2438 return NDR_ERR_SUCCESS;
2441 _PUBLIC_ void ndr_print_spoolss_PrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrinterInfo *r)
2443 int level;
2444 level = ndr_print_get_switch_value(ndr, r);
2445 ndr_print_union(ndr, name, level, "spoolss_PrinterInfo");
2446 switch (level) {
2447 case 0:
2448 ndr_print_spoolss_PrinterInfo0(ndr, "info0", &r->info0);
2449 break;
2451 case 1:
2452 ndr_print_spoolss_PrinterInfo1(ndr, "info1", &r->info1);
2453 break;
2455 case 2:
2456 ndr_print_spoolss_PrinterInfo2(ndr, "info2", &r->info2);
2457 break;
2459 case 3:
2460 ndr_print_spoolss_PrinterInfo3(ndr, "info3", &r->info3);
2461 break;
2463 case 4:
2464 ndr_print_spoolss_PrinterInfo4(ndr, "info4", &r->info4);
2465 break;
2467 case 5:
2468 ndr_print_spoolss_PrinterInfo5(ndr, "info5", &r->info5);
2469 break;
2471 case 6:
2472 ndr_print_spoolss_PrinterInfo6(ndr, "info6", &r->info6);
2473 break;
2475 case 7:
2476 ndr_print_spoolss_PrinterInfo7(ndr, "info7", &r->info7);
2477 break;
2479 case 8:
2480 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", &r->info8);
2481 break;
2483 case 9:
2484 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", &r->info9);
2485 break;
2487 default:
2488 break;
2493 static enum ndr_err_code ndr_push_spoolss_DevmodeContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DevmodeContainer *r)
2495 if (ndr_flags & NDR_SCALARS) {
2496 NDR_CHECK(ndr_push_align(ndr, 4));
2497 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2498 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
2500 if (ndr_flags & NDR_BUFFERS) {
2501 if (r->devmode) {
2503 struct ndr_push *_ndr_devmode;
2504 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2505 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2506 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2510 return NDR_ERR_SUCCESS;
2513 static enum ndr_err_code ndr_pull_spoolss_DevmodeContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DevmodeContainer *r)
2515 uint32_t _ptr_devmode;
2516 TALLOC_CTX *_mem_save_devmode_0;
2517 if (ndr_flags & NDR_SCALARS) {
2518 NDR_CHECK(ndr_pull_align(ndr, 4));
2519 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
2520 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2521 if (_ptr_devmode) {
2522 NDR_PULL_ALLOC(ndr, r->devmode);
2523 } else {
2524 r->devmode = NULL;
2527 if (ndr_flags & NDR_BUFFERS) {
2528 if (r->devmode) {
2529 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2530 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2532 struct ndr_pull *_ndr_devmode;
2533 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 4, r->_ndr_size));
2534 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2535 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 4, r->_ndr_size));
2537 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2540 return NDR_ERR_SUCCESS;
2543 _PUBLIC_ void ndr_print_spoolss_DevmodeContainer(struct ndr_print *ndr, const char *name, const struct spoolss_DevmodeContainer *r)
2545 ndr_print_struct(ndr, name, "spoolss_DevmodeContainer");
2546 ndr->depth++;
2547 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);
2548 ndr_print_ptr(ndr, "devmode", r->devmode);
2549 ndr->depth++;
2550 if (r->devmode) {
2551 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2553 ndr->depth--;
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_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
4599 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
4600 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
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->text_status) {
4668 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4669 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4670 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4671 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4674 return NDR_ERR_SUCCESS;
4677 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo2 *r)
4679 uint32_t _ptr_printer_name;
4680 TALLOC_CTX *_mem_save_printer_name_0;
4681 uint32_t _ptr_server_name;
4682 TALLOC_CTX *_mem_save_server_name_0;
4683 uint32_t _ptr_user_name;
4684 TALLOC_CTX *_mem_save_user_name_0;
4685 uint32_t _ptr_document_name;
4686 TALLOC_CTX *_mem_save_document_name_0;
4687 uint32_t _ptr_notify_name;
4688 TALLOC_CTX *_mem_save_notify_name_0;
4689 uint32_t _ptr_data_type;
4690 TALLOC_CTX *_mem_save_data_type_0;
4691 uint32_t _ptr_print_processor;
4692 TALLOC_CTX *_mem_save_print_processor_0;
4693 uint32_t _ptr_parameters;
4694 TALLOC_CTX *_mem_save_parameters_0;
4695 uint32_t _ptr_driver_name;
4696 TALLOC_CTX *_mem_save_driver_name_0;
4697 uint32_t _ptr_text_status;
4698 TALLOC_CTX *_mem_save_text_status_0;
4699 if (ndr_flags & NDR_SCALARS) {
4700 NDR_CHECK(ndr_pull_align(ndr, 4));
4701 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4702 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
4703 if (_ptr_printer_name) {
4704 NDR_PULL_ALLOC(ndr, r->printer_name);
4705 } else {
4706 r->printer_name = NULL;
4708 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
4709 if (_ptr_server_name) {
4710 NDR_PULL_ALLOC(ndr, r->server_name);
4711 } else {
4712 r->server_name = NULL;
4714 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
4715 if (_ptr_user_name) {
4716 NDR_PULL_ALLOC(ndr, r->user_name);
4717 } else {
4718 r->user_name = NULL;
4720 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
4721 if (_ptr_document_name) {
4722 NDR_PULL_ALLOC(ndr, r->document_name);
4723 } else {
4724 r->document_name = NULL;
4726 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
4727 if (_ptr_notify_name) {
4728 NDR_PULL_ALLOC(ndr, r->notify_name);
4729 } else {
4730 r->notify_name = NULL;
4732 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
4733 if (_ptr_data_type) {
4734 NDR_PULL_ALLOC(ndr, r->data_type);
4735 } else {
4736 r->data_type = NULL;
4738 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
4739 if (_ptr_print_processor) {
4740 NDR_PULL_ALLOC(ndr, r->print_processor);
4741 } else {
4742 r->print_processor = NULL;
4744 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
4745 if (_ptr_parameters) {
4746 NDR_PULL_ALLOC(ndr, r->parameters);
4747 } else {
4748 r->parameters = NULL;
4750 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4751 if (_ptr_driver_name) {
4752 NDR_PULL_ALLOC(ndr, r->driver_name);
4753 } else {
4754 r->driver_name = NULL;
4756 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
4757 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
4758 if (_ptr_text_status) {
4759 NDR_PULL_ALLOC(ndr, r->text_status);
4760 } else {
4761 r->text_status = NULL;
4763 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
4764 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
4765 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
4766 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
4767 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
4768 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
4769 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
4770 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
4771 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4772 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
4773 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
4775 if (ndr_flags & NDR_BUFFERS) {
4776 if (r->printer_name) {
4777 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4778 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4779 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
4780 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
4781 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
4782 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));
4784 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
4785 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
4786 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4788 if (r->server_name) {
4789 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4790 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4791 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
4792 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
4793 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
4794 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));
4796 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
4797 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
4798 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4800 if (r->user_name) {
4801 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4802 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4803 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
4804 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
4805 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
4806 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));
4808 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
4809 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
4810 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4812 if (r->document_name) {
4813 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4814 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4815 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
4816 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
4817 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
4818 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));
4820 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
4821 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
4822 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
4824 if (r->notify_name) {
4825 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4826 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
4827 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
4828 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
4829 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
4830 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));
4832 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
4833 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
4834 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
4836 if (r->data_type) {
4837 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4838 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4839 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
4840 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
4841 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
4842 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));
4844 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
4845 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
4846 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4848 if (r->print_processor) {
4849 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
4850 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
4851 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
4852 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
4853 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
4854 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));
4856 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
4857 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
4858 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
4860 if (r->parameters) {
4861 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
4862 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
4863 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
4864 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
4865 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
4866 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));
4868 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
4869 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
4870 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
4872 if (r->driver_name) {
4873 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4874 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4875 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
4876 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
4877 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
4878 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));
4880 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
4881 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
4882 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4884 if (r->text_status) {
4885 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4886 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4887 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
4888 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
4889 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
4890 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));
4892 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
4893 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
4894 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4897 return NDR_ERR_SUCCESS;
4900 _PUBLIC_ void ndr_print_spoolss_SetJobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo2 *r)
4902 ndr_print_struct(ndr, name, "spoolss_SetJobInfo2");
4903 ndr->depth++;
4904 ndr_print_uint32(ndr, "job_id", r->job_id);
4905 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4906 ndr->depth++;
4907 if (r->printer_name) {
4908 ndr_print_string(ndr, "printer_name", r->printer_name);
4910 ndr->depth--;
4911 ndr_print_ptr(ndr, "server_name", r->server_name);
4912 ndr->depth++;
4913 if (r->server_name) {
4914 ndr_print_string(ndr, "server_name", r->server_name);
4916 ndr->depth--;
4917 ndr_print_ptr(ndr, "user_name", r->user_name);
4918 ndr->depth++;
4919 if (r->user_name) {
4920 ndr_print_string(ndr, "user_name", r->user_name);
4922 ndr->depth--;
4923 ndr_print_ptr(ndr, "document_name", r->document_name);
4924 ndr->depth++;
4925 if (r->document_name) {
4926 ndr_print_string(ndr, "document_name", r->document_name);
4928 ndr->depth--;
4929 ndr_print_ptr(ndr, "notify_name", r->notify_name);
4930 ndr->depth++;
4931 if (r->notify_name) {
4932 ndr_print_string(ndr, "notify_name", r->notify_name);
4934 ndr->depth--;
4935 ndr_print_ptr(ndr, "data_type", r->data_type);
4936 ndr->depth++;
4937 if (r->data_type) {
4938 ndr_print_string(ndr, "data_type", r->data_type);
4940 ndr->depth--;
4941 ndr_print_ptr(ndr, "print_processor", r->print_processor);
4942 ndr->depth++;
4943 if (r->print_processor) {
4944 ndr_print_string(ndr, "print_processor", r->print_processor);
4946 ndr->depth--;
4947 ndr_print_ptr(ndr, "parameters", r->parameters);
4948 ndr->depth++;
4949 if (r->parameters) {
4950 ndr_print_string(ndr, "parameters", r->parameters);
4952 ndr->depth--;
4953 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4954 ndr->depth++;
4955 if (r->driver_name) {
4956 ndr_print_string(ndr, "driver_name", r->driver_name);
4958 ndr->depth--;
4959 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
4960 ndr_print_ptr(ndr, "text_status", r->text_status);
4961 ndr->depth++;
4962 if (r->text_status) {
4963 ndr_print_string(ndr, "text_status", r->text_status);
4965 ndr->depth--;
4966 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
4967 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4968 ndr_print_uint32(ndr, "priority", r->priority);
4969 ndr_print_uint32(ndr, "position", r->position);
4970 ndr_print_uint32(ndr, "start_time", r->start_time);
4971 ndr_print_uint32(ndr, "until_time", r->until_time);
4972 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4973 ndr_print_uint32(ndr, "size", r->size);
4974 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4975 ndr_print_uint32(ndr, "time", r->time);
4976 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4977 ndr->depth--;
4980 static enum ndr_err_code ndr_push_spoolss_SetJobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo4 *r)
4982 if (ndr_flags & NDR_SCALARS) {
4983 NDR_CHECK(ndr_push_align(ndr, 4));
4984 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4985 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
4986 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
4987 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
4988 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
4989 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
4990 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
4991 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
4992 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
4993 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
4994 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
4995 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
4996 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
4997 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
4998 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
4999 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5000 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
5001 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
5002 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5003 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
5004 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5005 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
5006 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5007 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
5009 if (ndr_flags & NDR_BUFFERS) {
5010 if (r->printer_name) {
5011 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5012 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5013 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5014 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5016 if (r->server_name) {
5017 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5018 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5019 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5020 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5022 if (r->user_name) {
5023 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5024 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5025 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5026 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5028 if (r->document_name) {
5029 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5030 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5031 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5032 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5034 if (r->notify_name) {
5035 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5036 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5037 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5038 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5040 if (r->data_type) {
5041 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5042 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5043 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5044 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5046 if (r->print_processor) {
5047 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5048 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5049 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5050 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5052 if (r->parameters) {
5053 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, 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->parameters, CH_UTF16)));
5056 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5058 if (r->driver_name) {
5059 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_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->driver_name, CH_UTF16)));
5062 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5064 if (r->text_status) {
5065 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, 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->text_status, CH_UTF16)));
5068 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5071 return NDR_ERR_SUCCESS;
5074 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo4 *r)
5076 uint32_t _ptr_printer_name;
5077 TALLOC_CTX *_mem_save_printer_name_0;
5078 uint32_t _ptr_server_name;
5079 TALLOC_CTX *_mem_save_server_name_0;
5080 uint32_t _ptr_user_name;
5081 TALLOC_CTX *_mem_save_user_name_0;
5082 uint32_t _ptr_document_name;
5083 TALLOC_CTX *_mem_save_document_name_0;
5084 uint32_t _ptr_notify_name;
5085 TALLOC_CTX *_mem_save_notify_name_0;
5086 uint32_t _ptr_data_type;
5087 TALLOC_CTX *_mem_save_data_type_0;
5088 uint32_t _ptr_print_processor;
5089 TALLOC_CTX *_mem_save_print_processor_0;
5090 uint32_t _ptr_parameters;
5091 TALLOC_CTX *_mem_save_parameters_0;
5092 uint32_t _ptr_driver_name;
5093 TALLOC_CTX *_mem_save_driver_name_0;
5094 uint32_t _ptr_text_status;
5095 TALLOC_CTX *_mem_save_text_status_0;
5096 if (ndr_flags & NDR_SCALARS) {
5097 NDR_CHECK(ndr_pull_align(ndr, 4));
5098 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5099 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5100 if (_ptr_printer_name) {
5101 NDR_PULL_ALLOC(ndr, r->printer_name);
5102 } else {
5103 r->printer_name = NULL;
5105 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5106 if (_ptr_server_name) {
5107 NDR_PULL_ALLOC(ndr, r->server_name);
5108 } else {
5109 r->server_name = NULL;
5111 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5112 if (_ptr_user_name) {
5113 NDR_PULL_ALLOC(ndr, r->user_name);
5114 } else {
5115 r->user_name = NULL;
5117 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5118 if (_ptr_document_name) {
5119 NDR_PULL_ALLOC(ndr, r->document_name);
5120 } else {
5121 r->document_name = NULL;
5123 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
5124 if (_ptr_notify_name) {
5125 NDR_PULL_ALLOC(ndr, r->notify_name);
5126 } else {
5127 r->notify_name = NULL;
5129 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5130 if (_ptr_data_type) {
5131 NDR_PULL_ALLOC(ndr, r->data_type);
5132 } else {
5133 r->data_type = NULL;
5135 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
5136 if (_ptr_print_processor) {
5137 NDR_PULL_ALLOC(ndr, r->print_processor);
5138 } else {
5139 r->print_processor = NULL;
5141 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
5142 if (_ptr_parameters) {
5143 NDR_PULL_ALLOC(ndr, r->parameters);
5144 } else {
5145 r->parameters = NULL;
5147 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5148 if (_ptr_driver_name) {
5149 NDR_PULL_ALLOC(ndr, r->driver_name);
5150 } else {
5151 r->driver_name = NULL;
5153 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
5154 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5155 if (_ptr_text_status) {
5156 NDR_PULL_ALLOC(ndr, r->text_status);
5157 } else {
5158 r->text_status = NULL;
5160 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
5161 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5162 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5163 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5164 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
5165 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
5166 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5167 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
5168 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5169 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
5170 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5171 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
5173 if (ndr_flags & NDR_BUFFERS) {
5174 if (r->printer_name) {
5175 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5176 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5177 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5178 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5179 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5180 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));
5182 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5183 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
5184 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5186 if (r->server_name) {
5187 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5188 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5189 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5190 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5191 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5192 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));
5194 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5195 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
5196 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5198 if (r->user_name) {
5199 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5200 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5201 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5202 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5203 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5204 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));
5206 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5207 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
5208 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5210 if (r->document_name) {
5211 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5212 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5213 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5214 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5215 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5216 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));
5218 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5219 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
5220 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5222 if (r->notify_name) {
5223 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5224 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
5225 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
5226 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
5227 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
5228 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));
5230 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
5231 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
5232 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
5234 if (r->data_type) {
5235 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5236 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5237 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5238 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5239 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
5240 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));
5242 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
5243 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
5244 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5246 if (r->print_processor) {
5247 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
5248 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
5249 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
5250 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
5251 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
5252 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));
5254 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
5255 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
5256 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
5258 if (r->parameters) {
5259 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
5260 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
5261 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
5262 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
5263 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
5264 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));
5266 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
5267 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
5268 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
5270 if (r->driver_name) {
5271 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5272 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5273 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5274 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5275 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5276 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));
5278 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5279 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5280 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5282 if (r->text_status) {
5283 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5284 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5285 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5286 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5287 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
5288 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));
5290 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
5291 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
5292 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5295 return NDR_ERR_SUCCESS;
5298 _PUBLIC_ void ndr_print_spoolss_SetJobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo4 *r)
5300 ndr_print_struct(ndr, name, "spoolss_SetJobInfo4");
5301 ndr->depth++;
5302 ndr_print_uint32(ndr, "job_id", r->job_id);
5303 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5304 ndr->depth++;
5305 if (r->printer_name) {
5306 ndr_print_string(ndr, "printer_name", r->printer_name);
5308 ndr->depth--;
5309 ndr_print_ptr(ndr, "server_name", r->server_name);
5310 ndr->depth++;
5311 if (r->server_name) {
5312 ndr_print_string(ndr, "server_name", r->server_name);
5314 ndr->depth--;
5315 ndr_print_ptr(ndr, "user_name", r->user_name);
5316 ndr->depth++;
5317 if (r->user_name) {
5318 ndr_print_string(ndr, "user_name", r->user_name);
5320 ndr->depth--;
5321 ndr_print_ptr(ndr, "document_name", r->document_name);
5322 ndr->depth++;
5323 if (r->document_name) {
5324 ndr_print_string(ndr, "document_name", r->document_name);
5326 ndr->depth--;
5327 ndr_print_ptr(ndr, "notify_name", r->notify_name);
5328 ndr->depth++;
5329 if (r->notify_name) {
5330 ndr_print_string(ndr, "notify_name", r->notify_name);
5332 ndr->depth--;
5333 ndr_print_ptr(ndr, "data_type", r->data_type);
5334 ndr->depth++;
5335 if (r->data_type) {
5336 ndr_print_string(ndr, "data_type", r->data_type);
5338 ndr->depth--;
5339 ndr_print_ptr(ndr, "print_processor", r->print_processor);
5340 ndr->depth++;
5341 if (r->print_processor) {
5342 ndr_print_string(ndr, "print_processor", r->print_processor);
5344 ndr->depth--;
5345 ndr_print_ptr(ndr, "parameters", r->parameters);
5346 ndr->depth++;
5347 if (r->parameters) {
5348 ndr_print_string(ndr, "parameters", r->parameters);
5350 ndr->depth--;
5351 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5352 ndr->depth++;
5353 if (r->driver_name) {
5354 ndr_print_string(ndr, "driver_name", r->driver_name);
5356 ndr->depth--;
5357 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
5358 ndr_print_ptr(ndr, "text_status", r->text_status);
5359 ndr->depth++;
5360 if (r->text_status) {
5361 ndr_print_string(ndr, "text_status", r->text_status);
5363 ndr->depth--;
5364 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
5365 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5366 ndr_print_uint32(ndr, "priority", r->priority);
5367 ndr_print_uint32(ndr, "position", r->position);
5368 ndr_print_uint32(ndr, "start_time", r->start_time);
5369 ndr_print_uint32(ndr, "until_time", r->until_time);
5370 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5371 ndr_print_uint32(ndr, "size", r->size);
5372 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5373 ndr_print_uint32(ndr, "time", r->time);
5374 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5375 ndr_print_uint32(ndr, "size_high", r->size_high);
5376 ndr->depth--;
5379 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetJobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetJobInfo *r)
5381 if (ndr_flags & NDR_SCALARS) {
5382 int level = ndr_push_get_switch_value(ndr, r);
5383 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5384 switch (level) {
5385 case 1: {
5386 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
5387 break; }
5389 case 2: {
5390 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
5391 break; }
5393 case 3: {
5394 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
5395 break; }
5397 case 4: {
5398 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
5399 break; }
5401 default: {
5402 break; }
5406 if (ndr_flags & NDR_BUFFERS) {
5407 int level = ndr_push_get_switch_value(ndr, r);
5408 switch (level) {
5409 case 1:
5410 if (r->info1) {
5411 NDR_CHECK(ndr_push_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
5413 break;
5415 case 2:
5416 if (r->info2) {
5417 NDR_CHECK(ndr_push_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5419 break;
5421 case 3:
5422 if (r->info3) {
5423 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
5425 break;
5427 case 4:
5428 if (r->info4) {
5429 NDR_CHECK(ndr_push_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
5431 break;
5433 default:
5434 break;
5438 return NDR_ERR_SUCCESS;
5441 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetJobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetJobInfo *r)
5443 int level;
5444 uint32_t _level;
5445 TALLOC_CTX *_mem_save_info1_0;
5446 TALLOC_CTX *_mem_save_info2_0;
5447 TALLOC_CTX *_mem_save_info3_0;
5448 TALLOC_CTX *_mem_save_info4_0;
5449 level = ndr_pull_get_switch_value(ndr, r);
5450 if (ndr_flags & NDR_SCALARS) {
5451 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5452 if (_level != level) {
5453 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5455 switch (level) {
5456 case 1: {
5457 uint32_t _ptr_info1;
5458 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
5459 if (_ptr_info1) {
5460 NDR_PULL_ALLOC(ndr, r->info1);
5461 } else {
5462 r->info1 = NULL;
5464 break; }
5466 case 2: {
5467 uint32_t _ptr_info2;
5468 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
5469 if (_ptr_info2) {
5470 NDR_PULL_ALLOC(ndr, r->info2);
5471 } else {
5472 r->info2 = NULL;
5474 break; }
5476 case 3: {
5477 uint32_t _ptr_info3;
5478 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
5479 if (_ptr_info3) {
5480 NDR_PULL_ALLOC(ndr, r->info3);
5481 } else {
5482 r->info3 = NULL;
5484 break; }
5486 case 4: {
5487 uint32_t _ptr_info4;
5488 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
5489 if (_ptr_info4) {
5490 NDR_PULL_ALLOC(ndr, r->info4);
5491 } else {
5492 r->info4 = NULL;
5494 break; }
5496 default: {
5497 break; }
5501 if (ndr_flags & NDR_BUFFERS) {
5502 switch (level) {
5503 case 1:
5504 if (r->info1) {
5505 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
5506 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
5507 NDR_CHECK(ndr_pull_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
5508 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
5510 break;
5512 case 2:
5513 if (r->info2) {
5514 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
5515 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
5516 NDR_CHECK(ndr_pull_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5517 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
5519 break;
5521 case 3:
5522 if (r->info3) {
5523 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
5524 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
5525 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
5526 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
5528 break;
5530 case 4:
5531 if (r->info4) {
5532 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
5533 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
5534 NDR_CHECK(ndr_pull_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
5535 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
5537 break;
5539 default:
5540 break;
5544 return NDR_ERR_SUCCESS;
5547 _PUBLIC_ void ndr_print_spoolss_SetJobInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetJobInfo *r)
5549 int level;
5550 level = ndr_print_get_switch_value(ndr, r);
5551 ndr_print_union(ndr, name, level, "spoolss_SetJobInfo");
5552 switch (level) {
5553 case 1:
5554 ndr_print_ptr(ndr, "info1", r->info1);
5555 ndr->depth++;
5556 if (r->info1) {
5557 ndr_print_spoolss_SetJobInfo1(ndr, "info1", r->info1);
5559 ndr->depth--;
5560 break;
5562 case 2:
5563 ndr_print_ptr(ndr, "info2", r->info2);
5564 ndr->depth++;
5565 if (r->info2) {
5566 ndr_print_spoolss_SetJobInfo2(ndr, "info2", r->info2);
5568 ndr->depth--;
5569 break;
5571 case 3:
5572 ndr_print_ptr(ndr, "info3", r->info3);
5573 ndr->depth++;
5574 if (r->info3) {
5575 ndr_print_spoolss_JobInfo3(ndr, "info3", r->info3);
5577 ndr->depth--;
5578 break;
5580 case 4:
5581 ndr_print_ptr(ndr, "info4", r->info4);
5582 ndr->depth++;
5583 if (r->info4) {
5584 ndr_print_spoolss_SetJobInfo4(ndr, "info4", r->info4);
5586 ndr->depth--;
5587 break;
5589 default:
5590 break;
5595 static enum ndr_err_code ndr_push_spoolss_JobInfoContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfoContainer *r)
5597 if (ndr_flags & NDR_SCALARS) {
5598 NDR_CHECK(ndr_push_align(ndr, 4));
5599 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
5600 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
5601 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
5603 if (ndr_flags & NDR_BUFFERS) {
5604 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
5606 return NDR_ERR_SUCCESS;
5609 static enum ndr_err_code ndr_pull_spoolss_JobInfoContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfoContainer *r)
5611 if (ndr_flags & NDR_SCALARS) {
5612 NDR_CHECK(ndr_pull_align(ndr, 4));
5613 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
5614 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
5615 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
5617 if (ndr_flags & NDR_BUFFERS) {
5618 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
5620 return NDR_ERR_SUCCESS;
5623 _PUBLIC_ void ndr_print_spoolss_JobInfoContainer(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfoContainer *r)
5625 ndr_print_struct(ndr, name, "spoolss_JobInfoContainer");
5626 ndr->depth++;
5627 ndr_print_uint32(ndr, "level", r->level);
5628 ndr_print_set_switch_value(ndr, &r->info, r->level);
5629 ndr_print_spoolss_SetJobInfo(ndr, "info", &r->info);
5630 ndr->depth--;
5633 static enum ndr_err_code ndr_push_spoolss_JobControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobControl r)
5635 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5636 return NDR_ERR_SUCCESS;
5639 static enum ndr_err_code ndr_pull_spoolss_JobControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobControl *r)
5641 uint32_t v;
5642 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5643 *r = v;
5644 return NDR_ERR_SUCCESS;
5647 _PUBLIC_ void ndr_print_spoolss_JobControl(struct ndr_print *ndr, const char *name, enum spoolss_JobControl r)
5649 const char *val = NULL;
5651 switch (r) {
5652 case SPOOLSS_JOB_CONTROL_PAUSE: val = "SPOOLSS_JOB_CONTROL_PAUSE"; break;
5653 case SPOOLSS_JOB_CONTROL_RESUME: val = "SPOOLSS_JOB_CONTROL_RESUME"; break;
5654 case SPOOLSS_JOB_CONTROL_CANCEL: val = "SPOOLSS_JOB_CONTROL_CANCEL"; break;
5655 case SPOOLSS_JOB_CONTROL_RESTART: val = "SPOOLSS_JOB_CONTROL_RESTART"; break;
5656 case SPOOLSS_JOB_CONTROL_DELETE: val = "SPOOLSS_JOB_CONTROL_DELETE"; break;
5657 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER: val = "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
5658 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED: val = "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
5659 case SPOOLSS_JOB_CONTROL_RETAIN: val = "SPOOLSS_JOB_CONTROL_RETAIN"; break;
5660 case SPOOLSS_JOB_CONTROL_RELEASE: val = "SPOOLSS_JOB_CONTROL_RELEASE"; break;
5662 ndr_print_enum(ndr, name, "ENUM", val, r);
5665 static enum ndr_err_code ndr_push_spoolss_PrinterControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterControl r)
5667 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5668 return NDR_ERR_SUCCESS;
5671 static enum ndr_err_code ndr_pull_spoolss_PrinterControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterControl *r)
5673 uint32_t v;
5674 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5675 *r = v;
5676 return NDR_ERR_SUCCESS;
5679 _PUBLIC_ void ndr_print_spoolss_PrinterControl(struct ndr_print *ndr, const char *name, enum spoolss_PrinterControl r)
5681 const char *val = NULL;
5683 switch (r) {
5684 case SPOOLSS_PRINTER_CONTROL_UNPAUSE: val = "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
5685 case SPOOLSS_PRINTER_CONTROL_PAUSE: val = "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
5686 case SPOOLSS_PRINTER_CONTROL_RESUME: val = "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
5687 case SPOOLSS_PRINTER_CONTROL_PURGE: val = "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
5688 case SPOOLSS_PRINTER_CONTROL_SET_STATUS: val = "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
5690 ndr_print_enum(ndr, name, "ENUM", val, r);
5693 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo0 *r)
5695 if (ndr_flags & NDR_SCALARS) {
5696 NDR_CHECK(ndr_push_align(ndr, 4));
5697 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
5698 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
5699 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
5700 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
5701 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
5702 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
5703 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
5704 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5705 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
5706 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
5707 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
5708 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
5709 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
5710 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
5711 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
5712 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_error));
5713 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
5714 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
5715 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
5716 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
5717 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
5718 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status));
5719 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
5720 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
5721 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
5722 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
5723 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
5724 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
5725 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
5727 if (ndr_flags & NDR_BUFFERS) {
5728 if (r->servername) {
5729 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
5730 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5731 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
5732 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5734 if (r->printername) {
5735 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
5736 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5737 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
5738 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5741 return NDR_ERR_SUCCESS;
5744 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo0 *r)
5746 uint32_t _ptr_servername;
5747 TALLOC_CTX *_mem_save_servername_0;
5748 uint32_t _ptr_printername;
5749 TALLOC_CTX *_mem_save_printername_0;
5750 if (ndr_flags & NDR_SCALARS) {
5751 NDR_CHECK(ndr_pull_align(ndr, 4));
5752 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
5753 if (_ptr_servername) {
5754 NDR_PULL_ALLOC(ndr, r->servername);
5755 } else {
5756 r->servername = NULL;
5758 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
5759 if (_ptr_printername) {
5760 NDR_PULL_ALLOC(ndr, r->printername);
5761 } else {
5762 r->printername = NULL;
5764 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
5765 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
5766 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
5767 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
5768 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
5769 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5770 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
5771 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
5772 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
5773 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
5774 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
5775 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
5776 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
5777 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_error));
5778 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
5779 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
5780 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
5781 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
5782 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
5783 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status));
5784 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
5785 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
5786 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
5787 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
5788 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
5789 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
5790 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
5792 if (ndr_flags & NDR_BUFFERS) {
5793 if (r->servername) {
5794 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
5795 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
5796 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
5797 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
5798 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
5799 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));
5801 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
5802 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
5803 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
5805 if (r->printername) {
5806 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
5807 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
5808 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
5809 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
5810 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
5811 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));
5813 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
5814 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
5815 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
5818 return NDR_ERR_SUCCESS;
5821 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo0 *r)
5823 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo0");
5824 ndr->depth++;
5825 ndr_print_ptr(ndr, "servername", r->servername);
5826 ndr->depth++;
5827 if (r->servername) {
5828 ndr_print_string(ndr, "servername", r->servername);
5830 ndr->depth--;
5831 ndr_print_ptr(ndr, "printername", r->printername);
5832 ndr->depth++;
5833 if (r->printername) {
5834 ndr_print_string(ndr, "printername", r->printername);
5836 ndr->depth--;
5837 ndr_print_uint32(ndr, "cjobs", r->cjobs);
5838 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
5839 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
5840 ndr_print_spoolss_Time(ndr, "time", &r->time);
5841 ndr_print_uint32(ndr, "global_counter", r->global_counter);
5842 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5843 ndr_print_uint32(ndr, "version", r->version);
5844 ndr_print_uint32(ndr, "free_build", r->free_build);
5845 ndr_print_uint32(ndr, "spooling", r->spooling);
5846 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
5847 ndr_print_uint32(ndr, "session_counter", r->session_counter);
5848 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
5849 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
5850 ndr_print_uint32(ndr, "job_error", r->job_error);
5851 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
5852 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
5853 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
5854 ndr_print_uint32(ndr, "change_id", r->change_id);
5855 ndr_print_WERROR(ndr, "last_error", r->last_error);
5856 ndr_print_uint32(ndr, "status", r->status);
5857 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
5858 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
5859 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
5860 ndr_print_uint16(ndr, "processor_level", r->processor_level);
5861 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
5862 ndr_print_uint32(ndr, "reserved2", r->reserved2);
5863 ndr_print_uint32(ndr, "reserved3", r->reserved3);
5864 ndr->depth--;
5867 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo1 *r)
5869 if (ndr_flags & NDR_SCALARS) {
5870 NDR_CHECK(ndr_push_align(ndr, 4));
5871 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->flags));
5872 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
5873 NDR_CHECK(ndr_push_unique_ptr(ndr, r->description));
5874 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
5876 if (ndr_flags & NDR_BUFFERS) {
5877 if (r->name) {
5878 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
5879 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5880 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
5881 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5883 if (r->description) {
5884 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
5885 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5886 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
5887 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->description, ndr_charset_length(r->description, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5889 if (r->comment) {
5890 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
5891 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5892 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
5893 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5896 return NDR_ERR_SUCCESS;
5899 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo1 *r)
5901 uint32_t _ptr_name;
5902 TALLOC_CTX *_mem_save_name_0;
5903 uint32_t _ptr_description;
5904 TALLOC_CTX *_mem_save_description_0;
5905 uint32_t _ptr_comment;
5906 TALLOC_CTX *_mem_save_comment_0;
5907 if (ndr_flags & NDR_SCALARS) {
5908 NDR_CHECK(ndr_pull_align(ndr, 4));
5909 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->flags));
5910 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
5911 if (_ptr_name) {
5912 NDR_PULL_ALLOC(ndr, r->name);
5913 } else {
5914 r->name = NULL;
5916 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
5917 if (_ptr_description) {
5918 NDR_PULL_ALLOC(ndr, r->description);
5919 } else {
5920 r->description = NULL;
5922 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
5923 if (_ptr_comment) {
5924 NDR_PULL_ALLOC(ndr, r->comment);
5925 } else {
5926 r->comment = NULL;
5929 if (ndr_flags & NDR_BUFFERS) {
5930 if (r->name) {
5931 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5932 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
5933 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
5934 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
5935 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
5936 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));
5938 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
5939 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
5940 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
5942 if (r->description) {
5943 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
5944 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
5945 NDR_CHECK(ndr_pull_array_size(ndr, &r->description));
5946 NDR_CHECK(ndr_pull_array_length(ndr, &r->description));
5947 if (ndr_get_array_length(ndr, &r->description) > ndr_get_array_size(ndr, &r->description)) {
5948 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));
5950 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t)));
5951 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->description, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t), CH_UTF16));
5952 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
5954 if (r->comment) {
5955 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
5956 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
5957 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
5958 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
5959 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
5960 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));
5962 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
5963 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
5964 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
5967 return NDR_ERR_SUCCESS;
5970 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo1 *r)
5972 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo1");
5973 ndr->depth++;
5974 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->flags);
5975 ndr_print_ptr(ndr, "name", r->name);
5976 ndr->depth++;
5977 if (r->name) {
5978 ndr_print_string(ndr, "name", r->name);
5980 ndr->depth--;
5981 ndr_print_ptr(ndr, "description", r->description);
5982 ndr->depth++;
5983 if (r->description) {
5984 ndr_print_string(ndr, "description", r->description);
5986 ndr->depth--;
5987 ndr_print_ptr(ndr, "comment", r->comment);
5988 ndr->depth++;
5989 if (r->comment) {
5990 ndr_print_string(ndr, "comment", r->comment);
5992 ndr->depth--;
5993 ndr->depth--;
5996 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo2 *r)
5998 if (ndr_flags & NDR_SCALARS) {
5999 NDR_CHECK(ndr_push_align(ndr, 4));
6000 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6001 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6002 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sharename));
6003 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
6004 NDR_CHECK(ndr_push_unique_ptr(ndr, r->drivername));
6005 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
6006 NDR_CHECK(ndr_push_unique_ptr(ndr, r->location));
6007 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
6008 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sepfile));
6009 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printprocessor));
6010 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
6011 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
6012 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secdesc));
6013 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
6014 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
6015 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
6016 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
6017 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
6018 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
6019 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
6020 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
6022 if (ndr_flags & NDR_BUFFERS) {
6023 if (r->servername) {
6024 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6025 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6026 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6027 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6029 if (r->printername) {
6030 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6031 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6032 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6033 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6035 if (r->sharename) {
6036 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
6037 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6038 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
6039 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sharename, ndr_charset_length(r->sharename, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6041 if (r->portname) {
6042 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6043 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6044 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6045 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6047 if (r->drivername) {
6048 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
6049 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6050 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
6051 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->drivername, ndr_charset_length(r->drivername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6053 if (r->comment) {
6054 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6055 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6056 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6057 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6059 if (r->location) {
6060 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
6061 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6062 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
6063 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->location, ndr_charset_length(r->location, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6065 if (r->devmode) {
6067 struct ndr_push *_ndr_devmode;
6068 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
6069 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
6070 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
6073 if (r->sepfile) {
6074 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
6075 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6076 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
6077 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sepfile, ndr_charset_length(r->sepfile, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6079 if (r->printprocessor) {
6080 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
6081 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6082 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
6083 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printprocessor, ndr_charset_length(r->printprocessor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6085 if (r->datatype) {
6086 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
6087 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6088 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
6089 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6091 if (r->parameters) {
6092 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6093 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6094 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6095 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6097 if (r->secdesc) {
6099 struct ndr_push *_ndr_secdesc;
6100 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
6101 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
6102 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
6106 return NDR_ERR_SUCCESS;
6109 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo2 *r)
6111 uint32_t _ptr_servername;
6112 TALLOC_CTX *_mem_save_servername_0;
6113 uint32_t _ptr_printername;
6114 TALLOC_CTX *_mem_save_printername_0;
6115 uint32_t _ptr_sharename;
6116 TALLOC_CTX *_mem_save_sharename_0;
6117 uint32_t _ptr_portname;
6118 TALLOC_CTX *_mem_save_portname_0;
6119 uint32_t _ptr_drivername;
6120 TALLOC_CTX *_mem_save_drivername_0;
6121 uint32_t _ptr_comment;
6122 TALLOC_CTX *_mem_save_comment_0;
6123 uint32_t _ptr_location;
6124 TALLOC_CTX *_mem_save_location_0;
6125 uint32_t _ptr_devmode;
6126 TALLOC_CTX *_mem_save_devmode_0;
6127 uint32_t _ptr_sepfile;
6128 TALLOC_CTX *_mem_save_sepfile_0;
6129 uint32_t _ptr_printprocessor;
6130 TALLOC_CTX *_mem_save_printprocessor_0;
6131 uint32_t _ptr_datatype;
6132 TALLOC_CTX *_mem_save_datatype_0;
6133 uint32_t _ptr_parameters;
6134 TALLOC_CTX *_mem_save_parameters_0;
6135 uint32_t _ptr_secdesc;
6136 TALLOC_CTX *_mem_save_secdesc_0;
6137 if (ndr_flags & NDR_SCALARS) {
6138 NDR_CHECK(ndr_pull_align(ndr, 4));
6139 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6140 if (_ptr_servername) {
6141 NDR_PULL_ALLOC(ndr, r->servername);
6142 } else {
6143 r->servername = NULL;
6145 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6146 if (_ptr_printername) {
6147 NDR_PULL_ALLOC(ndr, r->printername);
6148 } else {
6149 r->printername = NULL;
6151 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
6152 if (_ptr_sharename) {
6153 NDR_PULL_ALLOC(ndr, r->sharename);
6154 } else {
6155 r->sharename = NULL;
6157 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
6158 if (_ptr_portname) {
6159 NDR_PULL_ALLOC(ndr, r->portname);
6160 } else {
6161 r->portname = NULL;
6163 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
6164 if (_ptr_drivername) {
6165 NDR_PULL_ALLOC(ndr, r->drivername);
6166 } else {
6167 r->drivername = NULL;
6169 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
6170 if (_ptr_comment) {
6171 NDR_PULL_ALLOC(ndr, r->comment);
6172 } else {
6173 r->comment = NULL;
6175 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
6176 if (_ptr_location) {
6177 NDR_PULL_ALLOC(ndr, r->location);
6178 } else {
6179 r->location = NULL;
6181 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
6182 if (_ptr_devmode) {
6183 NDR_PULL_ALLOC(ndr, r->devmode);
6184 } else {
6185 r->devmode = NULL;
6187 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
6188 if (_ptr_sepfile) {
6189 NDR_PULL_ALLOC(ndr, r->sepfile);
6190 } else {
6191 r->sepfile = NULL;
6193 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
6194 if (_ptr_printprocessor) {
6195 NDR_PULL_ALLOC(ndr, r->printprocessor);
6196 } else {
6197 r->printprocessor = NULL;
6199 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
6200 if (_ptr_datatype) {
6201 NDR_PULL_ALLOC(ndr, r->datatype);
6202 } else {
6203 r->datatype = NULL;
6205 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
6206 if (_ptr_parameters) {
6207 NDR_PULL_ALLOC(ndr, r->parameters);
6208 } else {
6209 r->parameters = NULL;
6211 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
6212 if (_ptr_secdesc) {
6213 NDR_PULL_ALLOC(ndr, r->secdesc);
6214 } else {
6215 r->secdesc = NULL;
6217 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
6218 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
6219 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
6220 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
6221 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
6222 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
6223 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
6224 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
6226 if (ndr_flags & NDR_BUFFERS) {
6227 if (r->servername) {
6228 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6229 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
6230 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
6231 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
6232 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
6233 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));
6235 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
6236 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
6237 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
6239 if (r->printername) {
6240 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6241 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6242 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6243 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6244 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6245 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));
6247 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6248 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
6249 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6251 if (r->sharename) {
6252 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
6253 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
6254 NDR_CHECK(ndr_pull_array_size(ndr, &r->sharename));
6255 NDR_CHECK(ndr_pull_array_length(ndr, &r->sharename));
6256 if (ndr_get_array_length(ndr, &r->sharename) > ndr_get_array_size(ndr, &r->sharename)) {
6257 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));
6259 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t)));
6260 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sharename, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t), CH_UTF16));
6261 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
6263 if (r->portname) {
6264 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
6265 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
6266 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
6267 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
6268 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
6269 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));
6271 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
6272 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
6273 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
6275 if (r->drivername) {
6276 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6277 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
6278 NDR_CHECK(ndr_pull_array_size(ndr, &r->drivername));
6279 NDR_CHECK(ndr_pull_array_length(ndr, &r->drivername));
6280 if (ndr_get_array_length(ndr, &r->drivername) > ndr_get_array_size(ndr, &r->drivername)) {
6281 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));
6283 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t)));
6284 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->drivername, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t), CH_UTF16));
6285 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
6287 if (r->comment) {
6288 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
6289 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
6290 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
6291 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
6292 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
6293 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));
6295 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
6296 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
6297 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
6299 if (r->location) {
6300 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
6301 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
6302 NDR_CHECK(ndr_pull_array_size(ndr, &r->location));
6303 NDR_CHECK(ndr_pull_array_length(ndr, &r->location));
6304 if (ndr_get_array_length(ndr, &r->location) > ndr_get_array_size(ndr, &r->location)) {
6305 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));
6307 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t)));
6308 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->location, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t), CH_UTF16));
6309 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
6311 if (r->devmode) {
6312 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
6313 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
6315 struct ndr_pull *_ndr_devmode;
6316 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
6317 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
6318 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
6320 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
6322 if (r->sepfile) {
6323 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
6324 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
6325 NDR_CHECK(ndr_pull_array_size(ndr, &r->sepfile));
6326 NDR_CHECK(ndr_pull_array_length(ndr, &r->sepfile));
6327 if (ndr_get_array_length(ndr, &r->sepfile) > ndr_get_array_size(ndr, &r->sepfile)) {
6328 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));
6330 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t)));
6331 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sepfile, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t), CH_UTF16));
6332 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
6334 if (r->printprocessor) {
6335 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
6336 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
6337 NDR_CHECK(ndr_pull_array_size(ndr, &r->printprocessor));
6338 NDR_CHECK(ndr_pull_array_length(ndr, &r->printprocessor));
6339 if (ndr_get_array_length(ndr, &r->printprocessor) > ndr_get_array_size(ndr, &r->printprocessor)) {
6340 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));
6342 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t)));
6343 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printprocessor, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t), CH_UTF16));
6344 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
6346 if (r->datatype) {
6347 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
6348 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
6349 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
6350 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
6351 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
6352 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));
6354 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
6355 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
6356 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
6358 if (r->parameters) {
6359 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
6360 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
6361 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
6362 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
6363 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
6364 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));
6366 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
6367 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
6368 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
6370 if (r->secdesc) {
6371 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
6372 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
6374 struct ndr_pull *_ndr_secdesc;
6375 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
6376 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
6377 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
6379 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
6382 return NDR_ERR_SUCCESS;
6385 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo2 *r)
6387 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo2");
6388 ndr->depth++;
6389 ndr_print_ptr(ndr, "servername", r->servername);
6390 ndr->depth++;
6391 if (r->servername) {
6392 ndr_print_string(ndr, "servername", r->servername);
6394 ndr->depth--;
6395 ndr_print_ptr(ndr, "printername", r->printername);
6396 ndr->depth++;
6397 if (r->printername) {
6398 ndr_print_string(ndr, "printername", r->printername);
6400 ndr->depth--;
6401 ndr_print_ptr(ndr, "sharename", r->sharename);
6402 ndr->depth++;
6403 if (r->sharename) {
6404 ndr_print_string(ndr, "sharename", r->sharename);
6406 ndr->depth--;
6407 ndr_print_ptr(ndr, "portname", r->portname);
6408 ndr->depth++;
6409 if (r->portname) {
6410 ndr_print_string(ndr, "portname", r->portname);
6412 ndr->depth--;
6413 ndr_print_ptr(ndr, "drivername", r->drivername);
6414 ndr->depth++;
6415 if (r->drivername) {
6416 ndr_print_string(ndr, "drivername", r->drivername);
6418 ndr->depth--;
6419 ndr_print_ptr(ndr, "comment", r->comment);
6420 ndr->depth++;
6421 if (r->comment) {
6422 ndr_print_string(ndr, "comment", r->comment);
6424 ndr->depth--;
6425 ndr_print_ptr(ndr, "location", r->location);
6426 ndr->depth++;
6427 if (r->location) {
6428 ndr_print_string(ndr, "location", r->location);
6430 ndr->depth--;
6431 ndr_print_ptr(ndr, "devmode", r->devmode);
6432 ndr->depth++;
6433 if (r->devmode) {
6434 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
6436 ndr->depth--;
6437 ndr_print_ptr(ndr, "sepfile", r->sepfile);
6438 ndr->depth++;
6439 if (r->sepfile) {
6440 ndr_print_string(ndr, "sepfile", r->sepfile);
6442 ndr->depth--;
6443 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
6444 ndr->depth++;
6445 if (r->printprocessor) {
6446 ndr_print_string(ndr, "printprocessor", r->printprocessor);
6448 ndr->depth--;
6449 ndr_print_ptr(ndr, "datatype", r->datatype);
6450 ndr->depth++;
6451 if (r->datatype) {
6452 ndr_print_string(ndr, "datatype", r->datatype);
6454 ndr->depth--;
6455 ndr_print_ptr(ndr, "parameters", r->parameters);
6456 ndr->depth++;
6457 if (r->parameters) {
6458 ndr_print_string(ndr, "parameters", r->parameters);
6460 ndr->depth--;
6461 ndr_print_ptr(ndr, "secdesc", r->secdesc);
6462 ndr->depth++;
6463 if (r->secdesc) {
6464 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
6466 ndr->depth--;
6467 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
6468 ndr_print_uint32(ndr, "priority", r->priority);
6469 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
6470 ndr_print_uint32(ndr, "starttime", r->starttime);
6471 ndr_print_uint32(ndr, "untiltime", r->untiltime);
6472 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
6473 ndr_print_uint32(ndr, "cjobs", r->cjobs);
6474 ndr_print_uint32(ndr, "averageppm", r->averageppm);
6475 ndr->depth--;
6478 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo3 *r)
6480 if (ndr_flags & NDR_SCALARS) {
6481 NDR_CHECK(ndr_push_align(ndr, 4));
6482 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sec_desc_ptr));
6484 if (ndr_flags & NDR_BUFFERS) {
6486 return NDR_ERR_SUCCESS;
6489 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo3 *r)
6491 if (ndr_flags & NDR_SCALARS) {
6492 NDR_CHECK(ndr_pull_align(ndr, 4));
6493 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sec_desc_ptr));
6495 if (ndr_flags & NDR_BUFFERS) {
6497 return NDR_ERR_SUCCESS;
6500 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo3 *r)
6502 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo3");
6503 ndr->depth++;
6504 ndr_print_uint32(ndr, "sec_desc_ptr", r->sec_desc_ptr);
6505 ndr->depth--;
6508 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo4 *r)
6510 if (ndr_flags & NDR_SCALARS) {
6511 NDR_CHECK(ndr_push_align(ndr, 4));
6512 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6513 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6514 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
6516 if (ndr_flags & NDR_BUFFERS) {
6517 if (r->printername) {
6518 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6519 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6520 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6521 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6523 if (r->servername) {
6524 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6525 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6526 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6527 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6530 return NDR_ERR_SUCCESS;
6533 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo4 *r)
6535 uint32_t _ptr_printername;
6536 TALLOC_CTX *_mem_save_printername_0;
6537 uint32_t _ptr_servername;
6538 TALLOC_CTX *_mem_save_servername_0;
6539 if (ndr_flags & NDR_SCALARS) {
6540 NDR_CHECK(ndr_pull_align(ndr, 4));
6541 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6542 if (_ptr_printername) {
6543 NDR_PULL_ALLOC(ndr, r->printername);
6544 } else {
6545 r->printername = NULL;
6547 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6548 if (_ptr_servername) {
6549 NDR_PULL_ALLOC(ndr, r->servername);
6550 } else {
6551 r->servername = NULL;
6553 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
6555 if (ndr_flags & NDR_BUFFERS) {
6556 if (r->printername) {
6557 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6558 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6559 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6560 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6561 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6562 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));
6564 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6565 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
6566 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6568 if (r->servername) {
6569 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6570 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
6571 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
6572 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
6573 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
6574 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));
6576 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
6577 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
6578 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
6581 return NDR_ERR_SUCCESS;
6584 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo4 *r)
6586 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo4");
6587 ndr->depth++;
6588 ndr_print_ptr(ndr, "printername", r->printername);
6589 ndr->depth++;
6590 if (r->printername) {
6591 ndr_print_string(ndr, "printername", r->printername);
6593 ndr->depth--;
6594 ndr_print_ptr(ndr, "servername", r->servername);
6595 ndr->depth++;
6596 if (r->servername) {
6597 ndr_print_string(ndr, "servername", r->servername);
6599 ndr->depth--;
6600 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
6601 ndr->depth--;
6604 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo5 *r)
6606 if (ndr_flags & NDR_SCALARS) {
6607 NDR_CHECK(ndr_push_align(ndr, 4));
6608 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6609 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
6610 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
6611 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
6612 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
6614 if (ndr_flags & NDR_BUFFERS) {
6615 if (r->printername) {
6616 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6617 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6618 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6619 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6621 if (r->portname) {
6622 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6623 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6624 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6625 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6628 return NDR_ERR_SUCCESS;
6631 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo5 *r)
6633 uint32_t _ptr_printername;
6634 TALLOC_CTX *_mem_save_printername_0;
6635 uint32_t _ptr_portname;
6636 TALLOC_CTX *_mem_save_portname_0;
6637 if (ndr_flags & NDR_SCALARS) {
6638 NDR_CHECK(ndr_pull_align(ndr, 4));
6639 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6640 if (_ptr_printername) {
6641 NDR_PULL_ALLOC(ndr, r->printername);
6642 } else {
6643 r->printername = NULL;
6645 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
6646 if (_ptr_portname) {
6647 NDR_PULL_ALLOC(ndr, r->portname);
6648 } else {
6649 r->portname = NULL;
6651 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
6652 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
6653 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
6655 if (ndr_flags & NDR_BUFFERS) {
6656 if (r->printername) {
6657 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6658 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6659 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6660 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6661 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6662 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printername), ndr_get_array_length(ndr, &r->printername));
6664 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6665 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
6666 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6668 if (r->portname) {
6669 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
6670 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
6671 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
6672 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
6673 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
6674 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->portname), ndr_get_array_length(ndr, &r->portname));
6676 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
6677 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
6678 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
6681 return NDR_ERR_SUCCESS;
6684 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo5 *r)
6686 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo5");
6687 ndr->depth++;
6688 ndr_print_ptr(ndr, "printername", r->printername);
6689 ndr->depth++;
6690 if (r->printername) {
6691 ndr_print_string(ndr, "printername", r->printername);
6693 ndr->depth--;
6694 ndr_print_ptr(ndr, "portname", r->portname);
6695 ndr->depth++;
6696 if (r->portname) {
6697 ndr_print_string(ndr, "portname", r->portname);
6699 ndr->depth--;
6700 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
6701 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
6702 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
6703 ndr->depth--;
6706 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo6 *r)
6708 if (ndr_flags & NDR_SCALARS) {
6709 NDR_CHECK(ndr_push_align(ndr, 4));
6710 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
6712 if (ndr_flags & NDR_BUFFERS) {
6714 return NDR_ERR_SUCCESS;
6717 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo6 *r)
6719 if (ndr_flags & NDR_SCALARS) {
6720 NDR_CHECK(ndr_pull_align(ndr, 4));
6721 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
6723 if (ndr_flags & NDR_BUFFERS) {
6725 return NDR_ERR_SUCCESS;
6728 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo6 *r)
6730 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo6");
6731 ndr->depth++;
6732 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
6733 ndr->depth--;
6736 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo7 *r)
6738 if (ndr_flags & NDR_SCALARS) {
6739 NDR_CHECK(ndr_push_align(ndr, 4));
6740 NDR_CHECK(ndr_push_unique_ptr(ndr, r->guid));
6741 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
6743 if (ndr_flags & NDR_BUFFERS) {
6744 if (r->guid) {
6745 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
6746 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6747 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
6748 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->guid, ndr_charset_length(r->guid, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6751 return NDR_ERR_SUCCESS;
6754 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo7 *r)
6756 uint32_t _ptr_guid;
6757 TALLOC_CTX *_mem_save_guid_0;
6758 if (ndr_flags & NDR_SCALARS) {
6759 NDR_CHECK(ndr_pull_align(ndr, 4));
6760 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
6761 if (_ptr_guid) {
6762 NDR_PULL_ALLOC(ndr, r->guid);
6763 } else {
6764 r->guid = NULL;
6766 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
6768 if (ndr_flags & NDR_BUFFERS) {
6769 if (r->guid) {
6770 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
6771 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
6772 NDR_CHECK(ndr_pull_array_size(ndr, &r->guid));
6773 NDR_CHECK(ndr_pull_array_length(ndr, &r->guid));
6774 if (ndr_get_array_length(ndr, &r->guid) > ndr_get_array_size(ndr, &r->guid)) {
6775 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));
6777 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t)));
6778 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->guid, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t), CH_UTF16));
6779 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
6782 return NDR_ERR_SUCCESS;
6785 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo7 *r)
6787 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo7");
6788 ndr->depth++;
6789 ndr_print_ptr(ndr, "guid", r->guid);
6790 ndr->depth++;
6791 if (r->guid) {
6792 ndr_print_string(ndr, "guid", r->guid);
6794 ndr->depth--;
6795 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
6796 ndr->depth--;
6799 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetPrinterInfo *r)
6801 if (ndr_flags & NDR_SCALARS) {
6802 int level = ndr_push_get_switch_value(ndr, r);
6803 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6804 switch (level) {
6805 case 0: {
6806 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
6807 break; }
6809 case 1: {
6810 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
6811 break; }
6813 case 2: {
6814 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
6815 break; }
6817 case 3: {
6818 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
6819 break; }
6821 case 4: {
6822 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
6823 break; }
6825 case 5: {
6826 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info5));
6827 break; }
6829 case 6: {
6830 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
6831 break; }
6833 case 7: {
6834 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info7));
6835 break; }
6837 case 8: {
6838 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
6839 break; }
6841 case 9: {
6842 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info9));
6843 break; }
6845 default: {
6846 break; }
6850 if (ndr_flags & NDR_BUFFERS) {
6851 int level = ndr_push_get_switch_value(ndr, r);
6852 switch (level) {
6853 case 0:
6854 if (r->info0) {
6855 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
6857 break;
6859 case 1:
6860 if (r->info1) {
6861 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6863 break;
6865 case 2:
6866 if (r->info2) {
6867 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6869 break;
6871 case 3:
6872 if (r->info3) {
6873 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
6875 break;
6877 case 4:
6878 if (r->info4) {
6879 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6881 break;
6883 case 5:
6884 if (r->info5) {
6885 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
6887 break;
6889 case 6:
6890 if (r->info6) {
6891 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
6893 break;
6895 case 7:
6896 if (r->info7) {
6897 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
6899 break;
6901 case 8:
6902 if (r->info8) {
6903 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
6905 break;
6907 case 9:
6908 if (r->info9) {
6909 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
6911 break;
6913 default:
6914 break;
6918 return NDR_ERR_SUCCESS;
6921 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetPrinterInfo *r)
6923 int level;
6924 uint32_t _level;
6925 TALLOC_CTX *_mem_save_info0_0;
6926 TALLOC_CTX *_mem_save_info1_0;
6927 TALLOC_CTX *_mem_save_info2_0;
6928 TALLOC_CTX *_mem_save_info3_0;
6929 TALLOC_CTX *_mem_save_info4_0;
6930 TALLOC_CTX *_mem_save_info5_0;
6931 TALLOC_CTX *_mem_save_info6_0;
6932 TALLOC_CTX *_mem_save_info7_0;
6933 TALLOC_CTX *_mem_save_info8_0;
6934 TALLOC_CTX *_mem_save_info9_0;
6935 level = ndr_pull_get_switch_value(ndr, r);
6936 if (ndr_flags & NDR_SCALARS) {
6937 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6938 if (_level != level) {
6939 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
6941 switch (level) {
6942 case 0: {
6943 uint32_t _ptr_info0;
6944 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
6945 if (_ptr_info0) {
6946 NDR_PULL_ALLOC(ndr, r->info0);
6947 } else {
6948 r->info0 = NULL;
6950 break; }
6952 case 1: {
6953 uint32_t _ptr_info1;
6954 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
6955 if (_ptr_info1) {
6956 NDR_PULL_ALLOC(ndr, r->info1);
6957 } else {
6958 r->info1 = NULL;
6960 break; }
6962 case 2: {
6963 uint32_t _ptr_info2;
6964 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
6965 if (_ptr_info2) {
6966 NDR_PULL_ALLOC(ndr, r->info2);
6967 } else {
6968 r->info2 = NULL;
6970 break; }
6972 case 3: {
6973 uint32_t _ptr_info3;
6974 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
6975 if (_ptr_info3) {
6976 NDR_PULL_ALLOC(ndr, r->info3);
6977 } else {
6978 r->info3 = NULL;
6980 break; }
6982 case 4: {
6983 uint32_t _ptr_info4;
6984 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
6985 if (_ptr_info4) {
6986 NDR_PULL_ALLOC(ndr, r->info4);
6987 } else {
6988 r->info4 = NULL;
6990 break; }
6992 case 5: {
6993 uint32_t _ptr_info5;
6994 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info5));
6995 if (_ptr_info5) {
6996 NDR_PULL_ALLOC(ndr, r->info5);
6997 } else {
6998 r->info5 = NULL;
7000 break; }
7002 case 6: {
7003 uint32_t _ptr_info6;
7004 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
7005 if (_ptr_info6) {
7006 NDR_PULL_ALLOC(ndr, r->info6);
7007 } else {
7008 r->info6 = NULL;
7010 break; }
7012 case 7: {
7013 uint32_t _ptr_info7;
7014 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info7));
7015 if (_ptr_info7) {
7016 NDR_PULL_ALLOC(ndr, r->info7);
7017 } else {
7018 r->info7 = NULL;
7020 break; }
7022 case 8: {
7023 uint32_t _ptr_info8;
7024 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
7025 if (_ptr_info8) {
7026 NDR_PULL_ALLOC(ndr, r->info8);
7027 } else {
7028 r->info8 = NULL;
7030 break; }
7032 case 9: {
7033 uint32_t _ptr_info9;
7034 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info9));
7035 if (_ptr_info9) {
7036 NDR_PULL_ALLOC(ndr, r->info9);
7037 } else {
7038 r->info9 = NULL;
7040 break; }
7042 default: {
7043 break; }
7047 if (ndr_flags & NDR_BUFFERS) {
7048 switch (level) {
7049 case 0:
7050 if (r->info0) {
7051 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
7052 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
7053 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
7054 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
7056 break;
7058 case 1:
7059 if (r->info1) {
7060 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7061 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7062 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7063 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7065 break;
7067 case 2:
7068 if (r->info2) {
7069 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
7070 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
7071 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7072 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
7074 break;
7076 case 3:
7077 if (r->info3) {
7078 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
7079 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
7080 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
7081 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
7083 break;
7085 case 4:
7086 if (r->info4) {
7087 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
7088 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
7089 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
7090 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
7092 break;
7094 case 5:
7095 if (r->info5) {
7096 _mem_save_info5_0 = NDR_PULL_GET_MEM_CTX(ndr);
7097 NDR_PULL_SET_MEM_CTX(ndr, r->info5, 0);
7098 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
7099 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info5_0, 0);
7101 break;
7103 case 6:
7104 if (r->info6) {
7105 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
7106 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
7107 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
7108 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
7110 break;
7112 case 7:
7113 if (r->info7) {
7114 _mem_save_info7_0 = NDR_PULL_GET_MEM_CTX(ndr);
7115 NDR_PULL_SET_MEM_CTX(ndr, r->info7, 0);
7116 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
7117 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info7_0, 0);
7119 break;
7121 case 8:
7122 if (r->info8) {
7123 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
7124 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
7125 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
7126 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
7128 break;
7130 case 9:
7131 if (r->info9) {
7132 _mem_save_info9_0 = NDR_PULL_GET_MEM_CTX(ndr);
7133 NDR_PULL_SET_MEM_CTX(ndr, r->info9, 0);
7134 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
7135 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info9_0, 0);
7137 break;
7139 default:
7140 break;
7144 return NDR_ERR_SUCCESS;
7147 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetPrinterInfo *r)
7149 int level;
7150 level = ndr_print_get_switch_value(ndr, r);
7151 ndr_print_union(ndr, name, level, "spoolss_SetPrinterInfo");
7152 switch (level) {
7153 case 0:
7154 ndr_print_ptr(ndr, "info0", r->info0);
7155 ndr->depth++;
7156 if (r->info0) {
7157 ndr_print_spoolss_SetPrinterInfo0(ndr, "info0", r->info0);
7159 ndr->depth--;
7160 break;
7162 case 1:
7163 ndr_print_ptr(ndr, "info1", r->info1);
7164 ndr->depth++;
7165 if (r->info1) {
7166 ndr_print_spoolss_SetPrinterInfo1(ndr, "info1", r->info1);
7168 ndr->depth--;
7169 break;
7171 case 2:
7172 ndr_print_ptr(ndr, "info2", r->info2);
7173 ndr->depth++;
7174 if (r->info2) {
7175 ndr_print_spoolss_SetPrinterInfo2(ndr, "info2", r->info2);
7177 ndr->depth--;
7178 break;
7180 case 3:
7181 ndr_print_ptr(ndr, "info3", r->info3);
7182 ndr->depth++;
7183 if (r->info3) {
7184 ndr_print_spoolss_SetPrinterInfo3(ndr, "info3", r->info3);
7186 ndr->depth--;
7187 break;
7189 case 4:
7190 ndr_print_ptr(ndr, "info4", r->info4);
7191 ndr->depth++;
7192 if (r->info4) {
7193 ndr_print_spoolss_SetPrinterInfo4(ndr, "info4", r->info4);
7195 ndr->depth--;
7196 break;
7198 case 5:
7199 ndr_print_ptr(ndr, "info5", r->info5);
7200 ndr->depth++;
7201 if (r->info5) {
7202 ndr_print_spoolss_SetPrinterInfo5(ndr, "info5", r->info5);
7204 ndr->depth--;
7205 break;
7207 case 6:
7208 ndr_print_ptr(ndr, "info6", r->info6);
7209 ndr->depth++;
7210 if (r->info6) {
7211 ndr_print_spoolss_SetPrinterInfo6(ndr, "info6", r->info6);
7213 ndr->depth--;
7214 break;
7216 case 7:
7217 ndr_print_ptr(ndr, "info7", r->info7);
7218 ndr->depth++;
7219 if (r->info7) {
7220 ndr_print_spoolss_SetPrinterInfo7(ndr, "info7", r->info7);
7222 ndr->depth--;
7223 break;
7225 case 8:
7226 ndr_print_ptr(ndr, "info8", r->info8);
7227 ndr->depth++;
7228 if (r->info8) {
7229 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", r->info8);
7231 ndr->depth--;
7232 break;
7234 case 9:
7235 ndr_print_ptr(ndr, "info9", r->info9);
7236 ndr->depth++;
7237 if (r->info9) {
7238 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", r->info9);
7240 ndr->depth--;
7241 break;
7243 default:
7244 break;
7249 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfoCtr *r)
7251 if (ndr_flags & NDR_SCALARS) {
7252 NDR_CHECK(ndr_push_align(ndr, 4));
7253 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
7254 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
7255 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
7257 if (ndr_flags & NDR_BUFFERS) {
7258 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
7260 return NDR_ERR_SUCCESS;
7263 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfoCtr *r)
7265 if (ndr_flags & NDR_SCALARS) {
7266 NDR_CHECK(ndr_pull_align(ndr, 4));
7267 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
7268 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
7269 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
7271 if (ndr_flags & NDR_BUFFERS) {
7272 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
7274 return NDR_ERR_SUCCESS;
7277 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfoCtr *r)
7279 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfoCtr");
7280 ndr->depth++;
7281 ndr_print_uint32(ndr, "level", r->level);
7282 ndr_print_set_switch_value(ndr, &r->info, r->level);
7283 ndr_print_spoolss_SetPrinterInfo(ndr, "info", &r->info);
7284 ndr->depth--;
7287 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_StringArray(struct ndr_push *ndr, int ndr_flags, const struct spoolss_StringArray *r)
7289 if (ndr_flags & NDR_SCALARS) {
7290 NDR_CHECK(ndr_push_align(ndr, 4));
7291 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, (ndr_size_spoolss_StringArray(r, ndr->iconv_convenience, ndr->flags) - 4) / 2));
7293 uint32_t _flags_save_string_array = ndr->flags;
7294 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7295 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string));
7296 ndr->flags = _flags_save_string_array;
7299 if (ndr_flags & NDR_BUFFERS) {
7301 return NDR_ERR_SUCCESS;
7304 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_StringArray(struct ndr_pull *ndr, int ndr_flags, struct spoolss_StringArray *r)
7306 if (ndr_flags & NDR_SCALARS) {
7307 NDR_CHECK(ndr_pull_align(ndr, 4));
7308 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
7310 uint32_t _flags_save_string_array = ndr->flags;
7311 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7312 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string));
7313 ndr->flags = _flags_save_string_array;
7316 if (ndr_flags & NDR_BUFFERS) {
7318 return NDR_ERR_SUCCESS;
7321 _PUBLIC_ void ndr_print_spoolss_StringArray(struct ndr_print *ndr, const char *name, const struct spoolss_StringArray *r)
7323 ndr_print_struct(ndr, name, "spoolss_StringArray");
7324 ndr->depth++;
7325 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);
7326 ndr_print_string_array(ndr, "string", r->string);
7327 ndr->depth--;
7330 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo1 *r)
7332 if (ndr_flags & NDR_SCALARS) {
7333 NDR_CHECK(ndr_push_align(ndr, 4));
7334 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
7336 if (ndr_flags & NDR_BUFFERS) {
7337 if (r->driver_name) {
7338 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7339 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7340 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7341 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7344 return NDR_ERR_SUCCESS;
7347 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo1 *r)
7349 uint32_t _ptr_driver_name;
7350 TALLOC_CTX *_mem_save_driver_name_0;
7351 if (ndr_flags & NDR_SCALARS) {
7352 NDR_CHECK(ndr_pull_align(ndr, 4));
7353 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7354 if (_ptr_driver_name) {
7355 NDR_PULL_ALLOC(ndr, r->driver_name);
7356 } else {
7357 r->driver_name = NULL;
7360 if (ndr_flags & NDR_BUFFERS) {
7361 if (r->driver_name) {
7362 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7363 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7364 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
7365 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
7366 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
7367 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));
7369 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
7370 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
7371 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7374 return NDR_ERR_SUCCESS;
7377 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo1 *r)
7379 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo1");
7380 ndr->depth++;
7381 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7382 ndr->depth++;
7383 if (r->driver_name) {
7384 ndr_print_string(ndr, "driver_name", r->driver_name);
7386 ndr->depth--;
7387 ndr->depth--;
7390 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverOSVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverOSVersion r)
7392 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7393 return NDR_ERR_SUCCESS;
7396 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverOSVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverOSVersion *r)
7398 uint32_t v;
7399 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7400 *r = v;
7401 return NDR_ERR_SUCCESS;
7404 _PUBLIC_ void ndr_print_spoolss_DriverOSVersion(struct ndr_print *ndr, const char *name, enum spoolss_DriverOSVersion r)
7406 const char *val = NULL;
7408 switch (r) {
7409 case SPOOLSS_DRIVER_VERSION_9X: val = "SPOOLSS_DRIVER_VERSION_9X"; break;
7410 case SPOOLSS_DRIVER_VERSION_NT35: val = "SPOOLSS_DRIVER_VERSION_NT35"; break;
7411 case SPOOLSS_DRIVER_VERSION_NT4: val = "SPOOLSS_DRIVER_VERSION_NT4"; break;
7412 case SPOOLSS_DRIVER_VERSION_200X: val = "SPOOLSS_DRIVER_VERSION_200X"; break;
7414 ndr_print_enum(ndr, name, "ENUM", val, r);
7417 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo2 *r)
7419 if (ndr_flags & NDR_SCALARS) {
7420 NDR_CHECK(ndr_push_align(ndr, 4));
7421 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7422 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
7423 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
7424 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
7425 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
7426 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
7428 if (ndr_flags & NDR_BUFFERS) {
7429 if (r->driver_name) {
7430 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7431 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7432 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7433 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7435 if (r->architecture) {
7436 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
7437 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7438 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
7439 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7441 if (r->driver_path) {
7442 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
7443 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7444 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
7445 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7447 if (r->data_file) {
7448 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
7449 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7450 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
7451 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7453 if (r->config_file) {
7454 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
7455 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7456 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
7457 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7460 return NDR_ERR_SUCCESS;
7463 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo2 *r)
7465 uint32_t _ptr_driver_name;
7466 TALLOC_CTX *_mem_save_driver_name_0;
7467 uint32_t _ptr_architecture;
7468 TALLOC_CTX *_mem_save_architecture_0;
7469 uint32_t _ptr_driver_path;
7470 TALLOC_CTX *_mem_save_driver_path_0;
7471 uint32_t _ptr_data_file;
7472 TALLOC_CTX *_mem_save_data_file_0;
7473 uint32_t _ptr_config_file;
7474 TALLOC_CTX *_mem_save_config_file_0;
7475 if (ndr_flags & NDR_SCALARS) {
7476 NDR_CHECK(ndr_pull_align(ndr, 4));
7477 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
7478 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7479 if (_ptr_driver_name) {
7480 NDR_PULL_ALLOC(ndr, r->driver_name);
7481 } else {
7482 r->driver_name = NULL;
7484 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
7485 if (_ptr_architecture) {
7486 NDR_PULL_ALLOC(ndr, r->architecture);
7487 } else {
7488 r->architecture = NULL;
7490 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
7491 if (_ptr_driver_path) {
7492 NDR_PULL_ALLOC(ndr, r->driver_path);
7493 } else {
7494 r->driver_path = NULL;
7496 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
7497 if (_ptr_data_file) {
7498 NDR_PULL_ALLOC(ndr, r->data_file);
7499 } else {
7500 r->data_file = NULL;
7502 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
7503 if (_ptr_config_file) {
7504 NDR_PULL_ALLOC(ndr, r->config_file);
7505 } else {
7506 r->config_file = NULL;
7509 if (ndr_flags & NDR_BUFFERS) {
7510 if (r->driver_name) {
7511 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7512 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7513 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
7514 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
7515 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
7516 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));
7518 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
7519 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
7520 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7522 if (r->architecture) {
7523 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
7524 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
7525 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
7526 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
7527 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
7528 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));
7530 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
7531 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
7532 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
7534 if (r->driver_path) {
7535 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
7536 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
7537 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
7538 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
7539 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
7540 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));
7542 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
7543 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
7544 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
7546 if (r->data_file) {
7547 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7548 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
7549 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
7550 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
7551 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
7552 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));
7554 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
7555 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
7556 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
7558 if (r->config_file) {
7559 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7560 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
7561 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
7562 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
7563 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
7564 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));
7566 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
7567 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
7568 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
7571 return NDR_ERR_SUCCESS;
7574 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo2 *r)
7576 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo2");
7577 ndr->depth++;
7578 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
7579 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7580 ndr->depth++;
7581 if (r->driver_name) {
7582 ndr_print_string(ndr, "driver_name", r->driver_name);
7584 ndr->depth--;
7585 ndr_print_ptr(ndr, "architecture", r->architecture);
7586 ndr->depth++;
7587 if (r->architecture) {
7588 ndr_print_string(ndr, "architecture", r->architecture);
7590 ndr->depth--;
7591 ndr_print_ptr(ndr, "driver_path", r->driver_path);
7592 ndr->depth++;
7593 if (r->driver_path) {
7594 ndr_print_string(ndr, "driver_path", r->driver_path);
7596 ndr->depth--;
7597 ndr_print_ptr(ndr, "data_file", r->data_file);
7598 ndr->depth++;
7599 if (r->data_file) {
7600 ndr_print_string(ndr, "data_file", r->data_file);
7602 ndr->depth--;
7603 ndr_print_ptr(ndr, "config_file", r->config_file);
7604 ndr->depth++;
7605 if (r->config_file) {
7606 ndr_print_string(ndr, "config_file", r->config_file);
7608 ndr->depth--;
7609 ndr->depth--;
7612 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo3 *r)
7614 if (ndr_flags & NDR_SCALARS) {
7615 NDR_CHECK(ndr_push_align(ndr, 4));
7616 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7617 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
7618 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
7619 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
7620 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
7621 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
7622 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
7623 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
7624 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
7625 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
7626 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
7628 if (ndr_flags & NDR_BUFFERS) {
7629 if (r->driver_name) {
7630 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7631 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7632 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7633 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7635 if (r->architecture) {
7636 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
7637 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7638 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
7639 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7641 if (r->driver_path) {
7642 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
7643 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7644 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
7645 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7647 if (r->data_file) {
7648 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
7649 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7650 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
7651 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7653 if (r->config_file) {
7654 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
7655 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7656 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
7657 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7659 if (r->help_file) {
7660 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
7661 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7662 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
7663 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7665 if (r->monitor_name) {
7666 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
7667 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7668 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
7669 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7671 if (r->default_datatype) {
7672 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
7673 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7674 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
7675 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7677 if (r->dependent_files) {
7678 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
7681 return NDR_ERR_SUCCESS;
7684 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo3 *r)
7686 uint32_t _ptr_driver_name;
7687 TALLOC_CTX *_mem_save_driver_name_0;
7688 uint32_t _ptr_architecture;
7689 TALLOC_CTX *_mem_save_architecture_0;
7690 uint32_t _ptr_driver_path;
7691 TALLOC_CTX *_mem_save_driver_path_0;
7692 uint32_t _ptr_data_file;
7693 TALLOC_CTX *_mem_save_data_file_0;
7694 uint32_t _ptr_config_file;
7695 TALLOC_CTX *_mem_save_config_file_0;
7696 uint32_t _ptr_help_file;
7697 TALLOC_CTX *_mem_save_help_file_0;
7698 uint32_t _ptr_monitor_name;
7699 TALLOC_CTX *_mem_save_monitor_name_0;
7700 uint32_t _ptr_default_datatype;
7701 TALLOC_CTX *_mem_save_default_datatype_0;
7702 uint32_t _ptr_dependent_files;
7703 TALLOC_CTX *_mem_save_dependent_files_0;
7704 if (ndr_flags & NDR_SCALARS) {
7705 NDR_CHECK(ndr_pull_align(ndr, 4));
7706 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
7707 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7708 if (_ptr_driver_name) {
7709 NDR_PULL_ALLOC(ndr, r->driver_name);
7710 } else {
7711 r->driver_name = NULL;
7713 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
7714 if (_ptr_architecture) {
7715 NDR_PULL_ALLOC(ndr, r->architecture);
7716 } else {
7717 r->architecture = NULL;
7719 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
7720 if (_ptr_driver_path) {
7721 NDR_PULL_ALLOC(ndr, r->driver_path);
7722 } else {
7723 r->driver_path = NULL;
7725 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
7726 if (_ptr_data_file) {
7727 NDR_PULL_ALLOC(ndr, r->data_file);
7728 } else {
7729 r->data_file = NULL;
7731 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
7732 if (_ptr_config_file) {
7733 NDR_PULL_ALLOC(ndr, r->config_file);
7734 } else {
7735 r->config_file = NULL;
7737 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
7738 if (_ptr_help_file) {
7739 NDR_PULL_ALLOC(ndr, r->help_file);
7740 } else {
7741 r->help_file = NULL;
7743 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
7744 if (_ptr_monitor_name) {
7745 NDR_PULL_ALLOC(ndr, r->monitor_name);
7746 } else {
7747 r->monitor_name = NULL;
7749 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
7750 if (_ptr_default_datatype) {
7751 NDR_PULL_ALLOC(ndr, r->default_datatype);
7752 } else {
7753 r->default_datatype = NULL;
7755 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
7756 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
7757 if (_ptr_dependent_files) {
7758 NDR_PULL_ALLOC(ndr, r->dependent_files);
7759 } else {
7760 r->dependent_files = NULL;
7763 if (ndr_flags & NDR_BUFFERS) {
7764 if (r->driver_name) {
7765 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7766 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7767 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
7768 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
7769 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
7770 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));
7772 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
7773 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
7774 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7776 if (r->architecture) {
7777 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
7778 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
7779 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
7780 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
7781 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
7782 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));
7784 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
7785 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
7786 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
7788 if (r->driver_path) {
7789 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
7790 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
7791 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
7792 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
7793 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
7794 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));
7796 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
7797 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
7798 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
7800 if (r->data_file) {
7801 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7802 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
7803 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
7804 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
7805 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
7806 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));
7808 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
7809 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
7810 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
7812 if (r->config_file) {
7813 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7814 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
7815 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
7816 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
7817 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
7818 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));
7820 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
7821 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
7822 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
7824 if (r->help_file) {
7825 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7826 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
7827 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
7828 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
7829 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
7830 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));
7832 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
7833 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
7834 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
7836 if (r->monitor_name) {
7837 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7838 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
7839 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
7840 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
7841 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
7842 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));
7844 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
7845 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
7846 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
7848 if (r->default_datatype) {
7849 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
7850 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
7851 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
7852 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
7853 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
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->default_datatype), ndr_get_array_length(ndr, &r->default_datatype));
7856 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
7857 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
7858 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
7860 if (r->dependent_files) {
7861 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
7862 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
7863 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
7864 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
7867 return NDR_ERR_SUCCESS;
7870 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo3 *r)
7872 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo3");
7873 ndr->depth++;
7874 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
7875 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7876 ndr->depth++;
7877 if (r->driver_name) {
7878 ndr_print_string(ndr, "driver_name", r->driver_name);
7880 ndr->depth--;
7881 ndr_print_ptr(ndr, "architecture", r->architecture);
7882 ndr->depth++;
7883 if (r->architecture) {
7884 ndr_print_string(ndr, "architecture", r->architecture);
7886 ndr->depth--;
7887 ndr_print_ptr(ndr, "driver_path", r->driver_path);
7888 ndr->depth++;
7889 if (r->driver_path) {
7890 ndr_print_string(ndr, "driver_path", r->driver_path);
7892 ndr->depth--;
7893 ndr_print_ptr(ndr, "data_file", r->data_file);
7894 ndr->depth++;
7895 if (r->data_file) {
7896 ndr_print_string(ndr, "data_file", r->data_file);
7898 ndr->depth--;
7899 ndr_print_ptr(ndr, "config_file", r->config_file);
7900 ndr->depth++;
7901 if (r->config_file) {
7902 ndr_print_string(ndr, "config_file", r->config_file);
7904 ndr->depth--;
7905 ndr_print_ptr(ndr, "help_file", r->help_file);
7906 ndr->depth++;
7907 if (r->help_file) {
7908 ndr_print_string(ndr, "help_file", r->help_file);
7910 ndr->depth--;
7911 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
7912 ndr->depth++;
7913 if (r->monitor_name) {
7914 ndr_print_string(ndr, "monitor_name", r->monitor_name);
7916 ndr->depth--;
7917 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
7918 ndr->depth++;
7919 if (r->default_datatype) {
7920 ndr_print_string(ndr, "default_datatype", r->default_datatype);
7922 ndr->depth--;
7923 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);
7924 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
7925 ndr->depth++;
7926 if (r->dependent_files) {
7927 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
7929 ndr->depth--;
7930 ndr->depth--;
7933 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo4 *r)
7935 if (ndr_flags & NDR_SCALARS) {
7936 NDR_CHECK(ndr_push_align(ndr, 4));
7937 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7938 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
7939 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
7940 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
7941 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
7942 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
7943 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
7944 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
7945 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
7946 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
7947 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
7948 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
7949 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
7951 if (ndr_flags & NDR_BUFFERS) {
7952 if (r->driver_name) {
7953 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7954 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7955 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7956 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7958 if (r->architecture) {
7959 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
7960 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7961 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
7962 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7964 if (r->driver_path) {
7965 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
7966 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7967 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
7968 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7970 if (r->data_file) {
7971 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
7972 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7973 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
7974 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7976 if (r->config_file) {
7977 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
7978 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7979 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
7980 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7982 if (r->help_file) {
7983 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
7984 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7985 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
7986 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7988 if (r->monitor_name) {
7989 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
7990 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7991 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
7992 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7994 if (r->default_datatype) {
7995 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
7996 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7997 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
7998 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8000 if (r->dependent_files) {
8001 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8003 if (r->previous_names) {
8004 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8007 return NDR_ERR_SUCCESS;
8010 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo4 *r)
8012 uint32_t _ptr_driver_name;
8013 TALLOC_CTX *_mem_save_driver_name_0;
8014 uint32_t _ptr_architecture;
8015 TALLOC_CTX *_mem_save_architecture_0;
8016 uint32_t _ptr_driver_path;
8017 TALLOC_CTX *_mem_save_driver_path_0;
8018 uint32_t _ptr_data_file;
8019 TALLOC_CTX *_mem_save_data_file_0;
8020 uint32_t _ptr_config_file;
8021 TALLOC_CTX *_mem_save_config_file_0;
8022 uint32_t _ptr_help_file;
8023 TALLOC_CTX *_mem_save_help_file_0;
8024 uint32_t _ptr_monitor_name;
8025 TALLOC_CTX *_mem_save_monitor_name_0;
8026 uint32_t _ptr_default_datatype;
8027 TALLOC_CTX *_mem_save_default_datatype_0;
8028 uint32_t _ptr_dependent_files;
8029 TALLOC_CTX *_mem_save_dependent_files_0;
8030 uint32_t _ptr_previous_names;
8031 TALLOC_CTX *_mem_save_previous_names_0;
8032 if (ndr_flags & NDR_SCALARS) {
8033 NDR_CHECK(ndr_pull_align(ndr, 4));
8034 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8035 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8036 if (_ptr_driver_name) {
8037 NDR_PULL_ALLOC(ndr, r->driver_name);
8038 } else {
8039 r->driver_name = NULL;
8041 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8042 if (_ptr_architecture) {
8043 NDR_PULL_ALLOC(ndr, r->architecture);
8044 } else {
8045 r->architecture = NULL;
8047 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8048 if (_ptr_driver_path) {
8049 NDR_PULL_ALLOC(ndr, r->driver_path);
8050 } else {
8051 r->driver_path = NULL;
8053 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8054 if (_ptr_data_file) {
8055 NDR_PULL_ALLOC(ndr, r->data_file);
8056 } else {
8057 r->data_file = NULL;
8059 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8060 if (_ptr_config_file) {
8061 NDR_PULL_ALLOC(ndr, r->config_file);
8062 } else {
8063 r->config_file = NULL;
8065 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8066 if (_ptr_help_file) {
8067 NDR_PULL_ALLOC(ndr, r->help_file);
8068 } else {
8069 r->help_file = NULL;
8071 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8072 if (_ptr_monitor_name) {
8073 NDR_PULL_ALLOC(ndr, r->monitor_name);
8074 } else {
8075 r->monitor_name = NULL;
8077 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8078 if (_ptr_default_datatype) {
8079 NDR_PULL_ALLOC(ndr, r->default_datatype);
8080 } else {
8081 r->default_datatype = NULL;
8083 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8084 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8085 if (_ptr_dependent_files) {
8086 NDR_PULL_ALLOC(ndr, r->dependent_files);
8087 } else {
8088 r->dependent_files = NULL;
8090 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
8091 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
8092 if (_ptr_previous_names) {
8093 NDR_PULL_ALLOC(ndr, r->previous_names);
8094 } else {
8095 r->previous_names = NULL;
8098 if (ndr_flags & NDR_BUFFERS) {
8099 if (r->driver_name) {
8100 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8101 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8102 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8103 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8104 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8105 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));
8107 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8108 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8109 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8111 if (r->architecture) {
8112 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8113 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8114 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8115 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8116 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8117 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));
8119 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8120 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8121 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8123 if (r->driver_path) {
8124 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8125 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8126 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8127 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8128 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8129 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));
8131 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8132 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8133 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8135 if (r->data_file) {
8136 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8137 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8138 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8139 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8140 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8141 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));
8143 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8144 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8145 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8147 if (r->config_file) {
8148 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8149 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8150 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8151 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8152 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8153 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));
8155 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8156 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8157 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8159 if (r->help_file) {
8160 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8161 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8162 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8163 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8164 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8165 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));
8167 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8168 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
8169 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8171 if (r->monitor_name) {
8172 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8173 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8174 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8175 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8176 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8177 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));
8179 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8180 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
8181 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8183 if (r->default_datatype) {
8184 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8185 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8186 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
8187 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
8188 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
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->default_datatype), ndr_get_array_length(ndr, &r->default_datatype));
8191 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
8192 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
8193 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8195 if (r->dependent_files) {
8196 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8197 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8198 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8199 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8201 if (r->previous_names) {
8202 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
8203 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
8204 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8205 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
8208 return NDR_ERR_SUCCESS;
8211 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo4 *r)
8213 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo4");
8214 ndr->depth++;
8215 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8216 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8217 ndr->depth++;
8218 if (r->driver_name) {
8219 ndr_print_string(ndr, "driver_name", r->driver_name);
8221 ndr->depth--;
8222 ndr_print_ptr(ndr, "architecture", r->architecture);
8223 ndr->depth++;
8224 if (r->architecture) {
8225 ndr_print_string(ndr, "architecture", r->architecture);
8227 ndr->depth--;
8228 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8229 ndr->depth++;
8230 if (r->driver_path) {
8231 ndr_print_string(ndr, "driver_path", r->driver_path);
8233 ndr->depth--;
8234 ndr_print_ptr(ndr, "data_file", r->data_file);
8235 ndr->depth++;
8236 if (r->data_file) {
8237 ndr_print_string(ndr, "data_file", r->data_file);
8239 ndr->depth--;
8240 ndr_print_ptr(ndr, "config_file", r->config_file);
8241 ndr->depth++;
8242 if (r->config_file) {
8243 ndr_print_string(ndr, "config_file", r->config_file);
8245 ndr->depth--;
8246 ndr_print_ptr(ndr, "help_file", r->help_file);
8247 ndr->depth++;
8248 if (r->help_file) {
8249 ndr_print_string(ndr, "help_file", r->help_file);
8251 ndr->depth--;
8252 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8253 ndr->depth++;
8254 if (r->monitor_name) {
8255 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8257 ndr->depth--;
8258 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8259 ndr->depth++;
8260 if (r->default_datatype) {
8261 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8263 ndr->depth--;
8264 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);
8265 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8266 ndr->depth++;
8267 if (r->dependent_files) {
8268 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
8270 ndr->depth--;
8271 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);
8272 ndr_print_ptr(ndr, "previous_names", r->previous_names);
8273 ndr->depth++;
8274 if (r->previous_names) {
8275 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
8277 ndr->depth--;
8278 ndr->depth--;
8281 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo6 *r)
8283 if (ndr_flags & NDR_SCALARS) {
8284 NDR_CHECK(ndr_push_align(ndr, 8));
8285 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8286 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8287 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8288 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8289 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8290 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8291 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8292 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8293 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8294 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8295 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8296 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8297 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
8298 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
8299 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
8300 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
8301 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
8302 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
8303 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
8305 if (ndr_flags & NDR_BUFFERS) {
8306 if (r->driver_name) {
8307 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8308 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8309 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8310 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8312 if (r->architecture) {
8313 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8314 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8315 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8316 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8318 if (r->driver_path) {
8319 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8320 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8321 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8322 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8324 if (r->data_file) {
8325 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8326 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8327 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8328 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8330 if (r->config_file) {
8331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8332 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8333 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8334 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8336 if (r->help_file) {
8337 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8338 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8339 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8340 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8342 if (r->monitor_name) {
8343 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8344 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8345 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8346 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8348 if (r->default_datatype) {
8349 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8350 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8351 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8352 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8354 if (r->dependent_files) {
8355 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8357 if (r->previous_names) {
8358 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8360 if (r->manufacturer_name) {
8361 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
8362 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8363 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
8364 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8366 if (r->manufacturer_url) {
8367 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
8368 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8369 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
8370 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8372 if (r->hardware_id) {
8373 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
8374 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8375 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
8376 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8378 if (r->provider) {
8379 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
8380 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8381 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
8382 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8385 return NDR_ERR_SUCCESS;
8388 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo6 *r)
8390 uint32_t _ptr_driver_name;
8391 TALLOC_CTX *_mem_save_driver_name_0;
8392 uint32_t _ptr_architecture;
8393 TALLOC_CTX *_mem_save_architecture_0;
8394 uint32_t _ptr_driver_path;
8395 TALLOC_CTX *_mem_save_driver_path_0;
8396 uint32_t _ptr_data_file;
8397 TALLOC_CTX *_mem_save_data_file_0;
8398 uint32_t _ptr_config_file;
8399 TALLOC_CTX *_mem_save_config_file_0;
8400 uint32_t _ptr_help_file;
8401 TALLOC_CTX *_mem_save_help_file_0;
8402 uint32_t _ptr_monitor_name;
8403 TALLOC_CTX *_mem_save_monitor_name_0;
8404 uint32_t _ptr_default_datatype;
8405 TALLOC_CTX *_mem_save_default_datatype_0;
8406 uint32_t _ptr_dependent_files;
8407 TALLOC_CTX *_mem_save_dependent_files_0;
8408 uint32_t _ptr_previous_names;
8409 TALLOC_CTX *_mem_save_previous_names_0;
8410 uint32_t _ptr_manufacturer_name;
8411 TALLOC_CTX *_mem_save_manufacturer_name_0;
8412 uint32_t _ptr_manufacturer_url;
8413 TALLOC_CTX *_mem_save_manufacturer_url_0;
8414 uint32_t _ptr_hardware_id;
8415 TALLOC_CTX *_mem_save_hardware_id_0;
8416 uint32_t _ptr_provider;
8417 TALLOC_CTX *_mem_save_provider_0;
8418 if (ndr_flags & NDR_SCALARS) {
8419 NDR_CHECK(ndr_pull_align(ndr, 8));
8420 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8421 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8422 if (_ptr_driver_name) {
8423 NDR_PULL_ALLOC(ndr, r->driver_name);
8424 } else {
8425 r->driver_name = NULL;
8427 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8428 if (_ptr_architecture) {
8429 NDR_PULL_ALLOC(ndr, r->architecture);
8430 } else {
8431 r->architecture = NULL;
8433 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8434 if (_ptr_driver_path) {
8435 NDR_PULL_ALLOC(ndr, r->driver_path);
8436 } else {
8437 r->driver_path = NULL;
8439 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8440 if (_ptr_data_file) {
8441 NDR_PULL_ALLOC(ndr, r->data_file);
8442 } else {
8443 r->data_file = NULL;
8445 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8446 if (_ptr_config_file) {
8447 NDR_PULL_ALLOC(ndr, r->config_file);
8448 } else {
8449 r->config_file = NULL;
8451 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8452 if (_ptr_help_file) {
8453 NDR_PULL_ALLOC(ndr, r->help_file);
8454 } else {
8455 r->help_file = NULL;
8457 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8458 if (_ptr_monitor_name) {
8459 NDR_PULL_ALLOC(ndr, r->monitor_name);
8460 } else {
8461 r->monitor_name = NULL;
8463 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8464 if (_ptr_default_datatype) {
8465 NDR_PULL_ALLOC(ndr, r->default_datatype);
8466 } else {
8467 r->default_datatype = NULL;
8469 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8470 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8471 if (_ptr_dependent_files) {
8472 NDR_PULL_ALLOC(ndr, r->dependent_files);
8473 } else {
8474 r->dependent_files = NULL;
8476 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
8477 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
8478 if (_ptr_previous_names) {
8479 NDR_PULL_ALLOC(ndr, r->previous_names);
8480 } else {
8481 r->previous_names = NULL;
8483 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
8484 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
8485 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
8486 if (_ptr_manufacturer_name) {
8487 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
8488 } else {
8489 r->manufacturer_name = NULL;
8491 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
8492 if (_ptr_manufacturer_url) {
8493 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
8494 } else {
8495 r->manufacturer_url = NULL;
8497 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
8498 if (_ptr_hardware_id) {
8499 NDR_PULL_ALLOC(ndr, r->hardware_id);
8500 } else {
8501 r->hardware_id = NULL;
8503 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
8504 if (_ptr_provider) {
8505 NDR_PULL_ALLOC(ndr, r->provider);
8506 } else {
8507 r->provider = NULL;
8510 if (ndr_flags & NDR_BUFFERS) {
8511 if (r->driver_name) {
8512 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8513 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8514 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8515 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8516 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8517 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));
8519 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8520 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8521 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8523 if (r->architecture) {
8524 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8525 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8526 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8527 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8528 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8529 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));
8531 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8532 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8533 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8535 if (r->driver_path) {
8536 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8537 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8538 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8539 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8540 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8541 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));
8543 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8544 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8545 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8547 if (r->data_file) {
8548 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8549 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8550 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8551 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8552 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8553 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));
8555 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8556 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8557 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8559 if (r->config_file) {
8560 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8561 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8562 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8563 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8564 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8565 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));
8567 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8568 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8569 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8571 if (r->help_file) {
8572 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8573 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8574 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8575 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8576 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8577 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));
8579 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8580 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
8581 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8583 if (r->monitor_name) {
8584 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8585 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8586 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8587 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8588 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8589 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));
8591 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8592 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
8593 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8595 if (r->default_datatype) {
8596 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8597 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8598 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
8599 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
8600 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
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->default_datatype), ndr_get_array_length(ndr, &r->default_datatype));
8603 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
8604 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
8605 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8607 if (r->dependent_files) {
8608 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8609 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8610 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8611 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8613 if (r->previous_names) {
8614 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
8615 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
8616 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8617 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
8619 if (r->manufacturer_name) {
8620 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8621 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
8622 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
8623 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
8624 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
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->manufacturer_name), ndr_get_array_length(ndr, &r->manufacturer_name));
8627 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
8628 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
8629 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
8631 if (r->manufacturer_url) {
8632 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
8633 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
8634 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
8635 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
8636 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
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->manufacturer_url), ndr_get_array_length(ndr, &r->manufacturer_url));
8639 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
8640 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
8641 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
8643 if (r->hardware_id) {
8644 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
8645 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
8646 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
8647 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
8648 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
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->hardware_id), ndr_get_array_length(ndr, &r->hardware_id));
8651 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
8652 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
8653 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
8655 if (r->provider) {
8656 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
8657 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
8658 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
8659 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
8660 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
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->provider), ndr_get_array_length(ndr, &r->provider));
8663 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
8664 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
8665 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
8668 return NDR_ERR_SUCCESS;
8671 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo6 *r)
8673 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo6");
8674 ndr->depth++;
8675 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8676 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8677 ndr->depth++;
8678 if (r->driver_name) {
8679 ndr_print_string(ndr, "driver_name", r->driver_name);
8681 ndr->depth--;
8682 ndr_print_ptr(ndr, "architecture", r->architecture);
8683 ndr->depth++;
8684 if (r->architecture) {
8685 ndr_print_string(ndr, "architecture", r->architecture);
8687 ndr->depth--;
8688 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8689 ndr->depth++;
8690 if (r->driver_path) {
8691 ndr_print_string(ndr, "driver_path", r->driver_path);
8693 ndr->depth--;
8694 ndr_print_ptr(ndr, "data_file", r->data_file);
8695 ndr->depth++;
8696 if (r->data_file) {
8697 ndr_print_string(ndr, "data_file", r->data_file);
8699 ndr->depth--;
8700 ndr_print_ptr(ndr, "config_file", r->config_file);
8701 ndr->depth++;
8702 if (r->config_file) {
8703 ndr_print_string(ndr, "config_file", r->config_file);
8705 ndr->depth--;
8706 ndr_print_ptr(ndr, "help_file", r->help_file);
8707 ndr->depth++;
8708 if (r->help_file) {
8709 ndr_print_string(ndr, "help_file", r->help_file);
8711 ndr->depth--;
8712 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8713 ndr->depth++;
8714 if (r->monitor_name) {
8715 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8717 ndr->depth--;
8718 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8719 ndr->depth++;
8720 if (r->default_datatype) {
8721 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8723 ndr->depth--;
8724 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);
8725 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8726 ndr->depth++;
8727 if (r->dependent_files) {
8728 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
8730 ndr->depth--;
8731 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);
8732 ndr_print_ptr(ndr, "previous_names", r->previous_names);
8733 ndr->depth++;
8734 if (r->previous_names) {
8735 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
8737 ndr->depth--;
8738 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
8739 ndr_print_hyper(ndr, "driver_version", r->driver_version);
8740 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
8741 ndr->depth++;
8742 if (r->manufacturer_name) {
8743 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
8745 ndr->depth--;
8746 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
8747 ndr->depth++;
8748 if (r->manufacturer_url) {
8749 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
8751 ndr->depth--;
8752 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
8753 ndr->depth++;
8754 if (r->hardware_id) {
8755 ndr_print_string(ndr, "hardware_id", r->hardware_id);
8757 ndr->depth--;
8758 ndr_print_ptr(ndr, "provider", r->provider);
8759 ndr->depth++;
8760 if (r->provider) {
8761 ndr_print_string(ndr, "provider", r->provider);
8763 ndr->depth--;
8764 ndr->depth--;
8767 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo8 *r)
8769 if (ndr_flags & NDR_SCALARS) {
8770 NDR_CHECK(ndr_push_align(ndr, 8));
8771 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8772 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8773 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8774 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8775 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8776 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8777 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8778 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8779 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8780 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8781 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8782 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8783 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
8784 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
8785 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
8786 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
8787 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
8788 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
8789 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
8790 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
8791 NDR_CHECK(ndr_push_unique_ptr(ndr, r->vendor_setup));
8792 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->color_profiles, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8793 NDR_CHECK(ndr_push_unique_ptr(ndr, r->color_profiles));
8794 NDR_CHECK(ndr_push_unique_ptr(ndr, r->inf_path));
8795 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
8796 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8797 NDR_CHECK(ndr_push_unique_ptr(ndr, r->core_driver_dependencies));
8798 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
8799 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
8801 if (ndr_flags & NDR_BUFFERS) {
8802 if (r->driver_name) {
8803 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8804 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8805 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8806 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8808 if (r->architecture) {
8809 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8810 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8811 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8812 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8814 if (r->driver_path) {
8815 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8816 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8817 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8818 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8820 if (r->data_file) {
8821 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8822 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8823 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8824 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8826 if (r->config_file) {
8827 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8828 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8829 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8830 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8832 if (r->help_file) {
8833 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8834 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8835 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8836 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8838 if (r->monitor_name) {
8839 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8840 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8841 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8842 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8844 if (r->default_datatype) {
8845 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8846 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8847 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8848 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8850 if (r->dependent_files) {
8851 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8853 if (r->previous_names) {
8854 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8856 if (r->manufacturer_name) {
8857 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
8858 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8859 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
8860 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8862 if (r->manufacturer_url) {
8863 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
8864 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8865 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
8866 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8868 if (r->hardware_id) {
8869 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
8870 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8871 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
8872 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8874 if (r->provider) {
8875 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
8876 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8877 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
8878 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8880 if (r->print_processor) {
8881 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
8882 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8883 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
8884 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8886 if (r->vendor_setup) {
8887 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, 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->vendor_setup, CH_UTF16)));
8890 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->vendor_setup, ndr_charset_length(r->vendor_setup, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8892 if (r->color_profiles) {
8893 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
8895 if (r->inf_path) {
8896 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
8897 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8898 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
8899 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->inf_path, ndr_charset_length(r->inf_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8901 if (r->core_driver_dependencies) {
8902 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
8905 return NDR_ERR_SUCCESS;
8908 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo8 *r)
8910 uint32_t _ptr_driver_name;
8911 TALLOC_CTX *_mem_save_driver_name_0;
8912 uint32_t _ptr_architecture;
8913 TALLOC_CTX *_mem_save_architecture_0;
8914 uint32_t _ptr_driver_path;
8915 TALLOC_CTX *_mem_save_driver_path_0;
8916 uint32_t _ptr_data_file;
8917 TALLOC_CTX *_mem_save_data_file_0;
8918 uint32_t _ptr_config_file;
8919 TALLOC_CTX *_mem_save_config_file_0;
8920 uint32_t _ptr_help_file;
8921 TALLOC_CTX *_mem_save_help_file_0;
8922 uint32_t _ptr_monitor_name;
8923 TALLOC_CTX *_mem_save_monitor_name_0;
8924 uint32_t _ptr_default_datatype;
8925 TALLOC_CTX *_mem_save_default_datatype_0;
8926 uint32_t _ptr_dependent_files;
8927 TALLOC_CTX *_mem_save_dependent_files_0;
8928 uint32_t _ptr_previous_names;
8929 TALLOC_CTX *_mem_save_previous_names_0;
8930 uint32_t _ptr_manufacturer_name;
8931 TALLOC_CTX *_mem_save_manufacturer_name_0;
8932 uint32_t _ptr_manufacturer_url;
8933 TALLOC_CTX *_mem_save_manufacturer_url_0;
8934 uint32_t _ptr_hardware_id;
8935 TALLOC_CTX *_mem_save_hardware_id_0;
8936 uint32_t _ptr_provider;
8937 TALLOC_CTX *_mem_save_provider_0;
8938 uint32_t _ptr_print_processor;
8939 TALLOC_CTX *_mem_save_print_processor_0;
8940 uint32_t _ptr_vendor_setup;
8941 TALLOC_CTX *_mem_save_vendor_setup_0;
8942 uint32_t _ptr_color_profiles;
8943 TALLOC_CTX *_mem_save_color_profiles_0;
8944 uint32_t _ptr_inf_path;
8945 TALLOC_CTX *_mem_save_inf_path_0;
8946 uint32_t _ptr_core_driver_dependencies;
8947 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
8948 if (ndr_flags & NDR_SCALARS) {
8949 NDR_CHECK(ndr_pull_align(ndr, 8));
8950 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8951 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8952 if (_ptr_driver_name) {
8953 NDR_PULL_ALLOC(ndr, r->driver_name);
8954 } else {
8955 r->driver_name = NULL;
8957 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8958 if (_ptr_architecture) {
8959 NDR_PULL_ALLOC(ndr, r->architecture);
8960 } else {
8961 r->architecture = NULL;
8963 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8964 if (_ptr_driver_path) {
8965 NDR_PULL_ALLOC(ndr, r->driver_path);
8966 } else {
8967 r->driver_path = NULL;
8969 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8970 if (_ptr_data_file) {
8971 NDR_PULL_ALLOC(ndr, r->data_file);
8972 } else {
8973 r->data_file = NULL;
8975 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8976 if (_ptr_config_file) {
8977 NDR_PULL_ALLOC(ndr, r->config_file);
8978 } else {
8979 r->config_file = NULL;
8981 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8982 if (_ptr_help_file) {
8983 NDR_PULL_ALLOC(ndr, r->help_file);
8984 } else {
8985 r->help_file = NULL;
8987 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8988 if (_ptr_monitor_name) {
8989 NDR_PULL_ALLOC(ndr, r->monitor_name);
8990 } else {
8991 r->monitor_name = NULL;
8993 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8994 if (_ptr_default_datatype) {
8995 NDR_PULL_ALLOC(ndr, r->default_datatype);
8996 } else {
8997 r->default_datatype = NULL;
8999 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9000 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9001 if (_ptr_dependent_files) {
9002 NDR_PULL_ALLOC(ndr, r->dependent_files);
9003 } else {
9004 r->dependent_files = NULL;
9006 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
9007 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9008 if (_ptr_previous_names) {
9009 NDR_PULL_ALLOC(ndr, r->previous_names);
9010 } else {
9011 r->previous_names = NULL;
9013 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
9014 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9015 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9016 if (_ptr_manufacturer_name) {
9017 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9018 } else {
9019 r->manufacturer_name = NULL;
9021 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9022 if (_ptr_manufacturer_url) {
9023 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9024 } else {
9025 r->manufacturer_url = NULL;
9027 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9028 if (_ptr_hardware_id) {
9029 NDR_PULL_ALLOC(ndr, r->hardware_id);
9030 } else {
9031 r->hardware_id = NULL;
9033 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9034 if (_ptr_provider) {
9035 NDR_PULL_ALLOC(ndr, r->provider);
9036 } else {
9037 r->provider = NULL;
9039 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
9040 if (_ptr_print_processor) {
9041 NDR_PULL_ALLOC(ndr, r->print_processor);
9042 } else {
9043 r->print_processor = NULL;
9045 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
9046 if (_ptr_vendor_setup) {
9047 NDR_PULL_ALLOC(ndr, r->vendor_setup);
9048 } else {
9049 r->vendor_setup = NULL;
9051 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_color_profiles));
9052 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
9053 if (_ptr_color_profiles) {
9054 NDR_PULL_ALLOC(ndr, r->color_profiles);
9055 } else {
9056 r->color_profiles = NULL;
9058 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
9059 if (_ptr_inf_path) {
9060 NDR_PULL_ALLOC(ndr, r->inf_path);
9061 } else {
9062 r->inf_path = NULL;
9064 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
9065 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_core_driver_dependencies));
9066 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
9067 if (_ptr_core_driver_dependencies) {
9068 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
9069 } else {
9070 r->core_driver_dependencies = NULL;
9072 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
9073 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
9075 if (ndr_flags & NDR_BUFFERS) {
9076 if (r->driver_name) {
9077 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9078 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9079 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9080 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9081 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
9082 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));
9084 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
9085 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
9086 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9088 if (r->architecture) {
9089 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9090 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9091 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9092 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9093 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
9094 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));
9096 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
9097 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
9098 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9100 if (r->driver_path) {
9101 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9102 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9103 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9104 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9105 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
9106 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));
9108 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
9109 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
9110 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9112 if (r->data_file) {
9113 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9114 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9115 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9116 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9117 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
9118 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));
9120 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
9121 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
9122 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9124 if (r->config_file) {
9125 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9126 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9127 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9128 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9129 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
9130 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));
9132 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
9133 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
9134 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9136 if (r->help_file) {
9137 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9138 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9139 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9140 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9141 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
9142 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));
9144 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
9145 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
9146 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9148 if (r->monitor_name) {
9149 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9150 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9151 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9152 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9153 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
9154 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));
9156 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
9157 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
9158 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9160 if (r->default_datatype) {
9161 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9162 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9163 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9164 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9165 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
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->default_datatype), ndr_get_array_length(ndr, &r->default_datatype));
9168 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
9169 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
9170 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9172 if (r->dependent_files) {
9173 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9174 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9175 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9176 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9178 if (r->previous_names) {
9179 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9180 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9181 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9182 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9184 if (r->manufacturer_name) {
9185 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9186 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
9187 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
9188 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
9189 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
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->manufacturer_name), ndr_get_array_length(ndr, &r->manufacturer_name));
9192 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
9193 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
9194 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
9196 if (r->manufacturer_url) {
9197 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
9198 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
9199 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
9200 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
9201 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
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->manufacturer_url), ndr_get_array_length(ndr, &r->manufacturer_url));
9204 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
9205 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
9206 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
9208 if (r->hardware_id) {
9209 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9210 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
9211 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
9212 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
9213 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
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->hardware_id), ndr_get_array_length(ndr, &r->hardware_id));
9216 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
9217 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
9218 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
9220 if (r->provider) {
9221 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
9222 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
9223 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
9224 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
9225 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
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->provider), ndr_get_array_length(ndr, &r->provider));
9228 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
9229 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
9230 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
9232 if (r->print_processor) {
9233 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
9234 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
9235 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
9236 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
9237 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
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->print_processor), ndr_get_array_length(ndr, &r->print_processor));
9240 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
9241 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
9242 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
9244 if (r->vendor_setup) {
9245 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
9246 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
9247 NDR_CHECK(ndr_pull_array_size(ndr, &r->vendor_setup));
9248 NDR_CHECK(ndr_pull_array_length(ndr, &r->vendor_setup));
9249 if (ndr_get_array_length(ndr, &r->vendor_setup) > ndr_get_array_size(ndr, &r->vendor_setup)) {
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->vendor_setup), ndr_get_array_length(ndr, &r->vendor_setup));
9252 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t)));
9253 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->vendor_setup, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t), CH_UTF16));
9254 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
9256 if (r->color_profiles) {
9257 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
9258 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
9259 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
9260 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
9262 if (r->inf_path) {
9263 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9264 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
9265 NDR_CHECK(ndr_pull_array_size(ndr, &r->inf_path));
9266 NDR_CHECK(ndr_pull_array_length(ndr, &r->inf_path));
9267 if (ndr_get_array_length(ndr, &r->inf_path) > ndr_get_array_size(ndr, &r->inf_path)) {
9268 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));
9270 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t)));
9271 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->inf_path, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t), CH_UTF16));
9272 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
9274 if (r->core_driver_dependencies) {
9275 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
9276 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
9277 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
9278 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
9281 return NDR_ERR_SUCCESS;
9284 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo8 *r)
9286 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo8");
9287 ndr->depth++;
9288 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9289 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9290 ndr->depth++;
9291 if (r->driver_name) {
9292 ndr_print_string(ndr, "driver_name", r->driver_name);
9294 ndr->depth--;
9295 ndr_print_ptr(ndr, "architecture", r->architecture);
9296 ndr->depth++;
9297 if (r->architecture) {
9298 ndr_print_string(ndr, "architecture", r->architecture);
9300 ndr->depth--;
9301 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9302 ndr->depth++;
9303 if (r->driver_path) {
9304 ndr_print_string(ndr, "driver_path", r->driver_path);
9306 ndr->depth--;
9307 ndr_print_ptr(ndr, "data_file", r->data_file);
9308 ndr->depth++;
9309 if (r->data_file) {
9310 ndr_print_string(ndr, "data_file", r->data_file);
9312 ndr->depth--;
9313 ndr_print_ptr(ndr, "config_file", r->config_file);
9314 ndr->depth++;
9315 if (r->config_file) {
9316 ndr_print_string(ndr, "config_file", r->config_file);
9318 ndr->depth--;
9319 ndr_print_ptr(ndr, "help_file", r->help_file);
9320 ndr->depth++;
9321 if (r->help_file) {
9322 ndr_print_string(ndr, "help_file", r->help_file);
9324 ndr->depth--;
9325 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9326 ndr->depth++;
9327 if (r->monitor_name) {
9328 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9330 ndr->depth--;
9331 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9332 ndr->depth++;
9333 if (r->default_datatype) {
9334 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9336 ndr->depth--;
9337 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);
9338 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9339 ndr->depth++;
9340 if (r->dependent_files) {
9341 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9343 ndr->depth--;
9344 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);
9345 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9346 ndr->depth++;
9347 if (r->previous_names) {
9348 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
9350 ndr->depth--;
9351 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
9352 ndr_print_hyper(ndr, "driver_version", r->driver_version);
9353 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
9354 ndr->depth++;
9355 if (r->manufacturer_name) {
9356 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
9358 ndr->depth--;
9359 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
9360 ndr->depth++;
9361 if (r->manufacturer_url) {
9362 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
9364 ndr->depth--;
9365 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
9366 ndr->depth++;
9367 if (r->hardware_id) {
9368 ndr_print_string(ndr, "hardware_id", r->hardware_id);
9370 ndr->depth--;
9371 ndr_print_ptr(ndr, "provider", r->provider);
9372 ndr->depth++;
9373 if (r->provider) {
9374 ndr_print_string(ndr, "provider", r->provider);
9376 ndr->depth--;
9377 ndr_print_ptr(ndr, "print_processor", r->print_processor);
9378 ndr->depth++;
9379 if (r->print_processor) {
9380 ndr_print_string(ndr, "print_processor", r->print_processor);
9382 ndr->depth--;
9383 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
9384 ndr->depth++;
9385 if (r->vendor_setup) {
9386 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
9388 ndr->depth--;
9389 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);
9390 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
9391 ndr->depth++;
9392 if (r->color_profiles) {
9393 ndr_print_spoolss_StringArray(ndr, "color_profiles", r->color_profiles);
9395 ndr->depth--;
9396 ndr_print_ptr(ndr, "inf_path", r->inf_path);
9397 ndr->depth++;
9398 if (r->inf_path) {
9399 ndr_print_string(ndr, "inf_path", r->inf_path);
9401 ndr->depth--;
9402 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
9403 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);
9404 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
9405 ndr->depth++;
9406 if (r->core_driver_dependencies) {
9407 ndr_print_spoolss_StringArray(ndr, "core_driver_dependencies", r->core_driver_dependencies);
9409 ndr->depth--;
9410 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
9411 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
9412 ndr->depth--;
9415 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddDriverInfo *r)
9417 if (ndr_flags & NDR_SCALARS) {
9418 int level = ndr_push_get_switch_value(ndr, r);
9419 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
9420 switch (level) {
9421 case 1: {
9422 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
9423 break; }
9425 case 2: {
9426 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
9427 break; }
9429 case 3: {
9430 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
9431 break; }
9433 case 4: {
9434 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
9435 break; }
9437 case 6: {
9438 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
9439 break; }
9441 case 8: {
9442 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
9443 break; }
9445 default:
9446 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
9449 if (ndr_flags & NDR_BUFFERS) {
9450 int level = ndr_push_get_switch_value(ndr, r);
9451 switch (level) {
9452 case 1:
9453 if (r->info1) {
9454 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
9456 break;
9458 case 2:
9459 if (r->info2) {
9460 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
9462 break;
9464 case 3:
9465 if (r->info3) {
9466 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
9468 break;
9470 case 4:
9471 if (r->info4) {
9472 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
9474 break;
9476 case 6:
9477 if (r->info6) {
9478 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
9480 break;
9482 case 8:
9483 if (r->info8) {
9484 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
9486 break;
9488 default:
9489 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
9492 return NDR_ERR_SUCCESS;
9495 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddDriverInfo *r)
9497 int level;
9498 uint32_t _level;
9499 TALLOC_CTX *_mem_save_info1_0;
9500 TALLOC_CTX *_mem_save_info2_0;
9501 TALLOC_CTX *_mem_save_info3_0;
9502 TALLOC_CTX *_mem_save_info4_0;
9503 TALLOC_CTX *_mem_save_info6_0;
9504 TALLOC_CTX *_mem_save_info8_0;
9505 level = ndr_pull_get_switch_value(ndr, r);
9506 if (ndr_flags & NDR_SCALARS) {
9507 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
9508 if (_level != level) {
9509 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
9511 switch (level) {
9512 case 1: {
9513 uint32_t _ptr_info1;
9514 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
9515 if (_ptr_info1) {
9516 NDR_PULL_ALLOC(ndr, r->info1);
9517 } else {
9518 r->info1 = NULL;
9520 break; }
9522 case 2: {
9523 uint32_t _ptr_info2;
9524 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
9525 if (_ptr_info2) {
9526 NDR_PULL_ALLOC(ndr, r->info2);
9527 } else {
9528 r->info2 = NULL;
9530 break; }
9532 case 3: {
9533 uint32_t _ptr_info3;
9534 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
9535 if (_ptr_info3) {
9536 NDR_PULL_ALLOC(ndr, r->info3);
9537 } else {
9538 r->info3 = NULL;
9540 break; }
9542 case 4: {
9543 uint32_t _ptr_info4;
9544 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
9545 if (_ptr_info4) {
9546 NDR_PULL_ALLOC(ndr, r->info4);
9547 } else {
9548 r->info4 = NULL;
9550 break; }
9552 case 6: {
9553 uint32_t _ptr_info6;
9554 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
9555 if (_ptr_info6) {
9556 NDR_PULL_ALLOC(ndr, r->info6);
9557 } else {
9558 r->info6 = NULL;
9560 break; }
9562 case 8: {
9563 uint32_t _ptr_info8;
9564 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
9565 if (_ptr_info8) {
9566 NDR_PULL_ALLOC(ndr, r->info8);
9567 } else {
9568 r->info8 = NULL;
9570 break; }
9572 default:
9573 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
9576 if (ndr_flags & NDR_BUFFERS) {
9577 switch (level) {
9578 case 1:
9579 if (r->info1) {
9580 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
9581 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
9582 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
9583 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
9585 break;
9587 case 2:
9588 if (r->info2) {
9589 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
9590 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
9591 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
9592 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
9594 break;
9596 case 3:
9597 if (r->info3) {
9598 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
9599 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
9600 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
9601 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
9603 break;
9605 case 4:
9606 if (r->info4) {
9607 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
9608 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
9609 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
9610 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
9612 break;
9614 case 6:
9615 if (r->info6) {
9616 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
9617 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
9618 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
9619 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
9621 break;
9623 case 8:
9624 if (r->info8) {
9625 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
9626 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
9627 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
9628 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
9630 break;
9632 default:
9633 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
9636 return NDR_ERR_SUCCESS;
9639 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddDriverInfo *r)
9641 int level;
9642 level = ndr_print_get_switch_value(ndr, r);
9643 ndr_print_union(ndr, name, level, "spoolss_AddDriverInfo");
9644 switch (level) {
9645 case 1:
9646 ndr_print_ptr(ndr, "info1", r->info1);
9647 ndr->depth++;
9648 if (r->info1) {
9649 ndr_print_spoolss_AddDriverInfo1(ndr, "info1", r->info1);
9651 ndr->depth--;
9652 break;
9654 case 2:
9655 ndr_print_ptr(ndr, "info2", r->info2);
9656 ndr->depth++;
9657 if (r->info2) {
9658 ndr_print_spoolss_AddDriverInfo2(ndr, "info2", r->info2);
9660 ndr->depth--;
9661 break;
9663 case 3:
9664 ndr_print_ptr(ndr, "info3", r->info3);
9665 ndr->depth++;
9666 if (r->info3) {
9667 ndr_print_spoolss_AddDriverInfo3(ndr, "info3", r->info3);
9669 ndr->depth--;
9670 break;
9672 case 4:
9673 ndr_print_ptr(ndr, "info4", r->info4);
9674 ndr->depth++;
9675 if (r->info4) {
9676 ndr_print_spoolss_AddDriverInfo4(ndr, "info4", r->info4);
9678 ndr->depth--;
9679 break;
9681 case 6:
9682 ndr_print_ptr(ndr, "info6", r->info6);
9683 ndr->depth++;
9684 if (r->info6) {
9685 ndr_print_spoolss_AddDriverInfo6(ndr, "info6", r->info6);
9687 ndr->depth--;
9688 break;
9690 case 8:
9691 ndr_print_ptr(ndr, "info8", r->info8);
9692 ndr->depth++;
9693 if (r->info8) {
9694 ndr_print_spoolss_AddDriverInfo8(ndr, "info8", r->info8);
9696 ndr->depth--;
9697 break;
9699 default:
9700 ndr_print_bad_level(ndr, name, level);
9704 static enum ndr_err_code ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfoCtr *r)
9706 if (ndr_flags & NDR_SCALARS) {
9707 NDR_CHECK(ndr_push_align(ndr, 4));
9708 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
9709 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
9710 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
9712 if (ndr_flags & NDR_BUFFERS) {
9713 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
9715 return NDR_ERR_SUCCESS;
9718 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfoCtr *r)
9720 if (ndr_flags & NDR_SCALARS) {
9721 NDR_CHECK(ndr_pull_align(ndr, 4));
9722 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
9723 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
9724 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
9726 if (ndr_flags & NDR_BUFFERS) {
9727 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
9729 return NDR_ERR_SUCCESS;
9732 _PUBLIC_ void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfoCtr *r)
9734 ndr_print_struct(ndr, name, "spoolss_AddDriverInfoCtr");
9735 ndr->depth++;
9736 ndr_print_uint32(ndr, "level", r->level);
9737 ndr_print_set_switch_value(ndr, &r->info, r->level);
9738 ndr_print_spoolss_AddDriverInfo(ndr, "info", &r->info);
9739 ndr->depth--;
9742 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo1 *r)
9744 if (ndr_flags & NDR_SCALARS) {
9745 NDR_CHECK(ndr_push_align(ndr, 4));
9747 uint32_t _flags_save_string = ndr->flags;
9748 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9749 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
9750 ndr->flags = _flags_save_string;
9753 if (ndr_flags & NDR_BUFFERS) {
9755 uint32_t _flags_save_string = ndr->flags;
9756 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9757 if (r->driver_name) {
9758 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
9759 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
9761 ndr->flags = _flags_save_string;
9764 return NDR_ERR_SUCCESS;
9767 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo1 *r)
9769 uint32_t _ptr_driver_name;
9770 TALLOC_CTX *_mem_save_driver_name_0;
9771 if (ndr_flags & NDR_SCALARS) {
9772 NDR_CHECK(ndr_pull_align(ndr, 4));
9774 uint32_t _flags_save_string = ndr->flags;
9775 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9776 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9777 if (_ptr_driver_name) {
9778 NDR_PULL_ALLOC(ndr, r->driver_name);
9779 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
9780 } else {
9781 r->driver_name = NULL;
9783 ndr->flags = _flags_save_string;
9786 if (ndr_flags & NDR_BUFFERS) {
9788 uint32_t _flags_save_string = ndr->flags;
9789 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9790 if (r->driver_name) {
9791 uint32_t _relative_save_offset;
9792 _relative_save_offset = ndr->offset;
9793 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
9794 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9795 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9796 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
9797 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9798 ndr->offset = _relative_save_offset;
9800 ndr->flags = _flags_save_string;
9803 return NDR_ERR_SUCCESS;
9806 _PUBLIC_ void ndr_print_spoolss_DriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo1 *r)
9808 ndr_print_struct(ndr, name, "spoolss_DriverInfo1");
9809 ndr->depth++;
9810 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9811 ndr->depth++;
9812 if (r->driver_name) {
9813 ndr_print_string(ndr, "driver_name", r->driver_name);
9815 ndr->depth--;
9816 ndr->depth--;
9819 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1 *r, struct smb_iconv_convenience *ic, int flags)
9821 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo1, ic);
9824 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo2 *r)
9826 if (ndr_flags & NDR_SCALARS) {
9827 NDR_CHECK(ndr_push_align(ndr, 4));
9828 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9830 uint32_t _flags_save_string = ndr->flags;
9831 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9832 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
9833 ndr->flags = _flags_save_string;
9836 uint32_t _flags_save_string = ndr->flags;
9837 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9838 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
9839 ndr->flags = _flags_save_string;
9842 uint32_t _flags_save_string = ndr->flags;
9843 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9844 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
9845 ndr->flags = _flags_save_string;
9848 uint32_t _flags_save_string = ndr->flags;
9849 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9850 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
9851 ndr->flags = _flags_save_string;
9854 uint32_t _flags_save_string = ndr->flags;
9855 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9856 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
9857 ndr->flags = _flags_save_string;
9860 if (ndr_flags & NDR_BUFFERS) {
9862 uint32_t _flags_save_string = ndr->flags;
9863 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9864 if (r->driver_name) {
9865 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
9866 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
9868 ndr->flags = _flags_save_string;
9871 uint32_t _flags_save_string = ndr->flags;
9872 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9873 if (r->architecture) {
9874 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
9875 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
9877 ndr->flags = _flags_save_string;
9880 uint32_t _flags_save_string = ndr->flags;
9881 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9882 if (r->driver_path) {
9883 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
9884 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
9886 ndr->flags = _flags_save_string;
9889 uint32_t _flags_save_string = ndr->flags;
9890 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9891 if (r->data_file) {
9892 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
9893 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
9895 ndr->flags = _flags_save_string;
9898 uint32_t _flags_save_string = ndr->flags;
9899 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9900 if (r->config_file) {
9901 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
9902 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
9904 ndr->flags = _flags_save_string;
9907 return NDR_ERR_SUCCESS;
9910 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo2 *r)
9912 uint32_t _ptr_driver_name;
9913 TALLOC_CTX *_mem_save_driver_name_0;
9914 uint32_t _ptr_architecture;
9915 TALLOC_CTX *_mem_save_architecture_0;
9916 uint32_t _ptr_driver_path;
9917 TALLOC_CTX *_mem_save_driver_path_0;
9918 uint32_t _ptr_data_file;
9919 TALLOC_CTX *_mem_save_data_file_0;
9920 uint32_t _ptr_config_file;
9921 TALLOC_CTX *_mem_save_config_file_0;
9922 if (ndr_flags & NDR_SCALARS) {
9923 NDR_CHECK(ndr_pull_align(ndr, 4));
9924 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9926 uint32_t _flags_save_string = ndr->flags;
9927 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9928 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9929 if (_ptr_driver_name) {
9930 NDR_PULL_ALLOC(ndr, r->driver_name);
9931 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
9932 } else {
9933 r->driver_name = NULL;
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_pull_generic_ptr(ndr, &_ptr_architecture));
9941 if (_ptr_architecture) {
9942 NDR_PULL_ALLOC(ndr, r->architecture);
9943 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
9944 } else {
9945 r->architecture = NULL;
9947 ndr->flags = _flags_save_string;
9950 uint32_t _flags_save_string = ndr->flags;
9951 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9952 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9953 if (_ptr_driver_path) {
9954 NDR_PULL_ALLOC(ndr, r->driver_path);
9955 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
9956 } else {
9957 r->driver_path = NULL;
9959 ndr->flags = _flags_save_string;
9962 uint32_t _flags_save_string = ndr->flags;
9963 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9964 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9965 if (_ptr_data_file) {
9966 NDR_PULL_ALLOC(ndr, r->data_file);
9967 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
9968 } else {
9969 r->data_file = NULL;
9971 ndr->flags = _flags_save_string;
9974 uint32_t _flags_save_string = ndr->flags;
9975 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9976 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9977 if (_ptr_config_file) {
9978 NDR_PULL_ALLOC(ndr, r->config_file);
9979 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
9980 } else {
9981 r->config_file = NULL;
9983 ndr->flags = _flags_save_string;
9986 if (ndr_flags & NDR_BUFFERS) {
9988 uint32_t _flags_save_string = ndr->flags;
9989 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9990 if (r->driver_name) {
9991 uint32_t _relative_save_offset;
9992 _relative_save_offset = ndr->offset;
9993 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
9994 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9995 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9996 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
9997 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9998 ndr->offset = _relative_save_offset;
10000 ndr->flags = _flags_save_string;
10003 uint32_t _flags_save_string = ndr->flags;
10004 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10005 if (r->architecture) {
10006 uint32_t _relative_save_offset;
10007 _relative_save_offset = ndr->offset;
10008 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10009 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10010 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10011 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10012 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10013 ndr->offset = _relative_save_offset;
10015 ndr->flags = _flags_save_string;
10018 uint32_t _flags_save_string = ndr->flags;
10019 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10020 if (r->driver_path) {
10021 uint32_t _relative_save_offset;
10022 _relative_save_offset = ndr->offset;
10023 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
10024 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10025 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10026 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
10027 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10028 ndr->offset = _relative_save_offset;
10030 ndr->flags = _flags_save_string;
10033 uint32_t _flags_save_string = ndr->flags;
10034 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10035 if (r->data_file) {
10036 uint32_t _relative_save_offset;
10037 _relative_save_offset = ndr->offset;
10038 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
10039 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10040 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10041 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
10042 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10043 ndr->offset = _relative_save_offset;
10045 ndr->flags = _flags_save_string;
10048 uint32_t _flags_save_string = ndr->flags;
10049 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10050 if (r->config_file) {
10051 uint32_t _relative_save_offset;
10052 _relative_save_offset = ndr->offset;
10053 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
10054 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10055 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10056 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
10057 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10058 ndr->offset = _relative_save_offset;
10060 ndr->flags = _flags_save_string;
10063 return NDR_ERR_SUCCESS;
10066 _PUBLIC_ void ndr_print_spoolss_DriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo2 *r)
10068 ndr_print_struct(ndr, name, "spoolss_DriverInfo2");
10069 ndr->depth++;
10070 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10071 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10072 ndr->depth++;
10073 if (r->driver_name) {
10074 ndr_print_string(ndr, "driver_name", r->driver_name);
10076 ndr->depth--;
10077 ndr_print_ptr(ndr, "architecture", r->architecture);
10078 ndr->depth++;
10079 if (r->architecture) {
10080 ndr_print_string(ndr, "architecture", r->architecture);
10082 ndr->depth--;
10083 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10084 ndr->depth++;
10085 if (r->driver_path) {
10086 ndr_print_string(ndr, "driver_path", r->driver_path);
10088 ndr->depth--;
10089 ndr_print_ptr(ndr, "data_file", r->data_file);
10090 ndr->depth++;
10091 if (r->data_file) {
10092 ndr_print_string(ndr, "data_file", r->data_file);
10094 ndr->depth--;
10095 ndr_print_ptr(ndr, "config_file", r->config_file);
10096 ndr->depth++;
10097 if (r->config_file) {
10098 ndr_print_string(ndr, "config_file", r->config_file);
10100 ndr->depth--;
10101 ndr->depth--;
10104 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2 *r, struct smb_iconv_convenience *ic, int flags)
10106 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo2, ic);
10109 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo3 *r)
10111 if (ndr_flags & NDR_SCALARS) {
10112 NDR_CHECK(ndr_push_align(ndr, 4));
10113 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10115 uint32_t _flags_save_string = ndr->flags;
10116 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10117 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10118 ndr->flags = _flags_save_string;
10121 uint32_t _flags_save_string = ndr->flags;
10122 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10123 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
10124 ndr->flags = _flags_save_string;
10127 uint32_t _flags_save_string = ndr->flags;
10128 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10129 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
10130 ndr->flags = _flags_save_string;
10133 uint32_t _flags_save_string = ndr->flags;
10134 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10135 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
10136 ndr->flags = _flags_save_string;
10139 uint32_t _flags_save_string = ndr->flags;
10140 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10141 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
10142 ndr->flags = _flags_save_string;
10145 uint32_t _flags_save_string = ndr->flags;
10146 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10147 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
10148 ndr->flags = _flags_save_string;
10151 uint32_t _flags_save_string_array = ndr->flags;
10152 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10153 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
10154 ndr->flags = _flags_save_string_array;
10157 uint32_t _flags_save_string = ndr->flags;
10158 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10159 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
10160 ndr->flags = _flags_save_string;
10163 uint32_t _flags_save_string = ndr->flags;
10164 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10165 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
10166 ndr->flags = _flags_save_string;
10169 if (ndr_flags & NDR_BUFFERS) {
10171 uint32_t _flags_save_string = ndr->flags;
10172 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10173 if (r->driver_name) {
10174 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
10175 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10177 ndr->flags = _flags_save_string;
10180 uint32_t _flags_save_string = ndr->flags;
10181 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10182 if (r->architecture) {
10183 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
10184 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
10186 ndr->flags = _flags_save_string;
10189 uint32_t _flags_save_string = ndr->flags;
10190 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10191 if (r->driver_path) {
10192 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
10193 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
10195 ndr->flags = _flags_save_string;
10198 uint32_t _flags_save_string = ndr->flags;
10199 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10200 if (r->data_file) {
10201 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
10202 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
10204 ndr->flags = _flags_save_string;
10207 uint32_t _flags_save_string = ndr->flags;
10208 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10209 if (r->config_file) {
10210 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
10211 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
10213 ndr->flags = _flags_save_string;
10216 uint32_t _flags_save_string = ndr->flags;
10217 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10218 if (r->help_file) {
10219 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
10220 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
10222 ndr->flags = _flags_save_string;
10225 uint32_t _flags_save_string_array = ndr->flags;
10226 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10227 if (r->dependent_files) {
10228 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
10229 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
10231 ndr->flags = _flags_save_string_array;
10234 uint32_t _flags_save_string = ndr->flags;
10235 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10236 if (r->monitor_name) {
10237 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
10238 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
10240 ndr->flags = _flags_save_string;
10243 uint32_t _flags_save_string = ndr->flags;
10244 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10245 if (r->default_datatype) {
10246 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
10247 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
10249 ndr->flags = _flags_save_string;
10252 return NDR_ERR_SUCCESS;
10255 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo3 *r)
10257 uint32_t _ptr_driver_name;
10258 TALLOC_CTX *_mem_save_driver_name_0;
10259 uint32_t _ptr_architecture;
10260 TALLOC_CTX *_mem_save_architecture_0;
10261 uint32_t _ptr_driver_path;
10262 TALLOC_CTX *_mem_save_driver_path_0;
10263 uint32_t _ptr_data_file;
10264 TALLOC_CTX *_mem_save_data_file_0;
10265 uint32_t _ptr_config_file;
10266 TALLOC_CTX *_mem_save_config_file_0;
10267 uint32_t _ptr_help_file;
10268 TALLOC_CTX *_mem_save_help_file_0;
10269 uint32_t _ptr_dependent_files;
10270 TALLOC_CTX *_mem_save_dependent_files_0;
10271 uint32_t _ptr_monitor_name;
10272 TALLOC_CTX *_mem_save_monitor_name_0;
10273 uint32_t _ptr_default_datatype;
10274 TALLOC_CTX *_mem_save_default_datatype_0;
10275 if (ndr_flags & NDR_SCALARS) {
10276 NDR_CHECK(ndr_pull_align(ndr, 4));
10277 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10279 uint32_t _flags_save_string = ndr->flags;
10280 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10281 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10282 if (_ptr_driver_name) {
10283 NDR_PULL_ALLOC(ndr, r->driver_name);
10284 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10285 } else {
10286 r->driver_name = NULL;
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 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10294 if (_ptr_architecture) {
10295 NDR_PULL_ALLOC(ndr, r->architecture);
10296 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
10297 } else {
10298 r->architecture = NULL;
10300 ndr->flags = _flags_save_string;
10303 uint32_t _flags_save_string = ndr->flags;
10304 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10305 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10306 if (_ptr_driver_path) {
10307 NDR_PULL_ALLOC(ndr, r->driver_path);
10308 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
10309 } else {
10310 r->driver_path = NULL;
10312 ndr->flags = _flags_save_string;
10315 uint32_t _flags_save_string = ndr->flags;
10316 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10317 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10318 if (_ptr_data_file) {
10319 NDR_PULL_ALLOC(ndr, r->data_file);
10320 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
10321 } else {
10322 r->data_file = NULL;
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 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10330 if (_ptr_config_file) {
10331 NDR_PULL_ALLOC(ndr, r->config_file);
10332 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
10333 } else {
10334 r->config_file = NULL;
10336 ndr->flags = _flags_save_string;
10339 uint32_t _flags_save_string = ndr->flags;
10340 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10341 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
10342 if (_ptr_help_file) {
10343 NDR_PULL_ALLOC(ndr, r->help_file);
10344 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
10345 } else {
10346 r->help_file = NULL;
10348 ndr->flags = _flags_save_string;
10351 uint32_t _flags_save_string_array = ndr->flags;
10352 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10353 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
10354 if (_ptr_dependent_files) {
10355 NDR_PULL_ALLOC(ndr, r->dependent_files);
10356 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
10357 } else {
10358 r->dependent_files = NULL;
10360 ndr->flags = _flags_save_string_array;
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_monitor_name));
10366 if (_ptr_monitor_name) {
10367 NDR_PULL_ALLOC(ndr, r->monitor_name);
10368 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
10369 } else {
10370 r->monitor_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_default_datatype));
10378 if (_ptr_default_datatype) {
10379 NDR_PULL_ALLOC(ndr, r->default_datatype);
10380 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
10381 } else {
10382 r->default_datatype = NULL;
10384 ndr->flags = _flags_save_string;
10387 if (ndr_flags & NDR_BUFFERS) {
10389 uint32_t _flags_save_string = ndr->flags;
10390 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10391 if (r->driver_name) {
10392 uint32_t _relative_save_offset;
10393 _relative_save_offset = ndr->offset;
10394 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10395 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10396 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10397 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10398 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10399 ndr->offset = _relative_save_offset;
10401 ndr->flags = _flags_save_string;
10404 uint32_t _flags_save_string = ndr->flags;
10405 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10406 if (r->architecture) {
10407 uint32_t _relative_save_offset;
10408 _relative_save_offset = ndr->offset;
10409 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10410 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10411 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10412 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10413 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10414 ndr->offset = _relative_save_offset;
10416 ndr->flags = _flags_save_string;
10419 uint32_t _flags_save_string = ndr->flags;
10420 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10421 if (r->driver_path) {
10422 uint32_t _relative_save_offset;
10423 _relative_save_offset = ndr->offset;
10424 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
10425 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10426 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10427 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
10428 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10429 ndr->offset = _relative_save_offset;
10431 ndr->flags = _flags_save_string;
10434 uint32_t _flags_save_string = ndr->flags;
10435 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10436 if (r->data_file) {
10437 uint32_t _relative_save_offset;
10438 _relative_save_offset = ndr->offset;
10439 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
10440 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10441 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10442 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
10443 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10444 ndr->offset = _relative_save_offset;
10446 ndr->flags = _flags_save_string;
10449 uint32_t _flags_save_string = ndr->flags;
10450 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10451 if (r->config_file) {
10452 uint32_t _relative_save_offset;
10453 _relative_save_offset = ndr->offset;
10454 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
10455 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10456 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10457 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
10458 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10459 ndr->offset = _relative_save_offset;
10461 ndr->flags = _flags_save_string;
10464 uint32_t _flags_save_string = ndr->flags;
10465 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10466 if (r->help_file) {
10467 uint32_t _relative_save_offset;
10468 _relative_save_offset = ndr->offset;
10469 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
10470 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10471 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
10472 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
10473 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
10474 ndr->offset = _relative_save_offset;
10476 ndr->flags = _flags_save_string;
10479 uint32_t _flags_save_string_array = ndr->flags;
10480 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10481 if (r->dependent_files) {
10482 uint32_t _relative_save_offset;
10483 _relative_save_offset = ndr->offset;
10484 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
10485 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
10486 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
10487 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
10488 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
10489 ndr->offset = _relative_save_offset;
10491 ndr->flags = _flags_save_string_array;
10494 uint32_t _flags_save_string = ndr->flags;
10495 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10496 if (r->monitor_name) {
10497 uint32_t _relative_save_offset;
10498 _relative_save_offset = ndr->offset;
10499 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
10500 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10501 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
10502 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
10503 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
10504 ndr->offset = _relative_save_offset;
10506 ndr->flags = _flags_save_string;
10509 uint32_t _flags_save_string = ndr->flags;
10510 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10511 if (r->default_datatype) {
10512 uint32_t _relative_save_offset;
10513 _relative_save_offset = ndr->offset;
10514 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
10515 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
10516 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
10517 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
10518 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
10519 ndr->offset = _relative_save_offset;
10521 ndr->flags = _flags_save_string;
10524 return NDR_ERR_SUCCESS;
10527 _PUBLIC_ void ndr_print_spoolss_DriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo3 *r)
10529 ndr_print_struct(ndr, name, "spoolss_DriverInfo3");
10530 ndr->depth++;
10531 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10532 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10533 ndr->depth++;
10534 if (r->driver_name) {
10535 ndr_print_string(ndr, "driver_name", r->driver_name);
10537 ndr->depth--;
10538 ndr_print_ptr(ndr, "architecture", r->architecture);
10539 ndr->depth++;
10540 if (r->architecture) {
10541 ndr_print_string(ndr, "architecture", r->architecture);
10543 ndr->depth--;
10544 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10545 ndr->depth++;
10546 if (r->driver_path) {
10547 ndr_print_string(ndr, "driver_path", r->driver_path);
10549 ndr->depth--;
10550 ndr_print_ptr(ndr, "data_file", r->data_file);
10551 ndr->depth++;
10552 if (r->data_file) {
10553 ndr_print_string(ndr, "data_file", r->data_file);
10555 ndr->depth--;
10556 ndr_print_ptr(ndr, "config_file", r->config_file);
10557 ndr->depth++;
10558 if (r->config_file) {
10559 ndr_print_string(ndr, "config_file", r->config_file);
10561 ndr->depth--;
10562 ndr_print_ptr(ndr, "help_file", r->help_file);
10563 ndr->depth++;
10564 if (r->help_file) {
10565 ndr_print_string(ndr, "help_file", r->help_file);
10567 ndr->depth--;
10568 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
10569 ndr->depth++;
10570 if (r->dependent_files) {
10571 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
10573 ndr->depth--;
10574 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
10575 ndr->depth++;
10576 if (r->monitor_name) {
10577 ndr_print_string(ndr, "monitor_name", r->monitor_name);
10579 ndr->depth--;
10580 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
10581 ndr->depth++;
10582 if (r->default_datatype) {
10583 ndr_print_string(ndr, "default_datatype", r->default_datatype);
10585 ndr->depth--;
10586 ndr->depth--;
10589 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3 *r, struct smb_iconv_convenience *ic, int flags)
10591 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo3, ic);
10594 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo4 *r)
10596 if (ndr_flags & NDR_SCALARS) {
10597 NDR_CHECK(ndr_push_align(ndr, 4));
10598 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10600 uint32_t _flags_save_string = ndr->flags;
10601 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10602 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10603 ndr->flags = _flags_save_string;
10606 uint32_t _flags_save_string = ndr->flags;
10607 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10608 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
10609 ndr->flags = _flags_save_string;
10612 uint32_t _flags_save_string = ndr->flags;
10613 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10614 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
10615 ndr->flags = _flags_save_string;
10618 uint32_t _flags_save_string = ndr->flags;
10619 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10620 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
10621 ndr->flags = _flags_save_string;
10624 uint32_t _flags_save_string = ndr->flags;
10625 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10626 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
10627 ndr->flags = _flags_save_string;
10630 uint32_t _flags_save_string = ndr->flags;
10631 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10632 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
10633 ndr->flags = _flags_save_string;
10636 uint32_t _flags_save_string_array = ndr->flags;
10637 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10638 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
10639 ndr->flags = _flags_save_string_array;
10642 uint32_t _flags_save_string = ndr->flags;
10643 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10644 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
10645 ndr->flags = _flags_save_string;
10648 uint32_t _flags_save_string = ndr->flags;
10649 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10650 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
10651 ndr->flags = _flags_save_string;
10654 uint32_t _flags_save_string_array = ndr->flags;
10655 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10656 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
10657 ndr->flags = _flags_save_string_array;
10660 if (ndr_flags & NDR_BUFFERS) {
10662 uint32_t _flags_save_string = ndr->flags;
10663 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10664 if (r->driver_name) {
10665 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
10666 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10668 ndr->flags = _flags_save_string;
10671 uint32_t _flags_save_string = ndr->flags;
10672 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10673 if (r->architecture) {
10674 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
10675 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
10677 ndr->flags = _flags_save_string;
10680 uint32_t _flags_save_string = ndr->flags;
10681 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10682 if (r->driver_path) {
10683 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
10684 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
10686 ndr->flags = _flags_save_string;
10689 uint32_t _flags_save_string = ndr->flags;
10690 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10691 if (r->data_file) {
10692 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
10693 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
10695 ndr->flags = _flags_save_string;
10698 uint32_t _flags_save_string = ndr->flags;
10699 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10700 if (r->config_file) {
10701 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
10702 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
10704 ndr->flags = _flags_save_string;
10707 uint32_t _flags_save_string = ndr->flags;
10708 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10709 if (r->help_file) {
10710 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
10711 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
10713 ndr->flags = _flags_save_string;
10716 uint32_t _flags_save_string_array = ndr->flags;
10717 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10718 if (r->dependent_files) {
10719 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
10720 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
10722 ndr->flags = _flags_save_string_array;
10725 uint32_t _flags_save_string = ndr->flags;
10726 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10727 if (r->monitor_name) {
10728 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
10729 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
10731 ndr->flags = _flags_save_string;
10734 uint32_t _flags_save_string = ndr->flags;
10735 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10736 if (r->default_datatype) {
10737 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
10738 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
10740 ndr->flags = _flags_save_string;
10743 uint32_t _flags_save_string_array = ndr->flags;
10744 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10745 if (r->previous_names) {
10746 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
10747 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
10749 ndr->flags = _flags_save_string_array;
10752 return NDR_ERR_SUCCESS;
10755 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo4 *r)
10757 uint32_t _ptr_driver_name;
10758 TALLOC_CTX *_mem_save_driver_name_0;
10759 uint32_t _ptr_architecture;
10760 TALLOC_CTX *_mem_save_architecture_0;
10761 uint32_t _ptr_driver_path;
10762 TALLOC_CTX *_mem_save_driver_path_0;
10763 uint32_t _ptr_data_file;
10764 TALLOC_CTX *_mem_save_data_file_0;
10765 uint32_t _ptr_config_file;
10766 TALLOC_CTX *_mem_save_config_file_0;
10767 uint32_t _ptr_help_file;
10768 TALLOC_CTX *_mem_save_help_file_0;
10769 uint32_t _ptr_dependent_files;
10770 TALLOC_CTX *_mem_save_dependent_files_0;
10771 uint32_t _ptr_monitor_name;
10772 TALLOC_CTX *_mem_save_monitor_name_0;
10773 uint32_t _ptr_default_datatype;
10774 TALLOC_CTX *_mem_save_default_datatype_0;
10775 uint32_t _ptr_previous_names;
10776 TALLOC_CTX *_mem_save_previous_names_0;
10777 if (ndr_flags & NDR_SCALARS) {
10778 NDR_CHECK(ndr_pull_align(ndr, 4));
10779 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10781 uint32_t _flags_save_string = ndr->flags;
10782 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10783 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10784 if (_ptr_driver_name) {
10785 NDR_PULL_ALLOC(ndr, r->driver_name);
10786 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10787 } else {
10788 r->driver_name = NULL;
10790 ndr->flags = _flags_save_string;
10793 uint32_t _flags_save_string = ndr->flags;
10794 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10795 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10796 if (_ptr_architecture) {
10797 NDR_PULL_ALLOC(ndr, r->architecture);
10798 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
10799 } else {
10800 r->architecture = NULL;
10802 ndr->flags = _flags_save_string;
10805 uint32_t _flags_save_string = ndr->flags;
10806 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10807 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10808 if (_ptr_driver_path) {
10809 NDR_PULL_ALLOC(ndr, r->driver_path);
10810 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
10811 } else {
10812 r->driver_path = NULL;
10814 ndr->flags = _flags_save_string;
10817 uint32_t _flags_save_string = ndr->flags;
10818 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10819 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10820 if (_ptr_data_file) {
10821 NDR_PULL_ALLOC(ndr, r->data_file);
10822 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
10823 } else {
10824 r->data_file = NULL;
10826 ndr->flags = _flags_save_string;
10829 uint32_t _flags_save_string = ndr->flags;
10830 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10831 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10832 if (_ptr_config_file) {
10833 NDR_PULL_ALLOC(ndr, r->config_file);
10834 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
10835 } else {
10836 r->config_file = NULL;
10838 ndr->flags = _flags_save_string;
10841 uint32_t _flags_save_string = ndr->flags;
10842 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10843 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
10844 if (_ptr_help_file) {
10845 NDR_PULL_ALLOC(ndr, r->help_file);
10846 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
10847 } else {
10848 r->help_file = NULL;
10850 ndr->flags = _flags_save_string;
10853 uint32_t _flags_save_string_array = ndr->flags;
10854 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10855 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
10856 if (_ptr_dependent_files) {
10857 NDR_PULL_ALLOC(ndr, r->dependent_files);
10858 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
10859 } else {
10860 r->dependent_files = NULL;
10862 ndr->flags = _flags_save_string_array;
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_monitor_name));
10868 if (_ptr_monitor_name) {
10869 NDR_PULL_ALLOC(ndr, r->monitor_name);
10870 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
10871 } else {
10872 r->monitor_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_default_datatype));
10880 if (_ptr_default_datatype) {
10881 NDR_PULL_ALLOC(ndr, r->default_datatype);
10882 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
10883 } else {
10884 r->default_datatype = NULL;
10886 ndr->flags = _flags_save_string;
10889 uint32_t _flags_save_string_array = ndr->flags;
10890 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10891 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
10892 if (_ptr_previous_names) {
10893 NDR_PULL_ALLOC(ndr, r->previous_names);
10894 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
10895 } else {
10896 r->previous_names = NULL;
10898 ndr->flags = _flags_save_string_array;
10901 if (ndr_flags & NDR_BUFFERS) {
10903 uint32_t _flags_save_string = ndr->flags;
10904 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10905 if (r->driver_name) {
10906 uint32_t _relative_save_offset;
10907 _relative_save_offset = ndr->offset;
10908 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10909 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10910 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10911 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10912 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10913 ndr->offset = _relative_save_offset;
10915 ndr->flags = _flags_save_string;
10918 uint32_t _flags_save_string = ndr->flags;
10919 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10920 if (r->architecture) {
10921 uint32_t _relative_save_offset;
10922 _relative_save_offset = ndr->offset;
10923 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10924 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10925 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10926 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10927 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10928 ndr->offset = _relative_save_offset;
10930 ndr->flags = _flags_save_string;
10933 uint32_t _flags_save_string = ndr->flags;
10934 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10935 if (r->driver_path) {
10936 uint32_t _relative_save_offset;
10937 _relative_save_offset = ndr->offset;
10938 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
10939 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10940 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10941 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
10942 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10943 ndr->offset = _relative_save_offset;
10945 ndr->flags = _flags_save_string;
10948 uint32_t _flags_save_string = ndr->flags;
10949 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10950 if (r->data_file) {
10951 uint32_t _relative_save_offset;
10952 _relative_save_offset = ndr->offset;
10953 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
10954 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10955 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10956 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
10957 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10958 ndr->offset = _relative_save_offset;
10960 ndr->flags = _flags_save_string;
10963 uint32_t _flags_save_string = ndr->flags;
10964 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10965 if (r->config_file) {
10966 uint32_t _relative_save_offset;
10967 _relative_save_offset = ndr->offset;
10968 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
10969 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10970 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10971 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
10972 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10973 ndr->offset = _relative_save_offset;
10975 ndr->flags = _flags_save_string;
10978 uint32_t _flags_save_string = ndr->flags;
10979 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10980 if (r->help_file) {
10981 uint32_t _relative_save_offset;
10982 _relative_save_offset = ndr->offset;
10983 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
10984 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10985 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
10986 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
10987 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
10988 ndr->offset = _relative_save_offset;
10990 ndr->flags = _flags_save_string;
10993 uint32_t _flags_save_string_array = ndr->flags;
10994 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10995 if (r->dependent_files) {
10996 uint32_t _relative_save_offset;
10997 _relative_save_offset = ndr->offset;
10998 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
10999 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
11000 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
11001 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
11002 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
11003 ndr->offset = _relative_save_offset;
11005 ndr->flags = _flags_save_string_array;
11008 uint32_t _flags_save_string = ndr->flags;
11009 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11010 if (r->monitor_name) {
11011 uint32_t _relative_save_offset;
11012 _relative_save_offset = ndr->offset;
11013 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
11014 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11015 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
11016 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
11017 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
11018 ndr->offset = _relative_save_offset;
11020 ndr->flags = _flags_save_string;
11023 uint32_t _flags_save_string = ndr->flags;
11024 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11025 if (r->default_datatype) {
11026 uint32_t _relative_save_offset;
11027 _relative_save_offset = ndr->offset;
11028 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
11029 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11030 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
11031 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
11032 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
11033 ndr->offset = _relative_save_offset;
11035 ndr->flags = _flags_save_string;
11038 uint32_t _flags_save_string_array = ndr->flags;
11039 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11040 if (r->previous_names) {
11041 uint32_t _relative_save_offset;
11042 _relative_save_offset = ndr->offset;
11043 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
11044 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
11045 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
11046 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
11047 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
11048 ndr->offset = _relative_save_offset;
11050 ndr->flags = _flags_save_string_array;
11053 return NDR_ERR_SUCCESS;
11056 _PUBLIC_ void ndr_print_spoolss_DriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo4 *r)
11058 ndr_print_struct(ndr, name, "spoolss_DriverInfo4");
11059 ndr->depth++;
11060 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11061 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11062 ndr->depth++;
11063 if (r->driver_name) {
11064 ndr_print_string(ndr, "driver_name", r->driver_name);
11066 ndr->depth--;
11067 ndr_print_ptr(ndr, "architecture", r->architecture);
11068 ndr->depth++;
11069 if (r->architecture) {
11070 ndr_print_string(ndr, "architecture", r->architecture);
11072 ndr->depth--;
11073 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11074 ndr->depth++;
11075 if (r->driver_path) {
11076 ndr_print_string(ndr, "driver_path", r->driver_path);
11078 ndr->depth--;
11079 ndr_print_ptr(ndr, "data_file", r->data_file);
11080 ndr->depth++;
11081 if (r->data_file) {
11082 ndr_print_string(ndr, "data_file", r->data_file);
11084 ndr->depth--;
11085 ndr_print_ptr(ndr, "config_file", r->config_file);
11086 ndr->depth++;
11087 if (r->config_file) {
11088 ndr_print_string(ndr, "config_file", r->config_file);
11090 ndr->depth--;
11091 ndr_print_ptr(ndr, "help_file", r->help_file);
11092 ndr->depth++;
11093 if (r->help_file) {
11094 ndr_print_string(ndr, "help_file", r->help_file);
11096 ndr->depth--;
11097 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
11098 ndr->depth++;
11099 if (r->dependent_files) {
11100 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
11102 ndr->depth--;
11103 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
11104 ndr->depth++;
11105 if (r->monitor_name) {
11106 ndr_print_string(ndr, "monitor_name", r->monitor_name);
11108 ndr->depth--;
11109 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
11110 ndr->depth++;
11111 if (r->default_datatype) {
11112 ndr_print_string(ndr, "default_datatype", r->default_datatype);
11114 ndr->depth--;
11115 ndr_print_ptr(ndr, "previous_names", r->previous_names);
11116 ndr->depth++;
11117 if (r->previous_names) {
11118 ndr_print_string_array(ndr, "previous_names", r->previous_names);
11120 ndr->depth--;
11121 ndr->depth--;
11124 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4 *r, struct smb_iconv_convenience *ic, int flags)
11126 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo4, ic);
11129 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo5 *r)
11131 if (ndr_flags & NDR_SCALARS) {
11132 NDR_CHECK(ndr_push_align(ndr, 4));
11133 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11135 uint32_t _flags_save_string = ndr->flags;
11136 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11137 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11138 ndr->flags = _flags_save_string;
11141 uint32_t _flags_save_string = ndr->flags;
11142 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11143 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11144 ndr->flags = _flags_save_string;
11147 uint32_t _flags_save_string = ndr->flags;
11148 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11149 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11150 ndr->flags = _flags_save_string;
11153 uint32_t _flags_save_string = ndr->flags;
11154 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11155 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11156 ndr->flags = _flags_save_string;
11159 uint32_t _flags_save_string = ndr->flags;
11160 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11161 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11162 ndr->flags = _flags_save_string;
11164 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_attributes));
11165 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->config_version));
11166 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_version));
11168 if (ndr_flags & NDR_BUFFERS) {
11170 uint32_t _flags_save_string = ndr->flags;
11171 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11172 if (r->driver_name) {
11173 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
11174 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11176 ndr->flags = _flags_save_string;
11179 uint32_t _flags_save_string = ndr->flags;
11180 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11181 if (r->architecture) {
11182 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
11183 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11185 ndr->flags = _flags_save_string;
11188 uint32_t _flags_save_string = ndr->flags;
11189 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11190 if (r->driver_path) {
11191 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
11192 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11194 ndr->flags = _flags_save_string;
11197 uint32_t _flags_save_string = ndr->flags;
11198 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11199 if (r->data_file) {
11200 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
11201 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11203 ndr->flags = _flags_save_string;
11206 uint32_t _flags_save_string = ndr->flags;
11207 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11208 if (r->config_file) {
11209 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
11210 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11212 ndr->flags = _flags_save_string;
11215 return NDR_ERR_SUCCESS;
11218 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo5 *r)
11220 uint32_t _ptr_driver_name;
11221 TALLOC_CTX *_mem_save_driver_name_0;
11222 uint32_t _ptr_architecture;
11223 TALLOC_CTX *_mem_save_architecture_0;
11224 uint32_t _ptr_driver_path;
11225 TALLOC_CTX *_mem_save_driver_path_0;
11226 uint32_t _ptr_data_file;
11227 TALLOC_CTX *_mem_save_data_file_0;
11228 uint32_t _ptr_config_file;
11229 TALLOC_CTX *_mem_save_config_file_0;
11230 if (ndr_flags & NDR_SCALARS) {
11231 NDR_CHECK(ndr_pull_align(ndr, 4));
11232 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11234 uint32_t _flags_save_string = ndr->flags;
11235 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11236 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11237 if (_ptr_driver_name) {
11238 NDR_PULL_ALLOC(ndr, r->driver_name);
11239 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11240 } else {
11241 r->driver_name = NULL;
11243 ndr->flags = _flags_save_string;
11246 uint32_t _flags_save_string = ndr->flags;
11247 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11248 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11249 if (_ptr_architecture) {
11250 NDR_PULL_ALLOC(ndr, r->architecture);
11251 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11252 } else {
11253 r->architecture = NULL;
11255 ndr->flags = _flags_save_string;
11258 uint32_t _flags_save_string = ndr->flags;
11259 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11260 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11261 if (_ptr_driver_path) {
11262 NDR_PULL_ALLOC(ndr, r->driver_path);
11263 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11264 } else {
11265 r->driver_path = NULL;
11267 ndr->flags = _flags_save_string;
11270 uint32_t _flags_save_string = ndr->flags;
11271 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11272 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11273 if (_ptr_data_file) {
11274 NDR_PULL_ALLOC(ndr, r->data_file);
11275 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11276 } else {
11277 r->data_file = NULL;
11279 ndr->flags = _flags_save_string;
11282 uint32_t _flags_save_string = ndr->flags;
11283 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11284 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11285 if (_ptr_config_file) {
11286 NDR_PULL_ALLOC(ndr, r->config_file);
11287 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11288 } else {
11289 r->config_file = NULL;
11291 ndr->flags = _flags_save_string;
11293 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_attributes));
11294 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->config_version));
11295 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_version));
11297 if (ndr_flags & NDR_BUFFERS) {
11299 uint32_t _flags_save_string = ndr->flags;
11300 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11301 if (r->driver_name) {
11302 uint32_t _relative_save_offset;
11303 _relative_save_offset = ndr->offset;
11304 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11305 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11306 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11307 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11308 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11309 ndr->offset = _relative_save_offset;
11311 ndr->flags = _flags_save_string;
11314 uint32_t _flags_save_string = ndr->flags;
11315 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11316 if (r->architecture) {
11317 uint32_t _relative_save_offset;
11318 _relative_save_offset = ndr->offset;
11319 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11320 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11321 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11322 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11323 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11324 ndr->offset = _relative_save_offset;
11326 ndr->flags = _flags_save_string;
11329 uint32_t _flags_save_string = ndr->flags;
11330 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11331 if (r->driver_path) {
11332 uint32_t _relative_save_offset;
11333 _relative_save_offset = ndr->offset;
11334 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11335 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11336 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11337 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11338 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11339 ndr->offset = _relative_save_offset;
11341 ndr->flags = _flags_save_string;
11344 uint32_t _flags_save_string = ndr->flags;
11345 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11346 if (r->data_file) {
11347 uint32_t _relative_save_offset;
11348 _relative_save_offset = ndr->offset;
11349 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11350 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11351 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11352 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11353 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11354 ndr->offset = _relative_save_offset;
11356 ndr->flags = _flags_save_string;
11359 uint32_t _flags_save_string = ndr->flags;
11360 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11361 if (r->config_file) {
11362 uint32_t _relative_save_offset;
11363 _relative_save_offset = ndr->offset;
11364 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11365 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11366 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11367 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11368 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11369 ndr->offset = _relative_save_offset;
11371 ndr->flags = _flags_save_string;
11374 return NDR_ERR_SUCCESS;
11377 _PUBLIC_ void ndr_print_spoolss_DriverInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo5 *r)
11379 ndr_print_struct(ndr, name, "spoolss_DriverInfo5");
11380 ndr->depth++;
11381 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11382 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11383 ndr->depth++;
11384 if (r->driver_name) {
11385 ndr_print_string(ndr, "driver_name", r->driver_name);
11387 ndr->depth--;
11388 ndr_print_ptr(ndr, "architecture", r->architecture);
11389 ndr->depth++;
11390 if (r->architecture) {
11391 ndr_print_string(ndr, "architecture", r->architecture);
11393 ndr->depth--;
11394 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11395 ndr->depth++;
11396 if (r->driver_path) {
11397 ndr_print_string(ndr, "driver_path", r->driver_path);
11399 ndr->depth--;
11400 ndr_print_ptr(ndr, "data_file", r->data_file);
11401 ndr->depth++;
11402 if (r->data_file) {
11403 ndr_print_string(ndr, "data_file", r->data_file);
11405 ndr->depth--;
11406 ndr_print_ptr(ndr, "config_file", r->config_file);
11407 ndr->depth++;
11408 if (r->config_file) {
11409 ndr_print_string(ndr, "config_file", r->config_file);
11411 ndr->depth--;
11412 ndr_print_uint32(ndr, "driver_attributes", r->driver_attributes);
11413 ndr_print_uint32(ndr, "config_version", r->config_version);
11414 ndr_print_uint32(ndr, "driver_version", r->driver_version);
11415 ndr->depth--;
11418 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5 *r, struct smb_iconv_convenience *ic, int flags)
11420 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo5, ic);
11423 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo6 *r)
11425 if (ndr_flags & NDR_SCALARS) {
11426 NDR_CHECK(ndr_push_align(ndr, 8));
11427 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11429 uint32_t _flags_save_string = ndr->flags;
11430 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11431 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11432 ndr->flags = _flags_save_string;
11435 uint32_t _flags_save_string = ndr->flags;
11436 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11437 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11438 ndr->flags = _flags_save_string;
11441 uint32_t _flags_save_string = ndr->flags;
11442 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11443 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11444 ndr->flags = _flags_save_string;
11447 uint32_t _flags_save_string = ndr->flags;
11448 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11449 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11450 ndr->flags = _flags_save_string;
11453 uint32_t _flags_save_string = ndr->flags;
11454 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11455 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11456 ndr->flags = _flags_save_string;
11459 uint32_t _flags_save_string = ndr->flags;
11460 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11461 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
11462 ndr->flags = _flags_save_string;
11465 uint32_t _flags_save_string_array = ndr->flags;
11466 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11467 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
11468 ndr->flags = _flags_save_string_array;
11471 uint32_t _flags_save_string = ndr->flags;
11472 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11473 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
11474 ndr->flags = _flags_save_string;
11477 uint32_t _flags_save_string = ndr->flags;
11478 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11479 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
11480 ndr->flags = _flags_save_string;
11483 uint32_t _flags_save_string_array = ndr->flags;
11484 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11485 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
11486 ndr->flags = _flags_save_string_array;
11488 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
11489 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
11491 uint32_t _flags_save_string = ndr->flags;
11492 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11493 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
11494 ndr->flags = _flags_save_string;
11497 uint32_t _flags_save_string = ndr->flags;
11498 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11499 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
11500 ndr->flags = _flags_save_string;
11503 uint32_t _flags_save_string = ndr->flags;
11504 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11505 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
11506 ndr->flags = _flags_save_string;
11509 uint32_t _flags_save_string = ndr->flags;
11510 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11511 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
11512 ndr->flags = _flags_save_string;
11515 if (ndr_flags & NDR_BUFFERS) {
11517 uint32_t _flags_save_string = ndr->flags;
11518 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11519 if (r->driver_name) {
11520 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
11521 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11523 ndr->flags = _flags_save_string;
11526 uint32_t _flags_save_string = ndr->flags;
11527 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11528 if (r->architecture) {
11529 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
11530 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11532 ndr->flags = _flags_save_string;
11535 uint32_t _flags_save_string = ndr->flags;
11536 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11537 if (r->driver_path) {
11538 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
11539 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11541 ndr->flags = _flags_save_string;
11544 uint32_t _flags_save_string = ndr->flags;
11545 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11546 if (r->data_file) {
11547 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
11548 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11550 ndr->flags = _flags_save_string;
11553 uint32_t _flags_save_string = ndr->flags;
11554 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11555 if (r->config_file) {
11556 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
11557 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11559 ndr->flags = _flags_save_string;
11562 uint32_t _flags_save_string = ndr->flags;
11563 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11564 if (r->help_file) {
11565 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
11566 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
11568 ndr->flags = _flags_save_string;
11571 uint32_t _flags_save_string_array = ndr->flags;
11572 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11573 if (r->dependent_files) {
11574 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
11575 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
11577 ndr->flags = _flags_save_string_array;
11580 uint32_t _flags_save_string = ndr->flags;
11581 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11582 if (r->monitor_name) {
11583 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
11584 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
11586 ndr->flags = _flags_save_string;
11589 uint32_t _flags_save_string = ndr->flags;
11590 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11591 if (r->default_datatype) {
11592 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
11593 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
11595 ndr->flags = _flags_save_string;
11598 uint32_t _flags_save_string_array = ndr->flags;
11599 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11600 if (r->previous_names) {
11601 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
11602 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
11604 ndr->flags = _flags_save_string_array;
11607 uint32_t _flags_save_string = ndr->flags;
11608 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11609 if (r->manufacturer_name) {
11610 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
11611 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
11613 ndr->flags = _flags_save_string;
11616 uint32_t _flags_save_string = ndr->flags;
11617 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11618 if (r->manufacturer_url) {
11619 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
11620 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
11622 ndr->flags = _flags_save_string;
11625 uint32_t _flags_save_string = ndr->flags;
11626 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11627 if (r->hardware_id) {
11628 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
11629 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
11631 ndr->flags = _flags_save_string;
11634 uint32_t _flags_save_string = ndr->flags;
11635 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11636 if (r->provider) {
11637 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
11638 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
11640 ndr->flags = _flags_save_string;
11643 return NDR_ERR_SUCCESS;
11646 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo6 *r)
11648 uint32_t _ptr_driver_name;
11649 TALLOC_CTX *_mem_save_driver_name_0;
11650 uint32_t _ptr_architecture;
11651 TALLOC_CTX *_mem_save_architecture_0;
11652 uint32_t _ptr_driver_path;
11653 TALLOC_CTX *_mem_save_driver_path_0;
11654 uint32_t _ptr_data_file;
11655 TALLOC_CTX *_mem_save_data_file_0;
11656 uint32_t _ptr_config_file;
11657 TALLOC_CTX *_mem_save_config_file_0;
11658 uint32_t _ptr_help_file;
11659 TALLOC_CTX *_mem_save_help_file_0;
11660 uint32_t _ptr_dependent_files;
11661 TALLOC_CTX *_mem_save_dependent_files_0;
11662 uint32_t _ptr_monitor_name;
11663 TALLOC_CTX *_mem_save_monitor_name_0;
11664 uint32_t _ptr_default_datatype;
11665 TALLOC_CTX *_mem_save_default_datatype_0;
11666 uint32_t _ptr_previous_names;
11667 TALLOC_CTX *_mem_save_previous_names_0;
11668 uint32_t _ptr_manufacturer_name;
11669 TALLOC_CTX *_mem_save_manufacturer_name_0;
11670 uint32_t _ptr_manufacturer_url;
11671 TALLOC_CTX *_mem_save_manufacturer_url_0;
11672 uint32_t _ptr_hardware_id;
11673 TALLOC_CTX *_mem_save_hardware_id_0;
11674 uint32_t _ptr_provider;
11675 TALLOC_CTX *_mem_save_provider_0;
11676 if (ndr_flags & NDR_SCALARS) {
11677 NDR_CHECK(ndr_pull_align(ndr, 8));
11678 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11680 uint32_t _flags_save_string = ndr->flags;
11681 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11682 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11683 if (_ptr_driver_name) {
11684 NDR_PULL_ALLOC(ndr, r->driver_name);
11685 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11686 } else {
11687 r->driver_name = NULL;
11689 ndr->flags = _flags_save_string;
11692 uint32_t _flags_save_string = ndr->flags;
11693 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11694 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11695 if (_ptr_architecture) {
11696 NDR_PULL_ALLOC(ndr, r->architecture);
11697 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11698 } else {
11699 r->architecture = NULL;
11701 ndr->flags = _flags_save_string;
11704 uint32_t _flags_save_string = ndr->flags;
11705 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11706 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11707 if (_ptr_driver_path) {
11708 NDR_PULL_ALLOC(ndr, r->driver_path);
11709 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11710 } else {
11711 r->driver_path = NULL;
11713 ndr->flags = _flags_save_string;
11716 uint32_t _flags_save_string = ndr->flags;
11717 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11718 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11719 if (_ptr_data_file) {
11720 NDR_PULL_ALLOC(ndr, r->data_file);
11721 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11722 } else {
11723 r->data_file = NULL;
11725 ndr->flags = _flags_save_string;
11728 uint32_t _flags_save_string = ndr->flags;
11729 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11730 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11731 if (_ptr_config_file) {
11732 NDR_PULL_ALLOC(ndr, r->config_file);
11733 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11734 } else {
11735 r->config_file = NULL;
11737 ndr->flags = _flags_save_string;
11740 uint32_t _flags_save_string = ndr->flags;
11741 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11742 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
11743 if (_ptr_help_file) {
11744 NDR_PULL_ALLOC(ndr, r->help_file);
11745 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
11746 } else {
11747 r->help_file = NULL;
11749 ndr->flags = _flags_save_string;
11752 uint32_t _flags_save_string_array = ndr->flags;
11753 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11754 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
11755 if (_ptr_dependent_files) {
11756 NDR_PULL_ALLOC(ndr, r->dependent_files);
11757 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
11758 } else {
11759 r->dependent_files = NULL;
11761 ndr->flags = _flags_save_string_array;
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_monitor_name));
11767 if (_ptr_monitor_name) {
11768 NDR_PULL_ALLOC(ndr, r->monitor_name);
11769 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
11770 } else {
11771 r->monitor_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_default_datatype));
11779 if (_ptr_default_datatype) {
11780 NDR_PULL_ALLOC(ndr, r->default_datatype);
11781 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
11782 } else {
11783 r->default_datatype = NULL;
11785 ndr->flags = _flags_save_string;
11788 uint32_t _flags_save_string_array = ndr->flags;
11789 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11790 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
11791 if (_ptr_previous_names) {
11792 NDR_PULL_ALLOC(ndr, r->previous_names);
11793 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
11794 } else {
11795 r->previous_names = NULL;
11797 ndr->flags = _flags_save_string_array;
11799 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
11800 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
11802 uint32_t _flags_save_string = ndr->flags;
11803 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11804 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
11805 if (_ptr_manufacturer_name) {
11806 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
11807 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
11808 } else {
11809 r->manufacturer_name = NULL;
11811 ndr->flags = _flags_save_string;
11814 uint32_t _flags_save_string = ndr->flags;
11815 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11816 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
11817 if (_ptr_manufacturer_url) {
11818 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
11819 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
11820 } else {
11821 r->manufacturer_url = NULL;
11823 ndr->flags = _flags_save_string;
11826 uint32_t _flags_save_string = ndr->flags;
11827 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11828 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
11829 if (_ptr_hardware_id) {
11830 NDR_PULL_ALLOC(ndr, r->hardware_id);
11831 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
11832 } else {
11833 r->hardware_id = NULL;
11835 ndr->flags = _flags_save_string;
11838 uint32_t _flags_save_string = ndr->flags;
11839 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11840 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
11841 if (_ptr_provider) {
11842 NDR_PULL_ALLOC(ndr, r->provider);
11843 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
11844 } else {
11845 r->provider = NULL;
11847 ndr->flags = _flags_save_string;
11850 if (ndr_flags & NDR_BUFFERS) {
11852 uint32_t _flags_save_string = ndr->flags;
11853 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11854 if (r->driver_name) {
11855 uint32_t _relative_save_offset;
11856 _relative_save_offset = ndr->offset;
11857 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11858 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11859 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11860 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11861 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11862 ndr->offset = _relative_save_offset;
11864 ndr->flags = _flags_save_string;
11867 uint32_t _flags_save_string = ndr->flags;
11868 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11869 if (r->architecture) {
11870 uint32_t _relative_save_offset;
11871 _relative_save_offset = ndr->offset;
11872 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11873 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11874 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11875 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11876 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11877 ndr->offset = _relative_save_offset;
11879 ndr->flags = _flags_save_string;
11882 uint32_t _flags_save_string = ndr->flags;
11883 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11884 if (r->driver_path) {
11885 uint32_t _relative_save_offset;
11886 _relative_save_offset = ndr->offset;
11887 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11888 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11889 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11890 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11891 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11892 ndr->offset = _relative_save_offset;
11894 ndr->flags = _flags_save_string;
11897 uint32_t _flags_save_string = ndr->flags;
11898 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11899 if (r->data_file) {
11900 uint32_t _relative_save_offset;
11901 _relative_save_offset = ndr->offset;
11902 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11903 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11904 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11905 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11906 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11907 ndr->offset = _relative_save_offset;
11909 ndr->flags = _flags_save_string;
11912 uint32_t _flags_save_string = ndr->flags;
11913 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11914 if (r->config_file) {
11915 uint32_t _relative_save_offset;
11916 _relative_save_offset = ndr->offset;
11917 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11918 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11919 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11920 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11921 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11922 ndr->offset = _relative_save_offset;
11924 ndr->flags = _flags_save_string;
11927 uint32_t _flags_save_string = ndr->flags;
11928 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11929 if (r->help_file) {
11930 uint32_t _relative_save_offset;
11931 _relative_save_offset = ndr->offset;
11932 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
11933 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11934 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
11935 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
11936 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
11937 ndr->offset = _relative_save_offset;
11939 ndr->flags = _flags_save_string;
11942 uint32_t _flags_save_string_array = ndr->flags;
11943 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11944 if (r->dependent_files) {
11945 uint32_t _relative_save_offset;
11946 _relative_save_offset = ndr->offset;
11947 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
11948 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
11949 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
11950 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
11951 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
11952 ndr->offset = _relative_save_offset;
11954 ndr->flags = _flags_save_string_array;
11957 uint32_t _flags_save_string = ndr->flags;
11958 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11959 if (r->monitor_name) {
11960 uint32_t _relative_save_offset;
11961 _relative_save_offset = ndr->offset;
11962 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
11963 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11964 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
11965 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
11966 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
11967 ndr->offset = _relative_save_offset;
11969 ndr->flags = _flags_save_string;
11972 uint32_t _flags_save_string = ndr->flags;
11973 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11974 if (r->default_datatype) {
11975 uint32_t _relative_save_offset;
11976 _relative_save_offset = ndr->offset;
11977 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
11978 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11979 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
11980 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
11981 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
11982 ndr->offset = _relative_save_offset;
11984 ndr->flags = _flags_save_string;
11987 uint32_t _flags_save_string_array = ndr->flags;
11988 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11989 if (r->previous_names) {
11990 uint32_t _relative_save_offset;
11991 _relative_save_offset = ndr->offset;
11992 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
11993 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
11994 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
11995 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
11996 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
11997 ndr->offset = _relative_save_offset;
11999 ndr->flags = _flags_save_string_array;
12002 uint32_t _flags_save_string = ndr->flags;
12003 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12004 if (r->manufacturer_name) {
12005 uint32_t _relative_save_offset;
12006 _relative_save_offset = ndr->offset;
12007 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
12008 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12009 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
12010 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
12011 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
12012 ndr->offset = _relative_save_offset;
12014 ndr->flags = _flags_save_string;
12017 uint32_t _flags_save_string = ndr->flags;
12018 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12019 if (r->manufacturer_url) {
12020 uint32_t _relative_save_offset;
12021 _relative_save_offset = ndr->offset;
12022 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
12023 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
12024 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
12025 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
12026 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
12027 ndr->offset = _relative_save_offset;
12029 ndr->flags = _flags_save_string;
12032 uint32_t _flags_save_string = ndr->flags;
12033 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12034 if (r->hardware_id) {
12035 uint32_t _relative_save_offset;
12036 _relative_save_offset = ndr->offset;
12037 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
12038 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
12039 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
12040 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
12041 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
12042 ndr->offset = _relative_save_offset;
12044 ndr->flags = _flags_save_string;
12047 uint32_t _flags_save_string = ndr->flags;
12048 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12049 if (r->provider) {
12050 uint32_t _relative_save_offset;
12051 _relative_save_offset = ndr->offset;
12052 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
12053 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
12054 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
12055 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
12056 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
12057 ndr->offset = _relative_save_offset;
12059 ndr->flags = _flags_save_string;
12062 return NDR_ERR_SUCCESS;
12065 _PUBLIC_ void ndr_print_spoolss_DriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo6 *r)
12067 ndr_print_struct(ndr, name, "spoolss_DriverInfo6");
12068 ndr->depth++;
12069 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
12070 ndr_print_ptr(ndr, "driver_name", r->driver_name);
12071 ndr->depth++;
12072 if (r->driver_name) {
12073 ndr_print_string(ndr, "driver_name", r->driver_name);
12075 ndr->depth--;
12076 ndr_print_ptr(ndr, "architecture", r->architecture);
12077 ndr->depth++;
12078 if (r->architecture) {
12079 ndr_print_string(ndr, "architecture", r->architecture);
12081 ndr->depth--;
12082 ndr_print_ptr(ndr, "driver_path", r->driver_path);
12083 ndr->depth++;
12084 if (r->driver_path) {
12085 ndr_print_string(ndr, "driver_path", r->driver_path);
12087 ndr->depth--;
12088 ndr_print_ptr(ndr, "data_file", r->data_file);
12089 ndr->depth++;
12090 if (r->data_file) {
12091 ndr_print_string(ndr, "data_file", r->data_file);
12093 ndr->depth--;
12094 ndr_print_ptr(ndr, "config_file", r->config_file);
12095 ndr->depth++;
12096 if (r->config_file) {
12097 ndr_print_string(ndr, "config_file", r->config_file);
12099 ndr->depth--;
12100 ndr_print_ptr(ndr, "help_file", r->help_file);
12101 ndr->depth++;
12102 if (r->help_file) {
12103 ndr_print_string(ndr, "help_file", r->help_file);
12105 ndr->depth--;
12106 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
12107 ndr->depth++;
12108 if (r->dependent_files) {
12109 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
12111 ndr->depth--;
12112 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12113 ndr->depth++;
12114 if (r->monitor_name) {
12115 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12117 ndr->depth--;
12118 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
12119 ndr->depth++;
12120 if (r->default_datatype) {
12121 ndr_print_string(ndr, "default_datatype", r->default_datatype);
12123 ndr->depth--;
12124 ndr_print_ptr(ndr, "previous_names", r->previous_names);
12125 ndr->depth++;
12126 if (r->previous_names) {
12127 ndr_print_string_array(ndr, "previous_names", r->previous_names);
12129 ndr->depth--;
12130 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
12131 ndr_print_hyper(ndr, "driver_version", r->driver_version);
12132 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
12133 ndr->depth++;
12134 if (r->manufacturer_name) {
12135 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
12137 ndr->depth--;
12138 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
12139 ndr->depth++;
12140 if (r->manufacturer_url) {
12141 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
12143 ndr->depth--;
12144 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
12145 ndr->depth++;
12146 if (r->hardware_id) {
12147 ndr_print_string(ndr, "hardware_id", r->hardware_id);
12149 ndr->depth--;
12150 ndr_print_ptr(ndr, "provider", r->provider);
12151 ndr->depth++;
12152 if (r->provider) {
12153 ndr_print_string(ndr, "provider", r->provider);
12155 ndr->depth--;
12156 ndr->depth--;
12159 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6 *r, struct smb_iconv_convenience *ic, int flags)
12161 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo6, ic);
12164 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo8 *r)
12166 if (ndr_flags & NDR_SCALARS) {
12167 NDR_CHECK(ndr_push_align(ndr, 8));
12168 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12170 uint32_t _flags_save_string = ndr->flags;
12171 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12172 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12173 ndr->flags = _flags_save_string;
12176 uint32_t _flags_save_string = ndr->flags;
12177 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12178 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12179 ndr->flags = _flags_save_string;
12182 uint32_t _flags_save_string = ndr->flags;
12183 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12184 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
12185 ndr->flags = _flags_save_string;
12188 uint32_t _flags_save_string = ndr->flags;
12189 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12190 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
12191 ndr->flags = _flags_save_string;
12194 uint32_t _flags_save_string = ndr->flags;
12195 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12196 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12197 ndr->flags = _flags_save_string;
12200 uint32_t _flags_save_string = ndr->flags;
12201 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12202 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
12203 ndr->flags = _flags_save_string;
12206 uint32_t _flags_save_string = ndr->flags;
12207 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12208 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12209 ndr->flags = _flags_save_string;
12212 uint32_t _flags_save_string = ndr->flags;
12213 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12214 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
12215 ndr->flags = _flags_save_string;
12218 uint32_t _flags_save_string_array = ndr->flags;
12219 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12220 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
12221 ndr->flags = _flags_save_string_array;
12224 uint32_t _flags_save_string_array = ndr->flags;
12225 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12226 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
12227 ndr->flags = _flags_save_string_array;
12229 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
12230 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
12232 uint32_t _flags_save_string = ndr->flags;
12233 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12234 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
12235 ndr->flags = _flags_save_string;
12238 uint32_t _flags_save_string = ndr->flags;
12239 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12240 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
12241 ndr->flags = _flags_save_string;
12244 uint32_t _flags_save_string = ndr->flags;
12245 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12246 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
12247 ndr->flags = _flags_save_string;
12250 uint32_t _flags_save_string = ndr->flags;
12251 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12252 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
12253 ndr->flags = _flags_save_string;
12256 uint32_t _flags_save_string = ndr->flags;
12257 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12258 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
12259 ndr->flags = _flags_save_string;
12262 uint32_t _flags_save_string = ndr->flags;
12263 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12264 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->vendor_setup));
12265 ndr->flags = _flags_save_string;
12268 uint32_t _flags_save_string_array = ndr->flags;
12269 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12270 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->color_profiles));
12271 ndr->flags = _flags_save_string_array;
12274 uint32_t _flags_save_string = ndr->flags;
12275 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12276 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_path));
12277 ndr->flags = _flags_save_string;
12279 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
12281 uint32_t _flags_save_string_array = ndr->flags;
12282 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12283 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->core_driver_dependencies));
12284 ndr->flags = _flags_save_string_array;
12286 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
12287 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
12289 if (ndr_flags & NDR_BUFFERS) {
12291 uint32_t _flags_save_string = ndr->flags;
12292 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12293 if (r->driver_name) {
12294 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
12295 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12297 ndr->flags = _flags_save_string;
12300 uint32_t _flags_save_string = ndr->flags;
12301 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12302 if (r->architecture) {
12303 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
12304 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
12306 ndr->flags = _flags_save_string;
12309 uint32_t _flags_save_string = ndr->flags;
12310 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12311 if (r->driver_path) {
12312 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
12313 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
12315 ndr->flags = _flags_save_string;
12318 uint32_t _flags_save_string = ndr->flags;
12319 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12320 if (r->data_file) {
12321 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
12322 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
12324 ndr->flags = _flags_save_string;
12327 uint32_t _flags_save_string = ndr->flags;
12328 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12329 if (r->config_file) {
12330 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
12331 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
12333 ndr->flags = _flags_save_string;
12336 uint32_t _flags_save_string = ndr->flags;
12337 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12338 if (r->help_file) {
12339 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
12340 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
12342 ndr->flags = _flags_save_string;
12345 uint32_t _flags_save_string = ndr->flags;
12346 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12347 if (r->monitor_name) {
12348 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
12349 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12351 ndr->flags = _flags_save_string;
12354 uint32_t _flags_save_string = ndr->flags;
12355 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12356 if (r->default_datatype) {
12357 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
12358 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
12360 ndr->flags = _flags_save_string;
12363 uint32_t _flags_save_string_array = ndr->flags;
12364 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12365 if (r->dependent_files) {
12366 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
12367 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
12369 ndr->flags = _flags_save_string_array;
12372 uint32_t _flags_save_string_array = ndr->flags;
12373 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12374 if (r->previous_names) {
12375 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
12376 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
12378 ndr->flags = _flags_save_string_array;
12381 uint32_t _flags_save_string = ndr->flags;
12382 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12383 if (r->manufacturer_name) {
12384 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
12385 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
12387 ndr->flags = _flags_save_string;
12390 uint32_t _flags_save_string = ndr->flags;
12391 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12392 if (r->manufacturer_url) {
12393 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
12394 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
12396 ndr->flags = _flags_save_string;
12399 uint32_t _flags_save_string = ndr->flags;
12400 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12401 if (r->hardware_id) {
12402 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
12403 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
12405 ndr->flags = _flags_save_string;
12408 uint32_t _flags_save_string = ndr->flags;
12409 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12410 if (r->provider) {
12411 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
12412 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
12414 ndr->flags = _flags_save_string;
12417 uint32_t _flags_save_string = ndr->flags;
12418 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12419 if (r->print_processor) {
12420 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
12421 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
12423 ndr->flags = _flags_save_string;
12426 uint32_t _flags_save_string = ndr->flags;
12427 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12428 if (r->vendor_setup) {
12429 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->vendor_setup));
12430 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->vendor_setup));
12432 ndr->flags = _flags_save_string;
12435 uint32_t _flags_save_string_array = ndr->flags;
12436 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12437 if (r->color_profiles) {
12438 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->color_profiles));
12439 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->color_profiles));
12441 ndr->flags = _flags_save_string_array;
12444 uint32_t _flags_save_string = ndr->flags;
12445 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12446 if (r->inf_path) {
12447 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->inf_path));
12448 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_path));
12450 ndr->flags = _flags_save_string;
12453 uint32_t _flags_save_string_array = ndr->flags;
12454 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12455 if (r->core_driver_dependencies) {
12456 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->core_driver_dependencies));
12457 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->core_driver_dependencies));
12459 ndr->flags = _flags_save_string_array;
12462 return NDR_ERR_SUCCESS;
12465 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo8 *r)
12467 uint32_t _ptr_driver_name;
12468 TALLOC_CTX *_mem_save_driver_name_0;
12469 uint32_t _ptr_architecture;
12470 TALLOC_CTX *_mem_save_architecture_0;
12471 uint32_t _ptr_driver_path;
12472 TALLOC_CTX *_mem_save_driver_path_0;
12473 uint32_t _ptr_data_file;
12474 TALLOC_CTX *_mem_save_data_file_0;
12475 uint32_t _ptr_config_file;
12476 TALLOC_CTX *_mem_save_config_file_0;
12477 uint32_t _ptr_help_file;
12478 TALLOC_CTX *_mem_save_help_file_0;
12479 uint32_t _ptr_monitor_name;
12480 TALLOC_CTX *_mem_save_monitor_name_0;
12481 uint32_t _ptr_default_datatype;
12482 TALLOC_CTX *_mem_save_default_datatype_0;
12483 uint32_t _ptr_dependent_files;
12484 TALLOC_CTX *_mem_save_dependent_files_0;
12485 uint32_t _ptr_previous_names;
12486 TALLOC_CTX *_mem_save_previous_names_0;
12487 uint32_t _ptr_manufacturer_name;
12488 TALLOC_CTX *_mem_save_manufacturer_name_0;
12489 uint32_t _ptr_manufacturer_url;
12490 TALLOC_CTX *_mem_save_manufacturer_url_0;
12491 uint32_t _ptr_hardware_id;
12492 TALLOC_CTX *_mem_save_hardware_id_0;
12493 uint32_t _ptr_provider;
12494 TALLOC_CTX *_mem_save_provider_0;
12495 uint32_t _ptr_print_processor;
12496 TALLOC_CTX *_mem_save_print_processor_0;
12497 uint32_t _ptr_vendor_setup;
12498 TALLOC_CTX *_mem_save_vendor_setup_0;
12499 uint32_t _ptr_color_profiles;
12500 TALLOC_CTX *_mem_save_color_profiles_0;
12501 uint32_t _ptr_inf_path;
12502 TALLOC_CTX *_mem_save_inf_path_0;
12503 uint32_t _ptr_core_driver_dependencies;
12504 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
12505 if (ndr_flags & NDR_SCALARS) {
12506 NDR_CHECK(ndr_pull_align(ndr, 8));
12507 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12509 uint32_t _flags_save_string = ndr->flags;
12510 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12511 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12512 if (_ptr_driver_name) {
12513 NDR_PULL_ALLOC(ndr, r->driver_name);
12514 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12515 } else {
12516 r->driver_name = NULL;
12518 ndr->flags = _flags_save_string;
12521 uint32_t _flags_save_string = ndr->flags;
12522 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12523 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
12524 if (_ptr_architecture) {
12525 NDR_PULL_ALLOC(ndr, r->architecture);
12526 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12527 } else {
12528 r->architecture = NULL;
12530 ndr->flags = _flags_save_string;
12533 uint32_t _flags_save_string = ndr->flags;
12534 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12535 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
12536 if (_ptr_driver_path) {
12537 NDR_PULL_ALLOC(ndr, r->driver_path);
12538 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
12539 } else {
12540 r->driver_path = NULL;
12542 ndr->flags = _flags_save_string;
12545 uint32_t _flags_save_string = ndr->flags;
12546 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12547 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
12548 if (_ptr_data_file) {
12549 NDR_PULL_ALLOC(ndr, r->data_file);
12550 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
12551 } else {
12552 r->data_file = NULL;
12554 ndr->flags = _flags_save_string;
12557 uint32_t _flags_save_string = ndr->flags;
12558 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12559 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
12560 if (_ptr_config_file) {
12561 NDR_PULL_ALLOC(ndr, r->config_file);
12562 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
12563 } else {
12564 r->config_file = NULL;
12566 ndr->flags = _flags_save_string;
12569 uint32_t _flags_save_string = ndr->flags;
12570 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12571 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
12572 if (_ptr_help_file) {
12573 NDR_PULL_ALLOC(ndr, r->help_file);
12574 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
12575 } else {
12576 r->help_file = NULL;
12578 ndr->flags = _flags_save_string;
12581 uint32_t _flags_save_string = ndr->flags;
12582 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12583 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12584 if (_ptr_monitor_name) {
12585 NDR_PULL_ALLOC(ndr, r->monitor_name);
12586 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12587 } else {
12588 r->monitor_name = NULL;
12590 ndr->flags = _flags_save_string;
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_default_datatype));
12596 if (_ptr_default_datatype) {
12597 NDR_PULL_ALLOC(ndr, r->default_datatype);
12598 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
12599 } else {
12600 r->default_datatype = NULL;
12602 ndr->flags = _flags_save_string;
12605 uint32_t _flags_save_string_array = ndr->flags;
12606 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12607 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
12608 if (_ptr_dependent_files) {
12609 NDR_PULL_ALLOC(ndr, r->dependent_files);
12610 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
12611 } else {
12612 r->dependent_files = NULL;
12614 ndr->flags = _flags_save_string_array;
12617 uint32_t _flags_save_string_array = ndr->flags;
12618 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12619 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
12620 if (_ptr_previous_names) {
12621 NDR_PULL_ALLOC(ndr, r->previous_names);
12622 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
12623 } else {
12624 r->previous_names = NULL;
12626 ndr->flags = _flags_save_string_array;
12628 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
12629 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
12631 uint32_t _flags_save_string = ndr->flags;
12632 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12633 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
12634 if (_ptr_manufacturer_name) {
12635 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
12636 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
12637 } else {
12638 r->manufacturer_name = NULL;
12640 ndr->flags = _flags_save_string;
12643 uint32_t _flags_save_string = ndr->flags;
12644 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12645 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
12646 if (_ptr_manufacturer_url) {
12647 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
12648 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
12649 } else {
12650 r->manufacturer_url = NULL;
12652 ndr->flags = _flags_save_string;
12655 uint32_t _flags_save_string = ndr->flags;
12656 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12657 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
12658 if (_ptr_hardware_id) {
12659 NDR_PULL_ALLOC(ndr, r->hardware_id);
12660 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
12661 } else {
12662 r->hardware_id = NULL;
12664 ndr->flags = _flags_save_string;
12667 uint32_t _flags_save_string = ndr->flags;
12668 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12669 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
12670 if (_ptr_provider) {
12671 NDR_PULL_ALLOC(ndr, r->provider);
12672 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
12673 } else {
12674 r->provider = NULL;
12676 ndr->flags = _flags_save_string;
12679 uint32_t _flags_save_string = ndr->flags;
12680 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12681 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
12682 if (_ptr_print_processor) {
12683 NDR_PULL_ALLOC(ndr, r->print_processor);
12684 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
12685 } else {
12686 r->print_processor = NULL;
12688 ndr->flags = _flags_save_string;
12691 uint32_t _flags_save_string = ndr->flags;
12692 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12693 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
12694 if (_ptr_vendor_setup) {
12695 NDR_PULL_ALLOC(ndr, r->vendor_setup);
12696 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->vendor_setup, _ptr_vendor_setup));
12697 } else {
12698 r->vendor_setup = NULL;
12700 ndr->flags = _flags_save_string;
12703 uint32_t _flags_save_string_array = ndr->flags;
12704 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12705 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
12706 if (_ptr_color_profiles) {
12707 NDR_PULL_ALLOC(ndr, r->color_profiles);
12708 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->color_profiles, _ptr_color_profiles));
12709 } else {
12710 r->color_profiles = NULL;
12712 ndr->flags = _flags_save_string_array;
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_inf_path));
12718 if (_ptr_inf_path) {
12719 NDR_PULL_ALLOC(ndr, r->inf_path);
12720 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_path, _ptr_inf_path));
12721 } else {
12722 r->inf_path = NULL;
12724 ndr->flags = _flags_save_string;
12726 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
12728 uint32_t _flags_save_string_array = ndr->flags;
12729 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12730 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
12731 if (_ptr_core_driver_dependencies) {
12732 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
12733 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->core_driver_dependencies, _ptr_core_driver_dependencies));
12734 } else {
12735 r->core_driver_dependencies = NULL;
12737 ndr->flags = _flags_save_string_array;
12739 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
12740 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
12742 if (ndr_flags & NDR_BUFFERS) {
12744 uint32_t _flags_save_string = ndr->flags;
12745 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12746 if (r->driver_name) {
12747 uint32_t _relative_save_offset;
12748 _relative_save_offset = ndr->offset;
12749 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12750 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12751 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12752 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12753 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12754 ndr->offset = _relative_save_offset;
12756 ndr->flags = _flags_save_string;
12759 uint32_t _flags_save_string = ndr->flags;
12760 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12761 if (r->architecture) {
12762 uint32_t _relative_save_offset;
12763 _relative_save_offset = ndr->offset;
12764 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12765 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12766 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12767 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12768 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12769 ndr->offset = _relative_save_offset;
12771 ndr->flags = _flags_save_string;
12774 uint32_t _flags_save_string = ndr->flags;
12775 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12776 if (r->driver_path) {
12777 uint32_t _relative_save_offset;
12778 _relative_save_offset = ndr->offset;
12779 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12780 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12781 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12782 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12783 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
12784 ndr->offset = _relative_save_offset;
12786 ndr->flags = _flags_save_string;
12789 uint32_t _flags_save_string = ndr->flags;
12790 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12791 if (r->data_file) {
12792 uint32_t _relative_save_offset;
12793 _relative_save_offset = ndr->offset;
12794 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12795 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12796 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12797 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12798 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12799 ndr->offset = _relative_save_offset;
12801 ndr->flags = _flags_save_string;
12804 uint32_t _flags_save_string = ndr->flags;
12805 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12806 if (r->config_file) {
12807 uint32_t _relative_save_offset;
12808 _relative_save_offset = ndr->offset;
12809 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12810 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12811 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12812 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12813 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12814 ndr->offset = _relative_save_offset;
12816 ndr->flags = _flags_save_string;
12819 uint32_t _flags_save_string = ndr->flags;
12820 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12821 if (r->help_file) {
12822 uint32_t _relative_save_offset;
12823 _relative_save_offset = ndr->offset;
12824 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
12825 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12826 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
12827 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
12828 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
12829 ndr->offset = _relative_save_offset;
12831 ndr->flags = _flags_save_string;
12834 uint32_t _flags_save_string = ndr->flags;
12835 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12836 if (r->monitor_name) {
12837 uint32_t _relative_save_offset;
12838 _relative_save_offset = ndr->offset;
12839 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12840 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12841 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12842 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12843 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12844 ndr->offset = _relative_save_offset;
12846 ndr->flags = _flags_save_string;
12849 uint32_t _flags_save_string = ndr->flags;
12850 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12851 if (r->default_datatype) {
12852 uint32_t _relative_save_offset;
12853 _relative_save_offset = ndr->offset;
12854 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
12855 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
12856 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
12857 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
12858 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
12859 ndr->offset = _relative_save_offset;
12861 ndr->flags = _flags_save_string;
12864 uint32_t _flags_save_string_array = ndr->flags;
12865 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12866 if (r->dependent_files) {
12867 uint32_t _relative_save_offset;
12868 _relative_save_offset = ndr->offset;
12869 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
12870 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
12871 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
12872 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
12873 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
12874 ndr->offset = _relative_save_offset;
12876 ndr->flags = _flags_save_string_array;
12879 uint32_t _flags_save_string_array = ndr->flags;
12880 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12881 if (r->previous_names) {
12882 uint32_t _relative_save_offset;
12883 _relative_save_offset = ndr->offset;
12884 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
12885 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
12886 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
12887 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
12888 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
12889 ndr->offset = _relative_save_offset;
12891 ndr->flags = _flags_save_string_array;
12894 uint32_t _flags_save_string = ndr->flags;
12895 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12896 if (r->manufacturer_name) {
12897 uint32_t _relative_save_offset;
12898 _relative_save_offset = ndr->offset;
12899 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
12900 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12901 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
12902 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
12903 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
12904 ndr->offset = _relative_save_offset;
12906 ndr->flags = _flags_save_string;
12909 uint32_t _flags_save_string = ndr->flags;
12910 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12911 if (r->manufacturer_url) {
12912 uint32_t _relative_save_offset;
12913 _relative_save_offset = ndr->offset;
12914 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
12915 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
12916 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
12917 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
12918 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
12919 ndr->offset = _relative_save_offset;
12921 ndr->flags = _flags_save_string;
12924 uint32_t _flags_save_string = ndr->flags;
12925 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12926 if (r->hardware_id) {
12927 uint32_t _relative_save_offset;
12928 _relative_save_offset = ndr->offset;
12929 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
12930 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
12931 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
12932 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
12933 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
12934 ndr->offset = _relative_save_offset;
12936 ndr->flags = _flags_save_string;
12939 uint32_t _flags_save_string = ndr->flags;
12940 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12941 if (r->provider) {
12942 uint32_t _relative_save_offset;
12943 _relative_save_offset = ndr->offset;
12944 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
12945 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
12946 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
12947 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
12948 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
12949 ndr->offset = _relative_save_offset;
12951 ndr->flags = _flags_save_string;
12954 uint32_t _flags_save_string = ndr->flags;
12955 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12956 if (r->print_processor) {
12957 uint32_t _relative_save_offset;
12958 _relative_save_offset = ndr->offset;
12959 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
12960 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
12961 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
12962 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
12963 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
12964 ndr->offset = _relative_save_offset;
12966 ndr->flags = _flags_save_string;
12969 uint32_t _flags_save_string = ndr->flags;
12970 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12971 if (r->vendor_setup) {
12972 uint32_t _relative_save_offset;
12973 _relative_save_offset = ndr->offset;
12974 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->vendor_setup));
12975 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
12976 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
12977 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->vendor_setup));
12978 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
12979 ndr->offset = _relative_save_offset;
12981 ndr->flags = _flags_save_string;
12984 uint32_t _flags_save_string_array = ndr->flags;
12985 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12986 if (r->color_profiles) {
12987 uint32_t _relative_save_offset;
12988 _relative_save_offset = ndr->offset;
12989 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->color_profiles));
12990 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
12991 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
12992 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->color_profiles));
12993 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
12994 ndr->offset = _relative_save_offset;
12996 ndr->flags = _flags_save_string_array;
12999 uint32_t _flags_save_string = ndr->flags;
13000 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13001 if (r->inf_path) {
13002 uint32_t _relative_save_offset;
13003 _relative_save_offset = ndr->offset;
13004 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_path));
13005 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
13006 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
13007 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_path));
13008 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
13009 ndr->offset = _relative_save_offset;
13011 ndr->flags = _flags_save_string;
13014 uint32_t _flags_save_string_array = ndr->flags;
13015 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13016 if (r->core_driver_dependencies) {
13017 uint32_t _relative_save_offset;
13018 _relative_save_offset = ndr->offset;
13019 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->core_driver_dependencies));
13020 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
13021 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
13022 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->core_driver_dependencies));
13023 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
13024 ndr->offset = _relative_save_offset;
13026 ndr->flags = _flags_save_string_array;
13029 return NDR_ERR_SUCCESS;
13032 _PUBLIC_ void ndr_print_spoolss_DriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo8 *r)
13034 ndr_print_struct(ndr, name, "spoolss_DriverInfo8");
13035 ndr->depth++;
13036 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13037 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13038 ndr->depth++;
13039 if (r->driver_name) {
13040 ndr_print_string(ndr, "driver_name", r->driver_name);
13042 ndr->depth--;
13043 ndr_print_ptr(ndr, "architecture", r->architecture);
13044 ndr->depth++;
13045 if (r->architecture) {
13046 ndr_print_string(ndr, "architecture", r->architecture);
13048 ndr->depth--;
13049 ndr_print_ptr(ndr, "driver_path", r->driver_path);
13050 ndr->depth++;
13051 if (r->driver_path) {
13052 ndr_print_string(ndr, "driver_path", r->driver_path);
13054 ndr->depth--;
13055 ndr_print_ptr(ndr, "data_file", r->data_file);
13056 ndr->depth++;
13057 if (r->data_file) {
13058 ndr_print_string(ndr, "data_file", r->data_file);
13060 ndr->depth--;
13061 ndr_print_ptr(ndr, "config_file", r->config_file);
13062 ndr->depth++;
13063 if (r->config_file) {
13064 ndr_print_string(ndr, "config_file", r->config_file);
13066 ndr->depth--;
13067 ndr_print_ptr(ndr, "help_file", r->help_file);
13068 ndr->depth++;
13069 if (r->help_file) {
13070 ndr_print_string(ndr, "help_file", r->help_file);
13072 ndr->depth--;
13073 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13074 ndr->depth++;
13075 if (r->monitor_name) {
13076 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13078 ndr->depth--;
13079 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
13080 ndr->depth++;
13081 if (r->default_datatype) {
13082 ndr_print_string(ndr, "default_datatype", r->default_datatype);
13084 ndr->depth--;
13085 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
13086 ndr->depth++;
13087 if (r->dependent_files) {
13088 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
13090 ndr->depth--;
13091 ndr_print_ptr(ndr, "previous_names", r->previous_names);
13092 ndr->depth++;
13093 if (r->previous_names) {
13094 ndr_print_string_array(ndr, "previous_names", r->previous_names);
13096 ndr->depth--;
13097 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
13098 ndr_print_hyper(ndr, "driver_version", r->driver_version);
13099 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
13100 ndr->depth++;
13101 if (r->manufacturer_name) {
13102 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
13104 ndr->depth--;
13105 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
13106 ndr->depth++;
13107 if (r->manufacturer_url) {
13108 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
13110 ndr->depth--;
13111 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
13112 ndr->depth++;
13113 if (r->hardware_id) {
13114 ndr_print_string(ndr, "hardware_id", r->hardware_id);
13116 ndr->depth--;
13117 ndr_print_ptr(ndr, "provider", r->provider);
13118 ndr->depth++;
13119 if (r->provider) {
13120 ndr_print_string(ndr, "provider", r->provider);
13122 ndr->depth--;
13123 ndr_print_ptr(ndr, "print_processor", r->print_processor);
13124 ndr->depth++;
13125 if (r->print_processor) {
13126 ndr_print_string(ndr, "print_processor", r->print_processor);
13128 ndr->depth--;
13129 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
13130 ndr->depth++;
13131 if (r->vendor_setup) {
13132 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
13134 ndr->depth--;
13135 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
13136 ndr->depth++;
13137 if (r->color_profiles) {
13138 ndr_print_string_array(ndr, "color_profiles", r->color_profiles);
13140 ndr->depth--;
13141 ndr_print_ptr(ndr, "inf_path", r->inf_path);
13142 ndr->depth++;
13143 if (r->inf_path) {
13144 ndr_print_string(ndr, "inf_path", r->inf_path);
13146 ndr->depth--;
13147 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
13148 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
13149 ndr->depth++;
13150 if (r->core_driver_dependencies) {
13151 ndr_print_string_array(ndr, "core_driver_dependencies", r->core_driver_dependencies);
13153 ndr->depth--;
13154 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
13155 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
13156 ndr->depth--;
13159 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8 *r, struct smb_iconv_convenience *ic, int flags)
13161 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo8, ic);
13164 static enum ndr_err_code ndr_push_spoolss_DriverFileType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverFileType r)
13166 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
13167 return NDR_ERR_SUCCESS;
13170 static enum ndr_err_code ndr_pull_spoolss_DriverFileType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverFileType *r)
13172 uint32_t v;
13173 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
13174 *r = v;
13175 return NDR_ERR_SUCCESS;
13178 _PUBLIC_ void ndr_print_spoolss_DriverFileType(struct ndr_print *ndr, const char *name, enum spoolss_DriverFileType r)
13180 const char *val = NULL;
13182 switch (r) {
13183 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING: val = "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
13184 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION: val = "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
13185 case SPOOLSS_DRIVER_FILE_TYPE_DATA: val = "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
13186 case SPOOLSS_DRIVER_FILE_TYPE_HELP: val = "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
13187 case SPOOLSS_DRIVER_FILE_TYPE_OTHER: val = "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
13189 ndr_print_enum(ndr, name, "ENUM", val, r);
13192 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverFileInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverFileInfo *r)
13194 if (ndr_flags & NDR_SCALARS) {
13195 NDR_CHECK(ndr_push_align(ndr, 4));
13197 uint32_t _flags_save_string = ndr->flags;
13198 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13199 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->file_name));
13200 ndr->flags = _flags_save_string;
13202 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr, NDR_SCALARS, r->file_type));
13203 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->file_version));
13205 if (ndr_flags & NDR_BUFFERS) {
13207 uint32_t _flags_save_string = ndr->flags;
13208 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13209 if (r->file_name) {
13210 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->file_name));
13211 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->file_name));
13213 ndr->flags = _flags_save_string;
13216 return NDR_ERR_SUCCESS;
13219 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverFileInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverFileInfo *r)
13221 uint32_t _ptr_file_name;
13222 TALLOC_CTX *_mem_save_file_name_0;
13223 if (ndr_flags & NDR_SCALARS) {
13224 NDR_CHECK(ndr_pull_align(ndr, 4));
13226 uint32_t _flags_save_string = ndr->flags;
13227 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13228 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_file_name));
13229 if (_ptr_file_name) {
13230 NDR_PULL_ALLOC(ndr, r->file_name);
13231 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->file_name, _ptr_file_name));
13232 } else {
13233 r->file_name = NULL;
13235 ndr->flags = _flags_save_string;
13237 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr, NDR_SCALARS, &r->file_type));
13238 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->file_version));
13240 if (ndr_flags & NDR_BUFFERS) {
13242 uint32_t _flags_save_string = ndr->flags;
13243 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13244 if (r->file_name) {
13245 uint32_t _relative_save_offset;
13246 _relative_save_offset = ndr->offset;
13247 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->file_name));
13248 _mem_save_file_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13249 NDR_PULL_SET_MEM_CTX(ndr, r->file_name, 0);
13250 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->file_name));
13251 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_file_name_0, 0);
13252 ndr->offset = _relative_save_offset;
13254 ndr->flags = _flags_save_string;
13257 return NDR_ERR_SUCCESS;
13260 _PUBLIC_ void ndr_print_spoolss_DriverFileInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DriverFileInfo *r)
13262 ndr_print_struct(ndr, name, "spoolss_DriverFileInfo");
13263 ndr->depth++;
13264 ndr_print_ptr(ndr, "file_name", r->file_name);
13265 ndr->depth++;
13266 if (r->file_name) {
13267 ndr_print_string(ndr, "file_name", r->file_name);
13269 ndr->depth--;
13270 ndr_print_spoolss_DriverFileType(ndr, "file_type", r->file_type);
13271 ndr_print_uint32(ndr, "file_version", r->file_version);
13272 ndr->depth--;
13275 _PUBLIC_ void ndr_print_spoolss_DriverInfo101(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo101 *r)
13277 uint32_t cntr_file_info_1;
13278 ndr_print_struct(ndr, name, "spoolss_DriverInfo101");
13279 ndr->depth++;
13280 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13281 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13282 ndr->depth++;
13283 if (r->driver_name) {
13284 ndr_print_string(ndr, "driver_name", r->driver_name);
13286 ndr->depth--;
13287 ndr_print_ptr(ndr, "architecture", r->architecture);
13288 ndr->depth++;
13289 if (r->architecture) {
13290 ndr_print_string(ndr, "architecture", r->architecture);
13292 ndr->depth--;
13293 ndr_print_ptr(ndr, "file_info", r->file_info);
13294 ndr->depth++;
13295 if (r->file_info) {
13296 ndr->print(ndr, "%s: ARRAY(%d)", "file_info", (int)r->file_count);
13297 ndr->depth++;
13298 for (cntr_file_info_1=0;cntr_file_info_1<r->file_count;cntr_file_info_1++) {
13299 char *idx_1=NULL;
13300 if (asprintf(&idx_1, "[%d]", cntr_file_info_1) != -1) {
13301 ndr_print_spoolss_DriverFileInfo(ndr, "file_info", &r->file_info[cntr_file_info_1]);
13302 free(idx_1);
13305 ndr->depth--;
13307 ndr->depth--;
13308 ndr_print_uint32(ndr, "file_count", r->file_count);
13309 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13310 ndr->depth++;
13311 if (r->monitor_name) {
13312 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13314 ndr->depth--;
13315 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
13316 ndr->depth++;
13317 if (r->default_datatype) {
13318 ndr_print_string(ndr, "default_datatype", r->default_datatype);
13320 ndr->depth--;
13321 ndr_print_ptr(ndr, "previous_names", r->previous_names);
13322 ndr->depth++;
13323 if (r->previous_names) {
13324 ndr_print_string_array(ndr, "previous_names", r->previous_names);
13326 ndr->depth--;
13327 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
13328 ndr_print_hyper(ndr, "driver_version", r->driver_version);
13329 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
13330 ndr->depth++;
13331 if (r->manufacturer_name) {
13332 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
13334 ndr->depth--;
13335 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
13336 ndr->depth++;
13337 if (r->manufacturer_url) {
13338 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
13340 ndr->depth--;
13341 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
13342 ndr->depth++;
13343 if (r->hardware_id) {
13344 ndr_print_string(ndr, "hardware_id", r->hardware_id);
13346 ndr->depth--;
13347 ndr_print_ptr(ndr, "provider", r->provider);
13348 ndr->depth++;
13349 if (r->provider) {
13350 ndr_print_string(ndr, "provider", r->provider);
13352 ndr->depth--;
13353 ndr->depth--;
13356 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101 *r, struct smb_iconv_convenience *ic, int flags)
13358 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo101, ic);
13361 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverInfo *r)
13363 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
13364 if (ndr_flags & NDR_SCALARS) {
13365 int level = ndr_push_get_switch_value(ndr, r);
13366 switch (level) {
13367 case 1: {
13368 NDR_CHECK(ndr_push_align(ndr, 4));
13369 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13370 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
13371 break; }
13373 case 2: {
13374 NDR_CHECK(ndr_push_align(ndr, 4));
13375 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13376 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
13377 break; }
13379 case 3: {
13380 NDR_CHECK(ndr_push_align(ndr, 4));
13381 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13382 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
13383 break; }
13385 case 4: {
13386 NDR_CHECK(ndr_push_align(ndr, 4));
13387 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13388 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
13389 break; }
13391 case 5: {
13392 NDR_CHECK(ndr_push_align(ndr, 4));
13393 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13394 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
13395 break; }
13397 case 6: {
13398 NDR_CHECK(ndr_push_align(ndr, 8));
13399 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13400 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
13401 break; }
13403 case 8: {
13404 NDR_CHECK(ndr_push_align(ndr, 8));
13405 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13406 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
13407 break; }
13409 case 101: {
13410 NDR_CHECK(ndr_push_align(ndr, 8));
13411 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13412 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
13413 break; }
13415 default: {
13416 break; }
13420 if (ndr_flags & NDR_BUFFERS) {
13421 int level = ndr_push_get_switch_value(ndr, r);
13422 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
13423 switch (level) {
13424 case 1:
13425 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
13426 break;
13428 case 2:
13429 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
13430 break;
13432 case 3:
13433 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
13434 break;
13436 case 4:
13437 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
13438 break;
13440 case 5:
13441 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
13442 break;
13444 case 6:
13445 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
13446 break;
13448 case 8:
13449 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
13450 break;
13452 case 101:
13453 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
13454 break;
13456 default:
13457 break;
13461 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
13462 return NDR_ERR_SUCCESS;
13465 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverInfo *r)
13467 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
13468 int level;
13469 level = ndr_pull_get_switch_value(ndr, r);
13470 if (ndr_flags & NDR_SCALARS) {
13471 switch (level) {
13472 case 1: {
13473 NDR_CHECK(ndr_pull_align(ndr, 4));
13474 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13475 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
13476 break; }
13478 case 2: {
13479 NDR_CHECK(ndr_pull_align(ndr, 4));
13480 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13481 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
13482 break; }
13484 case 3: {
13485 NDR_CHECK(ndr_pull_align(ndr, 4));
13486 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13487 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
13488 break; }
13490 case 4: {
13491 NDR_CHECK(ndr_pull_align(ndr, 4));
13492 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13493 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
13494 break; }
13496 case 5: {
13497 NDR_CHECK(ndr_pull_align(ndr, 4));
13498 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13499 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
13500 break; }
13502 case 6: {
13503 NDR_CHECK(ndr_pull_align(ndr, 8));
13504 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13505 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
13506 break; }
13508 case 8: {
13509 NDR_CHECK(ndr_pull_align(ndr, 8));
13510 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13511 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
13512 break; }
13514 case 101: {
13515 NDR_CHECK(ndr_pull_align(ndr, 8));
13516 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13517 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
13518 break; }
13520 default: {
13521 break; }
13525 if (ndr_flags & NDR_BUFFERS) {
13526 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
13527 switch (level) {
13528 case 1:
13529 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
13530 break;
13532 case 2:
13533 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
13534 break;
13536 case 3:
13537 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
13538 break;
13540 case 4:
13541 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
13542 break;
13544 case 5:
13545 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
13546 break;
13548 case 6:
13549 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
13550 break;
13552 case 8:
13553 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
13554 break;
13556 case 101:
13557 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
13558 break;
13560 default:
13561 break;
13565 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
13566 return NDR_ERR_SUCCESS;
13569 _PUBLIC_ void ndr_print_spoolss_DriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverInfo *r)
13571 int level;
13572 level = ndr_print_get_switch_value(ndr, r);
13573 ndr_print_union(ndr, name, level, "spoolss_DriverInfo");
13574 switch (level) {
13575 case 1:
13576 ndr_print_spoolss_DriverInfo1(ndr, "info1", &r->info1);
13577 break;
13579 case 2:
13580 ndr_print_spoolss_DriverInfo2(ndr, "info2", &r->info2);
13581 break;
13583 case 3:
13584 ndr_print_spoolss_DriverInfo3(ndr, "info3", &r->info3);
13585 break;
13587 case 4:
13588 ndr_print_spoolss_DriverInfo4(ndr, "info4", &r->info4);
13589 break;
13591 case 5:
13592 ndr_print_spoolss_DriverInfo5(ndr, "info5", &r->info5);
13593 break;
13595 case 6:
13596 ndr_print_spoolss_DriverInfo6(ndr, "info6", &r->info6);
13597 break;
13599 case 8:
13600 ndr_print_spoolss_DriverInfo8(ndr, "info8", &r->info8);
13601 break;
13603 case 101:
13604 ndr_print_spoolss_DriverInfo101(ndr, "info101", &r->info101);
13605 break;
13607 default:
13608 break;
13613 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverDirectoryInfo1 *r)
13615 if (ndr_flags & NDR_SCALARS) {
13616 NDR_CHECK(ndr_push_align(ndr, 4));
13618 uint32_t _flags_save_string = ndr->flags;
13619 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13620 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
13621 ndr->flags = _flags_save_string;
13624 if (ndr_flags & NDR_BUFFERS) {
13626 return NDR_ERR_SUCCESS;
13629 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverDirectoryInfo1 *r)
13631 if (ndr_flags & NDR_SCALARS) {
13632 NDR_CHECK(ndr_pull_align(ndr, 4));
13634 uint32_t _flags_save_string = ndr->flags;
13635 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13636 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
13637 ndr->flags = _flags_save_string;
13640 if (ndr_flags & NDR_BUFFERS) {
13642 return NDR_ERR_SUCCESS;
13645 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverDirectoryInfo1 *r)
13647 ndr_print_struct(ndr, name, "spoolss_DriverDirectoryInfo1");
13648 ndr->depth++;
13649 ndr_print_string(ndr, "directory_name", r->directory_name);
13650 ndr->depth--;
13653 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
13655 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo1, ic);
13658 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverDirectoryInfo *r)
13660 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
13661 if (ndr_flags & NDR_SCALARS) {
13662 int level = ndr_push_get_switch_value(ndr, r);
13663 switch (level) {
13664 case 1: {
13665 NDR_CHECK(ndr_push_align(ndr, 4));
13666 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13667 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
13668 break; }
13670 default: {
13671 NDR_CHECK(ndr_push_align(ndr, 4));
13672 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13673 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
13674 break; }
13678 if (ndr_flags & NDR_BUFFERS) {
13679 int level = ndr_push_get_switch_value(ndr, r);
13680 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
13681 switch (level) {
13682 case 1:
13683 break;
13685 default:
13686 break;
13690 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
13691 return NDR_ERR_SUCCESS;
13694 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverDirectoryInfo *r)
13696 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
13697 int level;
13698 level = ndr_pull_get_switch_value(ndr, r);
13699 if (ndr_flags & NDR_SCALARS) {
13700 switch (level) {
13701 case 1: {
13702 NDR_CHECK(ndr_pull_align(ndr, 4));
13703 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13704 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
13705 break; }
13707 default: {
13708 NDR_CHECK(ndr_pull_align(ndr, 4));
13709 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13710 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
13711 break; }
13715 if (ndr_flags & NDR_BUFFERS) {
13716 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
13717 switch (level) {
13718 case 1:
13719 break;
13721 default:
13722 break;
13726 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
13727 return NDR_ERR_SUCCESS;
13730 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverDirectoryInfo *r)
13732 int level;
13733 level = ndr_print_get_switch_value(ndr, r);
13734 ndr_print_union(ndr, name, level, "spoolss_DriverDirectoryInfo");
13735 switch (level) {
13736 case 1:
13737 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
13738 break;
13740 default:
13741 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
13742 break;
13747 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
13749 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo, ic);
13752 static enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorInfo1 *r)
13754 if (ndr_flags & NDR_SCALARS) {
13755 NDR_CHECK(ndr_push_align(ndr, 4));
13757 uint32_t _flags_save_string = ndr->flags;
13758 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13759 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor_name));
13760 ndr->flags = _flags_save_string;
13763 if (ndr_flags & NDR_BUFFERS) {
13765 uint32_t _flags_save_string = ndr->flags;
13766 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13767 if (r->print_processor_name) {
13768 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor_name));
13769 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor_name));
13771 ndr->flags = _flags_save_string;
13774 return NDR_ERR_SUCCESS;
13777 static enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorInfo1 *r)
13779 uint32_t _ptr_print_processor_name;
13780 TALLOC_CTX *_mem_save_print_processor_name_0;
13781 if (ndr_flags & NDR_SCALARS) {
13782 NDR_CHECK(ndr_pull_align(ndr, 4));
13784 uint32_t _flags_save_string = ndr->flags;
13785 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13786 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
13787 if (_ptr_print_processor_name) {
13788 NDR_PULL_ALLOC(ndr, r->print_processor_name);
13789 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor_name, _ptr_print_processor_name));
13790 } else {
13791 r->print_processor_name = NULL;
13793 ndr->flags = _flags_save_string;
13796 if (ndr_flags & NDR_BUFFERS) {
13798 uint32_t _flags_save_string = ndr->flags;
13799 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13800 if (r->print_processor_name) {
13801 uint32_t _relative_save_offset;
13802 _relative_save_offset = ndr->offset;
13803 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor_name));
13804 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13805 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor_name, 0);
13806 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor_name));
13807 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
13808 ndr->offset = _relative_save_offset;
13810 ndr->flags = _flags_save_string;
13813 return NDR_ERR_SUCCESS;
13816 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorInfo1 *r)
13818 ndr_print_struct(ndr, name, "spoolss_PrintProcessorInfo1");
13819 ndr->depth++;
13820 ndr_print_ptr(ndr, "print_processor_name", r->print_processor_name);
13821 ndr->depth++;
13822 if (r->print_processor_name) {
13823 ndr_print_string(ndr, "print_processor_name", r->print_processor_name);
13825 ndr->depth--;
13826 ndr->depth--;
13829 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorInfo *r)
13831 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
13832 if (ndr_flags & NDR_SCALARS) {
13833 int level = ndr_push_get_switch_value(ndr, r);
13834 switch (level) {
13835 case 1: {
13836 NDR_CHECK(ndr_push_align(ndr, 4));
13837 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13838 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
13839 break; }
13841 default: {
13842 break; }
13846 if (ndr_flags & NDR_BUFFERS) {
13847 int level = ndr_push_get_switch_value(ndr, r);
13848 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
13849 switch (level) {
13850 case 1:
13851 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
13852 break;
13854 default:
13855 break;
13859 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
13860 return NDR_ERR_SUCCESS;
13863 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorInfo *r)
13865 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
13866 int level;
13867 level = ndr_pull_get_switch_value(ndr, r);
13868 if (ndr_flags & NDR_SCALARS) {
13869 switch (level) {
13870 case 1: {
13871 NDR_CHECK(ndr_pull_align(ndr, 4));
13872 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13873 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
13874 break; }
13876 default: {
13877 break; }
13881 if (ndr_flags & NDR_BUFFERS) {
13882 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
13883 switch (level) {
13884 case 1:
13885 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
13886 break;
13888 default:
13889 break;
13893 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
13894 return NDR_ERR_SUCCESS;
13897 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorInfo *r)
13899 int level;
13900 level = ndr_print_get_switch_value(ndr, r);
13901 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorInfo");
13902 switch (level) {
13903 case 1:
13904 ndr_print_spoolss_PrintProcessorInfo1(ndr, "info1", &r->info1);
13905 break;
13907 default:
13908 break;
13913 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
13915 if (ndr_flags & NDR_SCALARS) {
13916 NDR_CHECK(ndr_push_align(ndr, 4));
13918 uint32_t _flags_save_string = ndr->flags;
13919 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13920 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
13921 ndr->flags = _flags_save_string;
13924 if (ndr_flags & NDR_BUFFERS) {
13926 return NDR_ERR_SUCCESS;
13929 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorDirectoryInfo1 *r)
13931 if (ndr_flags & NDR_SCALARS) {
13932 NDR_CHECK(ndr_pull_align(ndr, 4));
13934 uint32_t _flags_save_string = ndr->flags;
13935 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13936 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
13937 ndr->flags = _flags_save_string;
13940 if (ndr_flags & NDR_BUFFERS) {
13942 return NDR_ERR_SUCCESS;
13945 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
13947 ndr_print_struct(ndr, name, "spoolss_PrintProcessorDirectoryInfo1");
13948 ndr->depth++;
13949 ndr_print_string(ndr, "directory_name", r->directory_name);
13950 ndr->depth--;
13953 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
13955 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo1, ic);
13958 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorDirectoryInfo *r)
13960 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
13961 if (ndr_flags & NDR_SCALARS) {
13962 int level = ndr_push_get_switch_value(ndr, r);
13963 switch (level) {
13964 case 1: {
13965 NDR_CHECK(ndr_push_align(ndr, 4));
13966 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13967 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
13968 break; }
13970 default: {
13971 NDR_CHECK(ndr_push_align(ndr, 4));
13972 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13973 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
13974 break; }
13978 if (ndr_flags & NDR_BUFFERS) {
13979 int level = ndr_push_get_switch_value(ndr, r);
13980 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
13981 switch (level) {
13982 case 1:
13983 break;
13985 default:
13986 break;
13990 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
13991 return NDR_ERR_SUCCESS;
13994 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorDirectoryInfo *r)
13996 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
13997 int level;
13998 level = ndr_pull_get_switch_value(ndr, r);
13999 if (ndr_flags & NDR_SCALARS) {
14000 switch (level) {
14001 case 1: {
14002 NDR_CHECK(ndr_pull_align(ndr, 4));
14003 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14004 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14005 break; }
14007 default: {
14008 NDR_CHECK(ndr_pull_align(ndr, 4));
14009 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14010 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14011 break; }
14015 if (ndr_flags & NDR_BUFFERS) {
14016 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14017 switch (level) {
14018 case 1:
14019 break;
14021 default:
14022 break;
14026 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14027 return NDR_ERR_SUCCESS;
14030 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorDirectoryInfo *r)
14032 int level;
14033 level = ndr_print_get_switch_value(ndr, r);
14034 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorDirectoryInfo");
14035 switch (level) {
14036 case 1:
14037 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
14038 break;
14040 default:
14041 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
14042 break;
14047 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14049 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo, ic);
14052 static enum ndr_err_code ndr_push_spoolss_DocumentInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DocumentInfo1 *r)
14054 if (ndr_flags & NDR_SCALARS) {
14055 NDR_CHECK(ndr_push_align(ndr, 4));
14056 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
14057 NDR_CHECK(ndr_push_unique_ptr(ndr, r->output_file));
14058 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
14060 if (ndr_flags & NDR_BUFFERS) {
14061 if (r->document_name) {
14062 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
14063 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14064 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
14065 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14067 if (r->output_file) {
14068 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
14069 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14070 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
14071 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->output_file, ndr_charset_length(r->output_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14073 if (r->datatype) {
14074 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
14075 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14076 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
14077 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14080 return NDR_ERR_SUCCESS;
14083 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DocumentInfo1 *r)
14085 uint32_t _ptr_document_name;
14086 TALLOC_CTX *_mem_save_document_name_0;
14087 uint32_t _ptr_output_file;
14088 TALLOC_CTX *_mem_save_output_file_0;
14089 uint32_t _ptr_datatype;
14090 TALLOC_CTX *_mem_save_datatype_0;
14091 if (ndr_flags & NDR_SCALARS) {
14092 NDR_CHECK(ndr_pull_align(ndr, 4));
14093 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
14094 if (_ptr_document_name) {
14095 NDR_PULL_ALLOC(ndr, r->document_name);
14096 } else {
14097 r->document_name = NULL;
14099 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_output_file));
14100 if (_ptr_output_file) {
14101 NDR_PULL_ALLOC(ndr, r->output_file);
14102 } else {
14103 r->output_file = NULL;
14105 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
14106 if (_ptr_datatype) {
14107 NDR_PULL_ALLOC(ndr, r->datatype);
14108 } else {
14109 r->datatype = NULL;
14112 if (ndr_flags & NDR_BUFFERS) {
14113 if (r->document_name) {
14114 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14115 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
14116 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
14117 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
14118 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
14119 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));
14121 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
14122 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
14123 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
14125 if (r->output_file) {
14126 _mem_save_output_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
14127 NDR_PULL_SET_MEM_CTX(ndr, r->output_file, 0);
14128 NDR_CHECK(ndr_pull_array_size(ndr, &r->output_file));
14129 NDR_CHECK(ndr_pull_array_length(ndr, &r->output_file));
14130 if (ndr_get_array_length(ndr, &r->output_file) > ndr_get_array_size(ndr, &r->output_file)) {
14131 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));
14133 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t)));
14134 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->output_file, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t), CH_UTF16));
14135 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_output_file_0, 0);
14137 if (r->datatype) {
14138 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
14139 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
14140 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
14141 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
14142 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
14143 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));
14145 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
14146 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
14147 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
14150 return NDR_ERR_SUCCESS;
14153 _PUBLIC_ void ndr_print_spoolss_DocumentInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DocumentInfo1 *r)
14155 ndr_print_struct(ndr, name, "spoolss_DocumentInfo1");
14156 ndr->depth++;
14157 ndr_print_ptr(ndr, "document_name", r->document_name);
14158 ndr->depth++;
14159 if (r->document_name) {
14160 ndr_print_string(ndr, "document_name", r->document_name);
14162 ndr->depth--;
14163 ndr_print_ptr(ndr, "output_file", r->output_file);
14164 ndr->depth++;
14165 if (r->output_file) {
14166 ndr_print_string(ndr, "output_file", r->output_file);
14168 ndr->depth--;
14169 ndr_print_ptr(ndr, "datatype", r->datatype);
14170 ndr->depth++;
14171 if (r->datatype) {
14172 ndr_print_string(ndr, "datatype", r->datatype);
14174 ndr->depth--;
14175 ndr->depth--;
14178 static enum ndr_err_code ndr_push_spoolss_DocumentInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DocumentInfo *r)
14180 if (ndr_flags & NDR_SCALARS) {
14181 int level = ndr_push_get_switch_value(ndr, r);
14182 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
14183 switch (level) {
14184 case 1: {
14185 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
14186 break; }
14188 case 2: {
14189 break; }
14191 case 3: {
14192 break; }
14194 default: {
14195 break; }
14199 if (ndr_flags & NDR_BUFFERS) {
14200 int level = ndr_push_get_switch_value(ndr, r);
14201 switch (level) {
14202 case 1:
14203 if (r->info1) {
14204 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
14206 break;
14208 case 2:
14209 break;
14211 case 3:
14212 break;
14214 default:
14215 break;
14219 return NDR_ERR_SUCCESS;
14222 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DocumentInfo *r)
14224 int level;
14225 uint32_t _level;
14226 TALLOC_CTX *_mem_save_info1_0;
14227 level = ndr_pull_get_switch_value(ndr, r);
14228 if (ndr_flags & NDR_SCALARS) {
14229 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
14230 if (_level != level) {
14231 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
14233 switch (level) {
14234 case 1: {
14235 uint32_t _ptr_info1;
14236 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
14237 if (_ptr_info1) {
14238 NDR_PULL_ALLOC(ndr, r->info1);
14239 } else {
14240 r->info1 = NULL;
14242 break; }
14244 case 2: {
14245 break; }
14247 case 3: {
14248 break; }
14250 default: {
14251 break; }
14255 if (ndr_flags & NDR_BUFFERS) {
14256 switch (level) {
14257 case 1:
14258 if (r->info1) {
14259 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
14260 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
14261 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
14262 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
14264 break;
14266 case 2:
14267 break;
14269 case 3:
14270 break;
14272 default:
14273 break;
14277 return NDR_ERR_SUCCESS;
14280 _PUBLIC_ void ndr_print_spoolss_DocumentInfo(struct ndr_print *ndr, const char *name, const union spoolss_DocumentInfo *r)
14282 int level;
14283 level = ndr_print_get_switch_value(ndr, r);
14284 ndr_print_union(ndr, name, level, "spoolss_DocumentInfo");
14285 switch (level) {
14286 case 1:
14287 ndr_print_ptr(ndr, "info1", r->info1);
14288 ndr->depth++;
14289 if (r->info1) {
14290 ndr_print_spoolss_DocumentInfo1(ndr, "info1", r->info1);
14292 ndr->depth--;
14293 break;
14295 case 2:
14296 break;
14298 case 3:
14299 break;
14301 default:
14302 break;
14307 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersion(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersion *r)
14309 if (ndr_flags & NDR_SCALARS) {
14310 NDR_CHECK(ndr_push_align(ndr, 4));
14311 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersion(r, ndr->iconv_convenience, ndr->flags)));
14312 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
14313 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
14314 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
14315 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
14317 uint32_t _flags_save_string = ndr->flags;
14318 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14320 struct ndr_push *_ndr_extra_string;
14321 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
14322 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
14323 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
14325 ndr->flags = _flags_save_string;
14328 if (ndr_flags & NDR_BUFFERS) {
14330 return NDR_ERR_SUCCESS;
14333 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersion(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersion *r)
14335 if (ndr_flags & NDR_SCALARS) {
14336 NDR_CHECK(ndr_pull_align(ndr, 4));
14337 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
14338 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
14339 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
14340 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
14341 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
14343 uint32_t _flags_save_string = ndr->flags;
14344 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14346 struct ndr_pull *_ndr_extra_string;
14347 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
14348 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
14349 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
14351 ndr->flags = _flags_save_string;
14354 if (ndr_flags & NDR_BUFFERS) {
14356 return NDR_ERR_SUCCESS;
14359 _PUBLIC_ void ndr_print_spoolss_OSVersion(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersion *r)
14361 ndr_print_struct(ndr, name, "spoolss_OSVersion");
14362 ndr->depth++;
14363 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);
14364 ndr_print_uint32(ndr, "major", r->major);
14365 ndr_print_uint32(ndr, "minor", r->minor);
14366 ndr_print_uint32(ndr, "build", r->build);
14367 ndr_print_uint32(ndr, "unknown", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown);
14368 ndr_print_string(ndr, "extra_string", r->extra_string);
14369 ndr->depth--;
14372 _PUBLIC_ size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion *r, struct smb_iconv_convenience *ic, int flags)
14374 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion, ic);
14377 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersionEx(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersionEx *r)
14379 if (ndr_flags & NDR_SCALARS) {
14380 NDR_CHECK(ndr_push_align(ndr, 4));
14381 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersionEx(r, ndr->iconv_convenience, ndr->flags)));
14382 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
14383 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
14384 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
14385 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
14387 uint32_t _flags_save_string = ndr->flags;
14388 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14390 struct ndr_push *_ndr_extra_string;
14391 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
14392 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
14393 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
14395 ndr->flags = _flags_save_string;
14397 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
14398 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
14400 if (ndr_flags & NDR_BUFFERS) {
14402 return NDR_ERR_SUCCESS;
14405 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersionEx(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersionEx *r)
14407 if (ndr_flags & NDR_SCALARS) {
14408 NDR_CHECK(ndr_pull_align(ndr, 4));
14409 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
14410 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
14411 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
14412 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
14413 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
14415 uint32_t _flags_save_string = ndr->flags;
14416 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14418 struct ndr_pull *_ndr_extra_string;
14419 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
14420 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
14421 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
14423 ndr->flags = _flags_save_string;
14425 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
14426 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
14428 if (ndr_flags & NDR_BUFFERS) {
14430 return NDR_ERR_SUCCESS;
14433 _PUBLIC_ void ndr_print_spoolss_OSVersionEx(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersionEx *r)
14435 ndr_print_struct(ndr, name, "spoolss_OSVersionEx");
14436 ndr->depth++;
14437 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);
14438 ndr_print_uint32(ndr, "major", r->major);
14439 ndr_print_uint32(ndr, "minor", r->minor);
14440 ndr_print_uint32(ndr, "build", r->build);
14441 ndr_print_uint32(ndr, "unknown1", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown1);
14442 ndr_print_string(ndr, "extra_string", r->extra_string);
14443 ndr_print_uint32(ndr, "unknown2", r->unknown2);
14444 ndr_print_uint32(ndr, "unknown3", r->unknown3);
14445 ndr->depth--;
14448 _PUBLIC_ size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx *r, struct smb_iconv_convenience *ic, int flags)
14450 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx, ic);
14453 static enum ndr_err_code ndr_push_spoolss_PrinterDataType(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterDataType r)
14455 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14456 return NDR_ERR_SUCCESS;
14459 static enum ndr_err_code ndr_pull_spoolss_PrinterDataType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterDataType *r)
14461 uint32_t v;
14462 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14463 *r = v;
14464 return NDR_ERR_SUCCESS;
14467 _PUBLIC_ void ndr_print_spoolss_PrinterDataType(struct ndr_print *ndr, const char *name, enum spoolss_PrinterDataType r)
14469 const char *val = NULL;
14471 switch (r) {
14472 case SPOOLSS_PRINTER_DATA_TYPE_NULL: val = "SPOOLSS_PRINTER_DATA_TYPE_NULL"; break;
14473 case SPOOLSS_PRINTER_DATA_TYPE_STRING: val = "SPOOLSS_PRINTER_DATA_TYPE_STRING"; break;
14474 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: val = "SPOOLSS_PRINTER_DATA_TYPE_BINARY"; break;
14475 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: val = "SPOOLSS_PRINTER_DATA_TYPE_UINT32"; break;
14476 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: val = "SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY"; break;
14478 ndr_print_enum(ndr, name, "ENUM", val, r);
14481 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterData *r)
14483 if (ndr_flags & NDR_SCALARS) {
14484 int level = ndr_push_get_switch_value(ndr, r);
14485 switch (level) {
14486 case SPOOLSS_PRINTER_DATA_TYPE_NULL: {
14487 break; }
14489 case SPOOLSS_PRINTER_DATA_TYPE_STRING: {
14491 uint32_t _flags_save_string = ndr->flags;
14492 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14493 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
14494 ndr->flags = _flags_save_string;
14496 break; }
14498 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: {
14500 uint32_t _flags_save_DATA_BLOB = ndr->flags;
14501 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
14502 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
14503 ndr->flags = _flags_save_DATA_BLOB;
14505 break; }
14507 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: {
14508 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
14509 break; }
14511 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: {
14513 uint32_t _flags_save_string_array = ndr->flags;
14514 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14515 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
14516 ndr->flags = _flags_save_string_array;
14518 break; }
14520 default: {
14522 uint32_t _flags_save_DATA_BLOB = ndr->flags;
14523 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
14524 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
14525 ndr->flags = _flags_save_DATA_BLOB;
14527 break; }
14531 if (ndr_flags & NDR_BUFFERS) {
14532 int level = ndr_push_get_switch_value(ndr, r);
14533 switch (level) {
14534 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
14535 break;
14537 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
14538 break;
14540 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
14541 break;
14543 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
14544 break;
14546 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
14547 break;
14549 default:
14550 break;
14554 return NDR_ERR_SUCCESS;
14557 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterData *r)
14559 int level;
14560 level = ndr_pull_get_switch_value(ndr, r);
14561 if (ndr_flags & NDR_SCALARS) {
14562 switch (level) {
14563 case SPOOLSS_PRINTER_DATA_TYPE_NULL: {
14564 break; }
14566 case SPOOLSS_PRINTER_DATA_TYPE_STRING: {
14568 uint32_t _flags_save_string = ndr->flags;
14569 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14570 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
14571 ndr->flags = _flags_save_string;
14573 break; }
14575 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: {
14577 uint32_t _flags_save_DATA_BLOB = ndr->flags;
14578 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
14579 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
14580 ndr->flags = _flags_save_DATA_BLOB;
14582 break; }
14584 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: {
14585 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
14586 break; }
14588 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: {
14590 uint32_t _flags_save_string_array = ndr->flags;
14591 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14592 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
14593 ndr->flags = _flags_save_string_array;
14595 break; }
14597 default: {
14599 uint32_t _flags_save_DATA_BLOB = ndr->flags;
14600 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
14601 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
14602 ndr->flags = _flags_save_DATA_BLOB;
14604 break; }
14608 if (ndr_flags & NDR_BUFFERS) {
14609 switch (level) {
14610 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
14611 break;
14613 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
14614 break;
14616 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
14617 break;
14619 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
14620 break;
14622 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
14623 break;
14625 default:
14626 break;
14630 return NDR_ERR_SUCCESS;
14633 _PUBLIC_ void ndr_print_spoolss_PrinterData(struct ndr_print *ndr, const char *name, const union spoolss_PrinterData *r)
14635 int level;
14636 level = ndr_print_get_switch_value(ndr, r);
14637 ndr_print_union(ndr, name, level, "spoolss_PrinterData");
14638 switch (level) {
14639 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
14640 break;
14642 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
14643 ndr_print_string(ndr, "string", r->string);
14644 break;
14646 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
14647 ndr_print_DATA_BLOB(ndr, "binary", r->binary);
14648 break;
14650 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
14651 ndr_print_uint32(ndr, "value", r->value);
14652 break;
14654 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
14655 ndr_print_string_array(ndr, "string_array", r->string_array);
14656 break;
14658 default:
14659 ndr_print_DATA_BLOB(ndr, "data", r->data);
14660 break;
14665 _PUBLIC_ size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14667 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterData, ic);
14670 static enum ndr_err_code ndr_push_spoolss_FormFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_FormFlags r)
14672 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14673 return NDR_ERR_SUCCESS;
14676 static enum ndr_err_code ndr_pull_spoolss_FormFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_FormFlags *r)
14678 uint32_t v;
14679 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14680 *r = v;
14681 return NDR_ERR_SUCCESS;
14684 _PUBLIC_ void ndr_print_spoolss_FormFlags(struct ndr_print *ndr, const char *name, enum spoolss_FormFlags r)
14686 const char *val = NULL;
14688 switch (r) {
14689 case SPOOLSS_FORM_USER: val = "SPOOLSS_FORM_USER"; break;
14690 case SPOOLSS_FORM_BUILTIN: val = "SPOOLSS_FORM_BUILTIN"; break;
14691 case SPOOLSS_FORM_PRINTER: val = "SPOOLSS_FORM_PRINTER"; break;
14693 ndr_print_enum(ndr, name, "ENUM", val, r);
14696 static enum ndr_err_code ndr_push_spoolss_FormSize(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormSize *r)
14698 if (ndr_flags & NDR_SCALARS) {
14699 NDR_CHECK(ndr_push_align(ndr, 4));
14700 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->width));
14701 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->height));
14703 if (ndr_flags & NDR_BUFFERS) {
14705 return NDR_ERR_SUCCESS;
14708 static enum ndr_err_code ndr_pull_spoolss_FormSize(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormSize *r)
14710 if (ndr_flags & NDR_SCALARS) {
14711 NDR_CHECK(ndr_pull_align(ndr, 4));
14712 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->width));
14713 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->height));
14715 if (ndr_flags & NDR_BUFFERS) {
14717 return NDR_ERR_SUCCESS;
14720 _PUBLIC_ void ndr_print_spoolss_FormSize(struct ndr_print *ndr, const char *name, const struct spoolss_FormSize *r)
14722 ndr_print_struct(ndr, name, "spoolss_FormSize");
14723 ndr->depth++;
14724 ndr_print_uint32(ndr, "width", r->width);
14725 ndr_print_uint32(ndr, "height", r->height);
14726 ndr->depth--;
14729 static enum ndr_err_code ndr_push_spoolss_FormArea(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormArea *r)
14731 if (ndr_flags & NDR_SCALARS) {
14732 NDR_CHECK(ndr_push_align(ndr, 4));
14733 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->left));
14734 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->top));
14735 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->right));
14736 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bottom));
14738 if (ndr_flags & NDR_BUFFERS) {
14740 return NDR_ERR_SUCCESS;
14743 static enum ndr_err_code ndr_pull_spoolss_FormArea(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormArea *r)
14745 if (ndr_flags & NDR_SCALARS) {
14746 NDR_CHECK(ndr_pull_align(ndr, 4));
14747 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->left));
14748 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->top));
14749 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->right));
14750 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bottom));
14752 if (ndr_flags & NDR_BUFFERS) {
14754 return NDR_ERR_SUCCESS;
14757 _PUBLIC_ void ndr_print_spoolss_FormArea(struct ndr_print *ndr, const char *name, const struct spoolss_FormArea *r)
14759 ndr_print_struct(ndr, name, "spoolss_FormArea");
14760 ndr->depth++;
14761 ndr_print_uint32(ndr, "left", r->left);
14762 ndr_print_uint32(ndr, "top", r->top);
14763 ndr_print_uint32(ndr, "right", r->right);
14764 ndr_print_uint32(ndr, "bottom", r->bottom);
14765 ndr->depth--;
14768 static enum ndr_err_code ndr_push_spoolss_FormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo1 *r)
14770 if (ndr_flags & NDR_SCALARS) {
14771 NDR_CHECK(ndr_push_align(ndr, 4));
14772 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
14774 uint32_t _flags_save_string = ndr->flags;
14775 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14776 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
14777 ndr->flags = _flags_save_string;
14779 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
14780 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
14782 if (ndr_flags & NDR_BUFFERS) {
14784 uint32_t _flags_save_string = ndr->flags;
14785 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14786 if (r->form_name) {
14787 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
14788 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
14790 ndr->flags = _flags_save_string;
14793 return NDR_ERR_SUCCESS;
14796 static enum ndr_err_code ndr_pull_spoolss_FormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo1 *r)
14798 uint32_t _ptr_form_name;
14799 TALLOC_CTX *_mem_save_form_name_0;
14800 if (ndr_flags & NDR_SCALARS) {
14801 NDR_CHECK(ndr_pull_align(ndr, 4));
14802 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
14804 uint32_t _flags_save_string = ndr->flags;
14805 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14806 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
14807 if (_ptr_form_name) {
14808 NDR_PULL_ALLOC(ndr, r->form_name);
14809 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
14810 } else {
14811 r->form_name = NULL;
14813 ndr->flags = _flags_save_string;
14815 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
14816 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
14818 if (ndr_flags & NDR_BUFFERS) {
14820 uint32_t _flags_save_string = ndr->flags;
14821 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14822 if (r->form_name) {
14823 uint32_t _relative_save_offset;
14824 _relative_save_offset = ndr->offset;
14825 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
14826 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14827 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
14828 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
14829 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
14830 ndr->offset = _relative_save_offset;
14832 ndr->flags = _flags_save_string;
14835 return NDR_ERR_SUCCESS;
14838 _PUBLIC_ void ndr_print_spoolss_FormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo1 *r)
14840 ndr_print_struct(ndr, name, "spoolss_FormInfo1");
14841 ndr->depth++;
14842 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
14843 ndr_print_ptr(ndr, "form_name", r->form_name);
14844 ndr->depth++;
14845 if (r->form_name) {
14846 ndr_print_string(ndr, "form_name", r->form_name);
14848 ndr->depth--;
14849 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
14850 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
14851 ndr->depth--;
14854 static enum ndr_err_code ndr_push_spoolss_FormStringType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
14856 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14857 return NDR_ERR_SUCCESS;
14860 static enum ndr_err_code ndr_pull_spoolss_FormStringType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
14862 uint32_t v;
14863 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14864 *r = v;
14865 return NDR_ERR_SUCCESS;
14868 _PUBLIC_ void ndr_print_spoolss_FormStringType(struct ndr_print *ndr, const char *name, uint32_t r)
14870 ndr_print_uint32(ndr, name, r);
14871 ndr->depth++;
14872 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE, r);
14873 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL, r);
14874 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR, r);
14875 ndr->depth--;
14878 static enum ndr_err_code ndr_push_spoolss_FormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo2 *r)
14880 if (ndr_flags & NDR_SCALARS) {
14881 NDR_CHECK(ndr_push_align(ndr, 4));
14882 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
14884 uint32_t _flags_save_string = ndr->flags;
14885 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14886 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
14887 ndr->flags = _flags_save_string;
14889 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
14890 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
14892 uint32_t _flags_save_string = ndr->flags;
14893 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
14894 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->keyword));
14895 ndr->flags = _flags_save_string;
14897 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
14899 uint32_t _flags_save_string = ndr->flags;
14900 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14901 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->mui_dll));
14902 ndr->flags = _flags_save_string;
14904 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
14906 uint32_t _flags_save_string = ndr->flags;
14907 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14908 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->display_name));
14909 ndr->flags = _flags_save_string;
14911 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
14913 if (ndr_flags & NDR_BUFFERS) {
14915 uint32_t _flags_save_string = ndr->flags;
14916 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14917 if (r->form_name) {
14918 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
14919 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
14921 ndr->flags = _flags_save_string;
14924 uint32_t _flags_save_string = ndr->flags;
14925 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
14926 if (r->keyword) {
14927 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->keyword));
14928 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->keyword));
14930 ndr->flags = _flags_save_string;
14933 uint32_t _flags_save_string = ndr->flags;
14934 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14935 if (r->mui_dll) {
14936 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->mui_dll));
14937 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mui_dll));
14939 ndr->flags = _flags_save_string;
14942 uint32_t _flags_save_string = ndr->flags;
14943 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14944 if (r->display_name) {
14945 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->display_name));
14946 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->display_name));
14948 ndr->flags = _flags_save_string;
14951 return NDR_ERR_SUCCESS;
14954 static enum ndr_err_code ndr_pull_spoolss_FormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo2 *r)
14956 uint32_t _ptr_form_name;
14957 TALLOC_CTX *_mem_save_form_name_0;
14958 uint32_t _ptr_keyword;
14959 TALLOC_CTX *_mem_save_keyword_0;
14960 uint32_t _ptr_mui_dll;
14961 TALLOC_CTX *_mem_save_mui_dll_0;
14962 uint32_t _ptr_display_name;
14963 TALLOC_CTX *_mem_save_display_name_0;
14964 if (ndr_flags & NDR_SCALARS) {
14965 NDR_CHECK(ndr_pull_align(ndr, 4));
14966 NDR_CHECK(ndr_pull_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_pull_generic_ptr(ndr, &_ptr_form_name));
14971 if (_ptr_form_name) {
14972 NDR_PULL_ALLOC(ndr, r->form_name);
14973 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
14974 } else {
14975 r->form_name = NULL;
14977 ndr->flags = _flags_save_string;
14979 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
14980 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
14982 uint32_t _flags_save_string = ndr->flags;
14983 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
14984 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
14985 if (_ptr_keyword) {
14986 NDR_PULL_ALLOC(ndr, r->keyword);
14987 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->keyword, _ptr_keyword));
14988 } else {
14989 r->keyword = NULL;
14991 ndr->flags = _flags_save_string;
14993 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
14995 uint32_t _flags_save_string = ndr->flags;
14996 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14997 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
14998 if (_ptr_mui_dll) {
14999 NDR_PULL_ALLOC(ndr, r->mui_dll);
15000 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->mui_dll, _ptr_mui_dll));
15001 } else {
15002 r->mui_dll = NULL;
15004 ndr->flags = _flags_save_string;
15006 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
15008 uint32_t _flags_save_string = ndr->flags;
15009 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15010 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
15011 if (_ptr_display_name) {
15012 NDR_PULL_ALLOC(ndr, r->display_name);
15013 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->display_name, _ptr_display_name));
15014 } else {
15015 r->display_name = NULL;
15017 ndr->flags = _flags_save_string;
15019 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
15021 if (ndr_flags & NDR_BUFFERS) {
15023 uint32_t _flags_save_string = ndr->flags;
15024 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15025 if (r->form_name) {
15026 uint32_t _relative_save_offset;
15027 _relative_save_offset = ndr->offset;
15028 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
15029 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15030 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15031 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
15032 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15033 ndr->offset = _relative_save_offset;
15035 ndr->flags = _flags_save_string;
15038 uint32_t _flags_save_string = ndr->flags;
15039 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15040 if (r->keyword) {
15041 uint32_t _relative_save_offset;
15042 _relative_save_offset = ndr->offset;
15043 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->keyword));
15044 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
15045 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
15046 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->keyword));
15047 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
15048 ndr->offset = _relative_save_offset;
15050 ndr->flags = _flags_save_string;
15053 uint32_t _flags_save_string = ndr->flags;
15054 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15055 if (r->mui_dll) {
15056 uint32_t _relative_save_offset;
15057 _relative_save_offset = ndr->offset;
15058 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->mui_dll));
15059 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
15060 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
15061 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mui_dll));
15062 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
15063 ndr->offset = _relative_save_offset;
15065 ndr->flags = _flags_save_string;
15068 uint32_t _flags_save_string = ndr->flags;
15069 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15070 if (r->display_name) {
15071 uint32_t _relative_save_offset;
15072 _relative_save_offset = ndr->offset;
15073 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->display_name));
15074 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15075 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
15076 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->display_name));
15077 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
15078 ndr->offset = _relative_save_offset;
15080 ndr->flags = _flags_save_string;
15083 return NDR_ERR_SUCCESS;
15086 _PUBLIC_ void ndr_print_spoolss_FormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo2 *r)
15088 ndr_print_struct(ndr, name, "spoolss_FormInfo2");
15089 ndr->depth++;
15090 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15091 ndr_print_ptr(ndr, "form_name", r->form_name);
15092 ndr->depth++;
15093 if (r->form_name) {
15094 ndr_print_string(ndr, "form_name", r->form_name);
15096 ndr->depth--;
15097 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15098 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15099 ndr_print_ptr(ndr, "keyword", r->keyword);
15100 ndr->depth++;
15101 if (r->keyword) {
15102 ndr_print_string(ndr, "keyword", r->keyword);
15104 ndr->depth--;
15105 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
15106 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
15107 ndr->depth++;
15108 if (r->mui_dll) {
15109 ndr_print_string(ndr, "mui_dll", r->mui_dll);
15111 ndr->depth--;
15112 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
15113 ndr_print_ptr(ndr, "display_name", r->display_name);
15114 ndr->depth++;
15115 if (r->display_name) {
15116 ndr_print_string(ndr, "display_name", r->display_name);
15118 ndr->depth--;
15119 ndr_print_uint32(ndr, "lang_id", r->lang_id);
15120 ndr->depth--;
15123 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_FormInfo *r)
15125 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
15126 if (ndr_flags & NDR_SCALARS) {
15127 int level = ndr_push_get_switch_value(ndr, r);
15128 switch (level) {
15129 case 1: {
15130 NDR_CHECK(ndr_push_align(ndr, 4));
15131 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15132 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
15133 break; }
15135 case 2: {
15136 NDR_CHECK(ndr_push_align(ndr, 4));
15137 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15138 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
15139 break; }
15141 default: {
15142 break; }
15146 if (ndr_flags & NDR_BUFFERS) {
15147 int level = ndr_push_get_switch_value(ndr, r);
15148 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
15149 switch (level) {
15150 case 1:
15151 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
15152 break;
15154 case 2:
15155 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
15156 break;
15158 default:
15159 break;
15163 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
15164 return NDR_ERR_SUCCESS;
15167 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_FormInfo *r)
15169 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
15170 int level;
15171 level = ndr_pull_get_switch_value(ndr, r);
15172 if (ndr_flags & NDR_SCALARS) {
15173 switch (level) {
15174 case 1: {
15175 NDR_CHECK(ndr_pull_align(ndr, 4));
15176 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15177 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
15178 break; }
15180 case 2: {
15181 NDR_CHECK(ndr_pull_align(ndr, 4));
15182 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15183 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
15184 break; }
15186 default: {
15187 break; }
15191 if (ndr_flags & NDR_BUFFERS) {
15192 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15193 switch (level) {
15194 case 1:
15195 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
15196 break;
15198 case 2:
15199 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
15200 break;
15202 default:
15203 break;
15207 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15208 return NDR_ERR_SUCCESS;
15211 _PUBLIC_ void ndr_print_spoolss_FormInfo(struct ndr_print *ndr, const char *name, const union spoolss_FormInfo *r)
15213 int level;
15214 level = ndr_print_get_switch_value(ndr, r);
15215 ndr_print_union(ndr, name, level, "spoolss_FormInfo");
15216 switch (level) {
15217 case 1:
15218 ndr_print_spoolss_FormInfo1(ndr, "info1", &r->info1);
15219 break;
15221 case 2:
15222 ndr_print_spoolss_FormInfo2(ndr, "info2", &r->info2);
15223 break;
15225 default:
15226 break;
15231 _PUBLIC_ size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15233 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo, ic);
15236 static enum ndr_err_code ndr_push_spoolss_AddFormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo1 *r)
15238 if (ndr_flags & NDR_SCALARS) {
15239 NDR_CHECK(ndr_push_align(ndr, 4));
15240 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15241 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
15242 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15243 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15245 if (ndr_flags & NDR_BUFFERS) {
15246 if (r->form_name) {
15247 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15248 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15249 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15250 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15253 return NDR_ERR_SUCCESS;
15256 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo1 *r)
15258 uint32_t _ptr_form_name;
15259 TALLOC_CTX *_mem_save_form_name_0;
15260 if (ndr_flags & NDR_SCALARS) {
15261 NDR_CHECK(ndr_pull_align(ndr, 4));
15262 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15263 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15264 if (_ptr_form_name) {
15265 NDR_PULL_ALLOC(ndr, r->form_name);
15266 } else {
15267 r->form_name = NULL;
15269 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15270 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15272 if (ndr_flags & NDR_BUFFERS) {
15273 if (r->form_name) {
15274 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15275 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15276 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
15277 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
15278 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
15279 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));
15281 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
15282 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
15283 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15286 return NDR_ERR_SUCCESS;
15289 _PUBLIC_ void ndr_print_spoolss_AddFormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo1 *r)
15291 ndr_print_struct(ndr, name, "spoolss_AddFormInfo1");
15292 ndr->depth++;
15293 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15294 ndr_print_ptr(ndr, "form_name", r->form_name);
15295 ndr->depth++;
15296 if (r->form_name) {
15297 ndr_print_string(ndr, "form_name", r->form_name);
15299 ndr->depth--;
15300 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15301 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15302 ndr->depth--;
15305 static enum ndr_err_code ndr_push_spoolss_AddFormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo2 *r)
15307 if (ndr_flags & NDR_SCALARS) {
15308 NDR_CHECK(ndr_push_align(ndr, 4));
15309 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15310 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
15311 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15312 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15313 NDR_CHECK(ndr_push_unique_ptr(ndr, r->keyword));
15314 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
15315 NDR_CHECK(ndr_push_unique_ptr(ndr, r->mui_dll));
15316 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
15317 NDR_CHECK(ndr_push_unique_ptr(ndr, r->display_name));
15318 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
15320 if (ndr_flags & NDR_BUFFERS) {
15321 if (r->form_name) {
15322 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15323 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15324 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15325 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15327 if (r->keyword) {
15328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
15329 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15330 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
15331 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->keyword, ndr_charset_length(r->keyword, CH_DOS), sizeof(uint8_t), CH_DOS));
15333 if (r->mui_dll) {
15334 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
15335 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15336 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
15337 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->mui_dll, ndr_charset_length(r->mui_dll, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15339 if (r->display_name) {
15340 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
15341 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15342 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
15343 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->display_name, ndr_charset_length(r->display_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15346 return NDR_ERR_SUCCESS;
15349 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo2 *r)
15351 uint32_t _ptr_form_name;
15352 TALLOC_CTX *_mem_save_form_name_0;
15353 uint32_t _ptr_keyword;
15354 TALLOC_CTX *_mem_save_keyword_0;
15355 uint32_t _ptr_mui_dll;
15356 TALLOC_CTX *_mem_save_mui_dll_0;
15357 uint32_t _ptr_display_name;
15358 TALLOC_CTX *_mem_save_display_name_0;
15359 if (ndr_flags & NDR_SCALARS) {
15360 NDR_CHECK(ndr_pull_align(ndr, 4));
15361 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15362 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15363 if (_ptr_form_name) {
15364 NDR_PULL_ALLOC(ndr, r->form_name);
15365 } else {
15366 r->form_name = NULL;
15368 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15369 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15370 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
15371 if (_ptr_keyword) {
15372 NDR_PULL_ALLOC(ndr, r->keyword);
15373 } else {
15374 r->keyword = NULL;
15376 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
15377 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
15378 if (_ptr_mui_dll) {
15379 NDR_PULL_ALLOC(ndr, r->mui_dll);
15380 } else {
15381 r->mui_dll = NULL;
15383 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
15384 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
15385 if (_ptr_display_name) {
15386 NDR_PULL_ALLOC(ndr, r->display_name);
15387 } else {
15388 r->display_name = NULL;
15390 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
15392 if (ndr_flags & NDR_BUFFERS) {
15393 if (r->form_name) {
15394 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15395 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15396 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
15397 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
15398 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
15399 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));
15401 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
15402 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
15403 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15405 if (r->keyword) {
15406 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
15407 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
15408 NDR_CHECK(ndr_pull_array_size(ndr, &r->keyword));
15409 NDR_CHECK(ndr_pull_array_length(ndr, &r->keyword));
15410 if (ndr_get_array_length(ndr, &r->keyword) > ndr_get_array_size(ndr, &r->keyword)) {
15411 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));
15413 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t)));
15414 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->keyword, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t), CH_DOS));
15415 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
15417 if (r->mui_dll) {
15418 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
15419 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
15420 NDR_CHECK(ndr_pull_array_size(ndr, &r->mui_dll));
15421 NDR_CHECK(ndr_pull_array_length(ndr, &r->mui_dll));
15422 if (ndr_get_array_length(ndr, &r->mui_dll) > ndr_get_array_size(ndr, &r->mui_dll)) {
15423 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));
15425 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t)));
15426 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->mui_dll, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t), CH_UTF16));
15427 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
15429 if (r->display_name) {
15430 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15431 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
15432 NDR_CHECK(ndr_pull_array_size(ndr, &r->display_name));
15433 NDR_CHECK(ndr_pull_array_length(ndr, &r->display_name));
15434 if (ndr_get_array_length(ndr, &r->display_name) > ndr_get_array_size(ndr, &r->display_name)) {
15435 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));
15437 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t)));
15438 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->display_name, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t), CH_UTF16));
15439 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
15442 return NDR_ERR_SUCCESS;
15445 _PUBLIC_ void ndr_print_spoolss_AddFormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo2 *r)
15447 ndr_print_struct(ndr, name, "spoolss_AddFormInfo2");
15448 ndr->depth++;
15449 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15450 ndr_print_ptr(ndr, "form_name", r->form_name);
15451 ndr->depth++;
15452 if (r->form_name) {
15453 ndr_print_string(ndr, "form_name", r->form_name);
15455 ndr->depth--;
15456 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15457 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15458 ndr_print_ptr(ndr, "keyword", r->keyword);
15459 ndr->depth++;
15460 if (r->keyword) {
15461 ndr_print_string(ndr, "keyword", r->keyword);
15463 ndr->depth--;
15464 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
15465 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
15466 ndr->depth++;
15467 if (r->mui_dll) {
15468 ndr_print_string(ndr, "mui_dll", r->mui_dll);
15470 ndr->depth--;
15471 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
15472 ndr_print_ptr(ndr, "display_name", r->display_name);
15473 ndr->depth++;
15474 if (r->display_name) {
15475 ndr_print_string(ndr, "display_name", r->display_name);
15477 ndr->depth--;
15478 ndr_print_uint32(ndr, "lang_id", r->lang_id);
15479 ndr->depth--;
15482 static enum ndr_err_code ndr_push_spoolss_AddFormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddFormInfo *r)
15484 if (ndr_flags & NDR_SCALARS) {
15485 int level = ndr_push_get_switch_value(ndr, r);
15486 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
15487 switch (level) {
15488 case 1: {
15489 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
15490 break; }
15492 case 2: {
15493 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
15494 break; }
15496 default:
15497 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
15500 if (ndr_flags & NDR_BUFFERS) {
15501 int level = ndr_push_get_switch_value(ndr, r);
15502 switch (level) {
15503 case 1:
15504 if (r->info1) {
15505 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
15507 break;
15509 case 2:
15510 if (r->info2) {
15511 NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
15513 break;
15515 default:
15516 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
15519 return NDR_ERR_SUCCESS;
15522 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddFormInfo *r)
15524 int level;
15525 uint32_t _level;
15526 TALLOC_CTX *_mem_save_info1_0;
15527 TALLOC_CTX *_mem_save_info2_0;
15528 level = ndr_pull_get_switch_value(ndr, r);
15529 if (ndr_flags & NDR_SCALARS) {
15530 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
15531 if (_level != level) {
15532 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
15534 switch (level) {
15535 case 1: {
15536 uint32_t _ptr_info1;
15537 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
15538 if (_ptr_info1) {
15539 NDR_PULL_ALLOC(ndr, r->info1);
15540 } else {
15541 r->info1 = NULL;
15543 break; }
15545 case 2: {
15546 uint32_t _ptr_info2;
15547 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
15548 if (_ptr_info2) {
15549 NDR_PULL_ALLOC(ndr, r->info2);
15550 } else {
15551 r->info2 = NULL;
15553 break; }
15555 default:
15556 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
15559 if (ndr_flags & NDR_BUFFERS) {
15560 switch (level) {
15561 case 1:
15562 if (r->info1) {
15563 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
15564 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
15565 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
15566 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
15568 break;
15570 case 2:
15571 if (r->info2) {
15572 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
15573 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
15574 NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
15575 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
15577 break;
15579 default:
15580 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
15583 return NDR_ERR_SUCCESS;
15586 _PUBLIC_ void ndr_print_spoolss_AddFormInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddFormInfo *r)
15588 int level;
15589 level = ndr_print_get_switch_value(ndr, r);
15590 ndr_print_union(ndr, name, level, "spoolss_AddFormInfo");
15591 switch (level) {
15592 case 1:
15593 ndr_print_ptr(ndr, "info1", r->info1);
15594 ndr->depth++;
15595 if (r->info1) {
15596 ndr_print_spoolss_AddFormInfo1(ndr, "info1", r->info1);
15598 ndr->depth--;
15599 break;
15601 case 2:
15602 ndr_print_ptr(ndr, "info2", r->info2);
15603 ndr->depth++;
15604 if (r->info2) {
15605 ndr_print_spoolss_AddFormInfo2(ndr, "info2", r->info2);
15607 ndr->depth--;
15608 break;
15610 default:
15611 ndr_print_bad_level(ndr, name, level);
15615 static enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo1 *r)
15617 if (ndr_flags & NDR_SCALARS) {
15618 NDR_CHECK(ndr_push_align(ndr, 4));
15620 uint32_t _flags_save_string = ndr->flags;
15621 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15622 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
15623 ndr->flags = _flags_save_string;
15626 if (ndr_flags & NDR_BUFFERS) {
15628 uint32_t _flags_save_string = ndr->flags;
15629 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15630 if (r->port_name) {
15631 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
15632 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
15634 ndr->flags = _flags_save_string;
15637 return NDR_ERR_SUCCESS;
15640 static enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo1 *r)
15642 uint32_t _ptr_port_name;
15643 TALLOC_CTX *_mem_save_port_name_0;
15644 if (ndr_flags & NDR_SCALARS) {
15645 NDR_CHECK(ndr_pull_align(ndr, 4));
15647 uint32_t _flags_save_string = ndr->flags;
15648 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15649 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
15650 if (_ptr_port_name) {
15651 NDR_PULL_ALLOC(ndr, r->port_name);
15652 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
15653 } else {
15654 r->port_name = NULL;
15656 ndr->flags = _flags_save_string;
15659 if (ndr_flags & NDR_BUFFERS) {
15661 uint32_t _flags_save_string = ndr->flags;
15662 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15663 if (r->port_name) {
15664 uint32_t _relative_save_offset;
15665 _relative_save_offset = ndr->offset;
15666 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
15667 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15668 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
15669 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
15670 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
15671 ndr->offset = _relative_save_offset;
15673 ndr->flags = _flags_save_string;
15676 return NDR_ERR_SUCCESS;
15679 _PUBLIC_ void ndr_print_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo1 *r)
15681 ndr_print_struct(ndr, name, "spoolss_PortInfo1");
15682 ndr->depth++;
15683 ndr_print_ptr(ndr, "port_name", r->port_name);
15684 ndr->depth++;
15685 if (r->port_name) {
15686 ndr_print_string(ndr, "port_name", r->port_name);
15688 ndr->depth--;
15689 ndr->depth--;
15692 static enum ndr_err_code ndr_push_spoolss_PortType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
15694 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
15695 return NDR_ERR_SUCCESS;
15698 static enum ndr_err_code ndr_pull_spoolss_PortType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
15700 uint32_t v;
15701 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
15702 *r = v;
15703 return NDR_ERR_SUCCESS;
15706 _PUBLIC_ void ndr_print_spoolss_PortType(struct ndr_print *ndr, const char *name, uint32_t r)
15708 ndr_print_uint32(ndr, name, r);
15709 ndr->depth++;
15710 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE, r);
15711 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ, r);
15712 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED, r);
15713 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED, r);
15714 ndr->depth--;
15717 static enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo2 *r)
15719 if (ndr_flags & NDR_SCALARS) {
15720 NDR_CHECK(ndr_push_align(ndr, 4));
15722 uint32_t _flags_save_string = ndr->flags;
15723 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15724 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
15725 ndr->flags = _flags_save_string;
15728 uint32_t _flags_save_string = ndr->flags;
15729 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15730 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
15731 ndr->flags = _flags_save_string;
15734 uint32_t _flags_save_string = ndr->flags;
15735 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15736 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
15737 ndr->flags = _flags_save_string;
15739 NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
15740 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
15742 if (ndr_flags & NDR_BUFFERS) {
15744 uint32_t _flags_save_string = ndr->flags;
15745 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15746 if (r->port_name) {
15747 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
15748 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
15750 ndr->flags = _flags_save_string;
15753 uint32_t _flags_save_string = ndr->flags;
15754 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15755 if (r->monitor_name) {
15756 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
15757 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
15759 ndr->flags = _flags_save_string;
15762 uint32_t _flags_save_string = ndr->flags;
15763 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15764 if (r->description) {
15765 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
15766 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
15768 ndr->flags = _flags_save_string;
15771 return NDR_ERR_SUCCESS;
15774 static enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo2 *r)
15776 uint32_t _ptr_port_name;
15777 TALLOC_CTX *_mem_save_port_name_0;
15778 uint32_t _ptr_monitor_name;
15779 TALLOC_CTX *_mem_save_monitor_name_0;
15780 uint32_t _ptr_description;
15781 TALLOC_CTX *_mem_save_description_0;
15782 if (ndr_flags & NDR_SCALARS) {
15783 NDR_CHECK(ndr_pull_align(ndr, 4));
15785 uint32_t _flags_save_string = ndr->flags;
15786 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15787 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
15788 if (_ptr_port_name) {
15789 NDR_PULL_ALLOC(ndr, r->port_name);
15790 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
15791 } else {
15792 r->port_name = NULL;
15794 ndr->flags = _flags_save_string;
15797 uint32_t _flags_save_string = ndr->flags;
15798 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15799 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
15800 if (_ptr_monitor_name) {
15801 NDR_PULL_ALLOC(ndr, r->monitor_name);
15802 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
15803 } else {
15804 r->monitor_name = NULL;
15806 ndr->flags = _flags_save_string;
15809 uint32_t _flags_save_string = ndr->flags;
15810 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15811 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
15812 if (_ptr_description) {
15813 NDR_PULL_ALLOC(ndr, r->description);
15814 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
15815 } else {
15816 r->description = NULL;
15818 ndr->flags = _flags_save_string;
15820 NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
15821 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
15823 if (ndr_flags & NDR_BUFFERS) {
15825 uint32_t _flags_save_string = ndr->flags;
15826 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15827 if (r->port_name) {
15828 uint32_t _relative_save_offset;
15829 _relative_save_offset = ndr->offset;
15830 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
15831 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15832 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
15833 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
15834 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
15835 ndr->offset = _relative_save_offset;
15837 ndr->flags = _flags_save_string;
15840 uint32_t _flags_save_string = ndr->flags;
15841 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15842 if (r->monitor_name) {
15843 uint32_t _relative_save_offset;
15844 _relative_save_offset = ndr->offset;
15845 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
15846 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15847 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
15848 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
15849 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
15850 ndr->offset = _relative_save_offset;
15852 ndr->flags = _flags_save_string;
15855 uint32_t _flags_save_string = ndr->flags;
15856 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15857 if (r->description) {
15858 uint32_t _relative_save_offset;
15859 _relative_save_offset = ndr->offset;
15860 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
15861 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
15862 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
15863 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
15864 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
15865 ndr->offset = _relative_save_offset;
15867 ndr->flags = _flags_save_string;
15870 return NDR_ERR_SUCCESS;
15873 _PUBLIC_ void ndr_print_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo2 *r)
15875 ndr_print_struct(ndr, name, "spoolss_PortInfo2");
15876 ndr->depth++;
15877 ndr_print_ptr(ndr, "port_name", r->port_name);
15878 ndr->depth++;
15879 if (r->port_name) {
15880 ndr_print_string(ndr, "port_name", r->port_name);
15882 ndr->depth--;
15883 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
15884 ndr->depth++;
15885 if (r->monitor_name) {
15886 ndr_print_string(ndr, "monitor_name", r->monitor_name);
15888 ndr->depth--;
15889 ndr_print_ptr(ndr, "description", r->description);
15890 ndr->depth++;
15891 if (r->description) {
15892 ndr_print_string(ndr, "description", r->description);
15894 ndr->depth--;
15895 ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
15896 ndr_print_uint32(ndr, "reserved", r->reserved);
15897 ndr->depth--;
15900 static enum ndr_err_code ndr_push_spoolss_PortStatus(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortStatus r)
15902 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
15903 return NDR_ERR_SUCCESS;
15906 static enum ndr_err_code ndr_pull_spoolss_PortStatus(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortStatus *r)
15908 uint32_t v;
15909 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
15910 *r = v;
15911 return NDR_ERR_SUCCESS;
15914 _PUBLIC_ void ndr_print_spoolss_PortStatus(struct ndr_print *ndr, const char *name, enum spoolss_PortStatus r)
15916 const char *val = NULL;
15918 switch (r) {
15919 case PORT_STATUS_CLEAR: val = "PORT_STATUS_CLEAR"; break;
15920 case PORT_STATUS_OFFLINE: val = "PORT_STATUS_OFFLINE"; break;
15921 case PORT_STATUS_PAPER_JAM: val = "PORT_STATUS_PAPER_JAM"; break;
15922 case PORT_STATUS_PAPER_OUT: val = "PORT_STATUS_PAPER_OUT"; break;
15923 case PORT_STATUS_OUTPUT_BIN_FULL: val = "PORT_STATUS_OUTPUT_BIN_FULL"; break;
15924 case PORT_STATUS_PAPER_PROBLEM: val = "PORT_STATUS_PAPER_PROBLEM"; break;
15925 case PORT_STATUS_NO_TONER: val = "PORT_STATUS_NO_TONER"; break;
15926 case PORT_STATUS_DOOR_OPEN: val = "PORT_STATUS_DOOR_OPEN"; break;
15927 case PORT_STATUS_USER_INTERVENTION: val = "PORT_STATUS_USER_INTERVENTION"; break;
15928 case PORT_STATUS_OUT_OF_MEMORY: val = "PORT_STATUS_OUT_OF_MEMORY"; break;
15929 case PORT_STATUS_TONER_LOW: val = "PORT_STATUS_TONER_LOW"; break;
15930 case PORT_STATUS_WARMING_UP: val = "PORT_STATUS_WARMING_UP"; break;
15931 case PORT_STATUS_POWER_SAVE: val = "PORT_STATUS_POWER_SAVE"; break;
15933 ndr_print_enum(ndr, name, "ENUM", val, r);
15936 static enum ndr_err_code ndr_push_spoolss_PortSeverity(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortSeverity r)
15938 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
15939 return NDR_ERR_SUCCESS;
15942 static enum ndr_err_code ndr_pull_spoolss_PortSeverity(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortSeverity *r)
15944 uint32_t v;
15945 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
15946 *r = v;
15947 return NDR_ERR_SUCCESS;
15950 _PUBLIC_ void ndr_print_spoolss_PortSeverity(struct ndr_print *ndr, const char *name, enum spoolss_PortSeverity r)
15952 const char *val = NULL;
15954 switch (r) {
15955 case PORT_STATUS_TYPE_ERROR: val = "PORT_STATUS_TYPE_ERROR"; break;
15956 case PORT_STATUS_TYPE_WARNING: val = "PORT_STATUS_TYPE_WARNING"; break;
15957 case PORT_STATUS_TYPE_INFO: val = "PORT_STATUS_TYPE_INFO"; break;
15959 ndr_print_enum(ndr, name, "ENUM", val, r);
15962 static enum ndr_err_code ndr_push_spoolss_PortInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo3 *r)
15964 if (ndr_flags & NDR_SCALARS) {
15965 NDR_CHECK(ndr_push_align(ndr, 4));
15966 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr, NDR_SCALARS, r->status));
15968 uint32_t _flags_save_string = ndr->flags;
15969 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15970 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->status_string));
15971 ndr->flags = _flags_save_string;
15973 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr, NDR_SCALARS, r->severity));
15975 if (ndr_flags & NDR_BUFFERS) {
15977 uint32_t _flags_save_string = ndr->flags;
15978 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15979 if (r->status_string) {
15980 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->status_string));
15981 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->status_string));
15983 ndr->flags = _flags_save_string;
15986 return NDR_ERR_SUCCESS;
15989 static enum ndr_err_code ndr_pull_spoolss_PortInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo3 *r)
15991 uint32_t _ptr_status_string;
15992 TALLOC_CTX *_mem_save_status_string_0;
15993 if (ndr_flags & NDR_SCALARS) {
15994 NDR_CHECK(ndr_pull_align(ndr, 4));
15995 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr, NDR_SCALARS, &r->status));
15997 uint32_t _flags_save_string = ndr->flags;
15998 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15999 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_status_string));
16000 if (_ptr_status_string) {
16001 NDR_PULL_ALLOC(ndr, r->status_string);
16002 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->status_string, _ptr_status_string));
16003 } else {
16004 r->status_string = NULL;
16006 ndr->flags = _flags_save_string;
16008 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr, NDR_SCALARS, &r->severity));
16010 if (ndr_flags & NDR_BUFFERS) {
16012 uint32_t _flags_save_string = ndr->flags;
16013 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16014 if (r->status_string) {
16015 uint32_t _relative_save_offset;
16016 _relative_save_offset = ndr->offset;
16017 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->status_string));
16018 _mem_save_status_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
16019 NDR_PULL_SET_MEM_CTX(ndr, r->status_string, 0);
16020 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->status_string));
16021 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_string_0, 0);
16022 ndr->offset = _relative_save_offset;
16024 ndr->flags = _flags_save_string;
16027 return NDR_ERR_SUCCESS;
16030 _PUBLIC_ void ndr_print_spoolss_PortInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo3 *r)
16032 ndr_print_struct(ndr, name, "spoolss_PortInfo3");
16033 ndr->depth++;
16034 ndr_print_spoolss_PortStatus(ndr, "status", r->status);
16035 ndr_print_ptr(ndr, "status_string", r->status_string);
16036 ndr->depth++;
16037 if (r->status_string) {
16038 ndr_print_string(ndr, "status_string", r->status_string);
16040 ndr->depth--;
16041 ndr_print_spoolss_PortSeverity(ndr, "severity", r->severity);
16042 ndr->depth--;
16045 static enum ndr_err_code ndr_push_spoolss_PortInfoFF(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfoFF *r)
16047 if (ndr_flags & NDR_SCALARS) {
16048 NDR_CHECK(ndr_push_align(ndr, 4));
16050 uint32_t _flags_save_string = ndr->flags;
16051 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16052 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
16053 ndr->flags = _flags_save_string;
16055 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->monitor_data));
16057 if (ndr_flags & NDR_BUFFERS) {
16059 uint32_t _flags_save_string = ndr->flags;
16060 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16061 if (r->port_name) {
16062 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
16063 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
16065 ndr->flags = _flags_save_string;
16068 return NDR_ERR_SUCCESS;
16071 static enum ndr_err_code ndr_pull_spoolss_PortInfoFF(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfoFF *r)
16073 uint32_t _ptr_port_name;
16074 TALLOC_CTX *_mem_save_port_name_0;
16075 if (ndr_flags & NDR_SCALARS) {
16076 NDR_CHECK(ndr_pull_align(ndr, 4));
16078 uint32_t _flags_save_string = ndr->flags;
16079 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16080 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
16081 if (_ptr_port_name) {
16082 NDR_PULL_ALLOC(ndr, r->port_name);
16083 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
16084 } else {
16085 r->port_name = NULL;
16087 ndr->flags = _flags_save_string;
16089 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->monitor_data));
16091 if (ndr_flags & NDR_BUFFERS) {
16093 uint32_t _flags_save_string = ndr->flags;
16094 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16095 if (r->port_name) {
16096 uint32_t _relative_save_offset;
16097 _relative_save_offset = ndr->offset;
16098 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
16099 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16100 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
16101 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
16102 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
16103 ndr->offset = _relative_save_offset;
16105 ndr->flags = _flags_save_string;
16108 return NDR_ERR_SUCCESS;
16111 _PUBLIC_ void ndr_print_spoolss_PortInfoFF(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfoFF *r)
16113 ndr_print_struct(ndr, name, "spoolss_PortInfoFF");
16114 ndr->depth++;
16115 ndr_print_ptr(ndr, "port_name", r->port_name);
16116 ndr->depth++;
16117 if (r->port_name) {
16118 ndr_print_string(ndr, "port_name", r->port_name);
16120 ndr->depth--;
16121 ndr_print_DATA_BLOB(ndr, "monitor_data", r->monitor_data);
16122 ndr->depth--;
16125 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PortInfo *r)
16127 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16128 if (ndr_flags & NDR_SCALARS) {
16129 int level = ndr_push_get_switch_value(ndr, r);
16130 switch (level) {
16131 case 1: {
16132 NDR_CHECK(ndr_push_align(ndr, 4));
16133 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16134 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
16135 break; }
16137 case 2: {
16138 NDR_CHECK(ndr_push_align(ndr, 4));
16139 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16140 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
16141 break; }
16143 case 3: {
16144 NDR_CHECK(ndr_push_align(ndr, 4));
16145 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16146 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
16147 break; }
16149 case 0xff: {
16150 NDR_CHECK(ndr_push_align(ndr, 4));
16151 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16152 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
16153 break; }
16155 default: {
16156 break; }
16160 if (ndr_flags & NDR_BUFFERS) {
16161 int level = ndr_push_get_switch_value(ndr, r);
16162 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16163 switch (level) {
16164 case 1:
16165 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
16166 break;
16168 case 2:
16169 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
16170 break;
16172 case 3:
16173 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
16174 break;
16176 case 0xff:
16177 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
16178 break;
16180 default:
16181 break;
16185 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16186 return NDR_ERR_SUCCESS;
16189 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PortInfo *r)
16191 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16192 int level;
16193 level = ndr_pull_get_switch_value(ndr, r);
16194 if (ndr_flags & NDR_SCALARS) {
16195 switch (level) {
16196 case 1: {
16197 NDR_CHECK(ndr_pull_align(ndr, 4));
16198 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16199 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
16200 break; }
16202 case 2: {
16203 NDR_CHECK(ndr_pull_align(ndr, 4));
16204 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16205 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
16206 break; }
16208 case 3: {
16209 NDR_CHECK(ndr_pull_align(ndr, 4));
16210 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16211 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
16212 break; }
16214 case 0xff: {
16215 NDR_CHECK(ndr_pull_align(ndr, 4));
16216 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16217 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
16218 break; }
16220 default: {
16221 break; }
16225 if (ndr_flags & NDR_BUFFERS) {
16226 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16227 switch (level) {
16228 case 1:
16229 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
16230 break;
16232 case 2:
16233 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
16234 break;
16236 case 3:
16237 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
16238 break;
16240 case 0xff:
16241 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
16242 break;
16244 default:
16245 break;
16249 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16250 return NDR_ERR_SUCCESS;
16253 _PUBLIC_ void ndr_print_spoolss_PortInfo(struct ndr_print *ndr, const char *name, const union spoolss_PortInfo *r)
16255 int level;
16256 level = ndr_print_get_switch_value(ndr, r);
16257 ndr_print_union(ndr, name, level, "spoolss_PortInfo");
16258 switch (level) {
16259 case 1:
16260 ndr_print_spoolss_PortInfo1(ndr, "info1", &r->info1);
16261 break;
16263 case 2:
16264 ndr_print_spoolss_PortInfo2(ndr, "info2", &r->info2);
16265 break;
16267 case 3:
16268 ndr_print_spoolss_PortInfo3(ndr, "info3", &r->info3);
16269 break;
16271 case 0xff:
16272 ndr_print_spoolss_PortInfoFF(ndr, "infoFF", &r->infoFF);
16273 break;
16275 default:
16276 break;
16281 static enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo1 *r)
16283 if (ndr_flags & NDR_SCALARS) {
16284 NDR_CHECK(ndr_push_align(ndr, 4));
16286 uint32_t _flags_save_string = ndr->flags;
16287 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16288 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
16289 ndr->flags = _flags_save_string;
16292 if (ndr_flags & NDR_BUFFERS) {
16294 uint32_t _flags_save_string = ndr->flags;
16295 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16296 if (r->monitor_name) {
16297 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
16298 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
16300 ndr->flags = _flags_save_string;
16303 return NDR_ERR_SUCCESS;
16306 static enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo1 *r)
16308 uint32_t _ptr_monitor_name;
16309 TALLOC_CTX *_mem_save_monitor_name_0;
16310 if (ndr_flags & NDR_SCALARS) {
16311 NDR_CHECK(ndr_pull_align(ndr, 4));
16313 uint32_t _flags_save_string = ndr->flags;
16314 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16315 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
16316 if (_ptr_monitor_name) {
16317 NDR_PULL_ALLOC(ndr, r->monitor_name);
16318 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
16319 } else {
16320 r->monitor_name = NULL;
16322 ndr->flags = _flags_save_string;
16325 if (ndr_flags & NDR_BUFFERS) {
16327 uint32_t _flags_save_string = ndr->flags;
16328 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16329 if (r->monitor_name) {
16330 uint32_t _relative_save_offset;
16331 _relative_save_offset = ndr->offset;
16332 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
16333 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16334 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
16335 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
16336 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
16337 ndr->offset = _relative_save_offset;
16339 ndr->flags = _flags_save_string;
16342 return NDR_ERR_SUCCESS;
16345 _PUBLIC_ void ndr_print_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo1 *r)
16347 ndr_print_struct(ndr, name, "spoolss_MonitorInfo1");
16348 ndr->depth++;
16349 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
16350 ndr->depth++;
16351 if (r->monitor_name) {
16352 ndr_print_string(ndr, "monitor_name", r->monitor_name);
16354 ndr->depth--;
16355 ndr->depth--;
16358 static enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo2 *r)
16360 if (ndr_flags & NDR_SCALARS) {
16361 NDR_CHECK(ndr_push_align(ndr, 4));
16363 uint32_t _flags_save_string = ndr->flags;
16364 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16365 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
16366 ndr->flags = _flags_save_string;
16369 uint32_t _flags_save_string = ndr->flags;
16370 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16371 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->environment));
16372 ndr->flags = _flags_save_string;
16375 uint32_t _flags_save_string = ndr->flags;
16376 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16377 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name));
16378 ndr->flags = _flags_save_string;
16381 if (ndr_flags & NDR_BUFFERS) {
16383 uint32_t _flags_save_string = ndr->flags;
16384 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16385 if (r->monitor_name) {
16386 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
16387 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
16389 ndr->flags = _flags_save_string;
16392 uint32_t _flags_save_string = ndr->flags;
16393 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16394 if (r->environment) {
16395 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->environment));
16396 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
16398 ndr->flags = _flags_save_string;
16401 uint32_t _flags_save_string = ndr->flags;
16402 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16403 if (r->dll_name) {
16404 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dll_name));
16405 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
16407 ndr->flags = _flags_save_string;
16410 return NDR_ERR_SUCCESS;
16413 static enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo2 *r)
16415 uint32_t _ptr_monitor_name;
16416 TALLOC_CTX *_mem_save_monitor_name_0;
16417 uint32_t _ptr_environment;
16418 TALLOC_CTX *_mem_save_environment_0;
16419 uint32_t _ptr_dll_name;
16420 TALLOC_CTX *_mem_save_dll_name_0;
16421 if (ndr_flags & NDR_SCALARS) {
16422 NDR_CHECK(ndr_pull_align(ndr, 4));
16424 uint32_t _flags_save_string = ndr->flags;
16425 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16426 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
16427 if (_ptr_monitor_name) {
16428 NDR_PULL_ALLOC(ndr, r->monitor_name);
16429 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
16430 } else {
16431 r->monitor_name = NULL;
16433 ndr->flags = _flags_save_string;
16436 uint32_t _flags_save_string = ndr->flags;
16437 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16438 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
16439 if (_ptr_environment) {
16440 NDR_PULL_ALLOC(ndr, r->environment);
16441 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->environment, _ptr_environment));
16442 } else {
16443 r->environment = NULL;
16445 ndr->flags = _flags_save_string;
16448 uint32_t _flags_save_string = ndr->flags;
16449 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16450 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name));
16451 if (_ptr_dll_name) {
16452 NDR_PULL_ALLOC(ndr, r->dll_name);
16453 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dll_name, _ptr_dll_name));
16454 } else {
16455 r->dll_name = NULL;
16457 ndr->flags = _flags_save_string;
16460 if (ndr_flags & NDR_BUFFERS) {
16462 uint32_t _flags_save_string = ndr->flags;
16463 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16464 if (r->monitor_name) {
16465 uint32_t _relative_save_offset;
16466 _relative_save_offset = ndr->offset;
16467 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
16468 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16469 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
16470 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
16471 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
16472 ndr->offset = _relative_save_offset;
16474 ndr->flags = _flags_save_string;
16477 uint32_t _flags_save_string = ndr->flags;
16478 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16479 if (r->environment) {
16480 uint32_t _relative_save_offset;
16481 _relative_save_offset = ndr->offset;
16482 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->environment));
16483 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
16484 NDR_PULL_SET_MEM_CTX(ndr, r->environment, 0);
16485 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
16486 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
16487 ndr->offset = _relative_save_offset;
16489 ndr->flags = _flags_save_string;
16492 uint32_t _flags_save_string = ndr->flags;
16493 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16494 if (r->dll_name) {
16495 uint32_t _relative_save_offset;
16496 _relative_save_offset = ndr->offset;
16497 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dll_name));
16498 _mem_save_dll_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16499 NDR_PULL_SET_MEM_CTX(ndr, r->dll_name, 0);
16500 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
16501 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dll_name_0, 0);
16502 ndr->offset = _relative_save_offset;
16504 ndr->flags = _flags_save_string;
16507 return NDR_ERR_SUCCESS;
16510 _PUBLIC_ void ndr_print_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo2 *r)
16512 ndr_print_struct(ndr, name, "spoolss_MonitorInfo2");
16513 ndr->depth++;
16514 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
16515 ndr->depth++;
16516 if (r->monitor_name) {
16517 ndr_print_string(ndr, "monitor_name", r->monitor_name);
16519 ndr->depth--;
16520 ndr_print_ptr(ndr, "environment", r->environment);
16521 ndr->depth++;
16522 if (r->environment) {
16523 ndr_print_string(ndr, "environment", r->environment);
16525 ndr->depth--;
16526 ndr_print_ptr(ndr, "dll_name", r->dll_name);
16527 ndr->depth++;
16528 if (r->dll_name) {
16529 ndr_print_string(ndr, "dll_name", r->dll_name);
16531 ndr->depth--;
16532 ndr->depth--;
16535 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_MonitorInfo *r)
16537 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16538 if (ndr_flags & NDR_SCALARS) {
16539 int level = ndr_push_get_switch_value(ndr, r);
16540 switch (level) {
16541 case 1: {
16542 NDR_CHECK(ndr_push_align(ndr, 4));
16543 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16544 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
16545 break; }
16547 case 2: {
16548 NDR_CHECK(ndr_push_align(ndr, 4));
16549 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16550 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
16551 break; }
16553 default: {
16554 break; }
16558 if (ndr_flags & NDR_BUFFERS) {
16559 int level = ndr_push_get_switch_value(ndr, r);
16560 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16561 switch (level) {
16562 case 1:
16563 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
16564 break;
16566 case 2:
16567 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
16568 break;
16570 default:
16571 break;
16575 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16576 return NDR_ERR_SUCCESS;
16579 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_MonitorInfo *r)
16581 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16582 int level;
16583 level = ndr_pull_get_switch_value(ndr, r);
16584 if (ndr_flags & NDR_SCALARS) {
16585 switch (level) {
16586 case 1: {
16587 NDR_CHECK(ndr_pull_align(ndr, 4));
16588 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16589 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
16590 break; }
16592 case 2: {
16593 NDR_CHECK(ndr_pull_align(ndr, 4));
16594 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16595 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
16596 break; }
16598 default: {
16599 break; }
16603 if (ndr_flags & NDR_BUFFERS) {
16604 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16605 switch (level) {
16606 case 1:
16607 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
16608 break;
16610 case 2:
16611 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
16612 break;
16614 default:
16615 break;
16619 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16620 return NDR_ERR_SUCCESS;
16623 _PUBLIC_ void ndr_print_spoolss_MonitorInfo(struct ndr_print *ndr, const char *name, const union spoolss_MonitorInfo *r)
16625 int level;
16626 level = ndr_print_get_switch_value(ndr, r);
16627 ndr_print_union(ndr, name, level, "spoolss_MonitorInfo");
16628 switch (level) {
16629 case 1:
16630 ndr_print_spoolss_MonitorInfo1(ndr, "info1", &r->info1);
16631 break;
16633 case 2:
16634 ndr_print_spoolss_MonitorInfo2(ndr, "info2", &r->info2);
16635 break;
16637 default:
16638 break;
16643 static enum ndr_err_code ndr_push_spoolss_PrinterChangeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
16645 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16646 return NDR_ERR_SUCCESS;
16649 static enum ndr_err_code ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
16651 uint32_t v;
16652 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16653 *r = v;
16654 return NDR_ERR_SUCCESS;
16657 _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
16659 ndr_print_uint32(ndr, name, r);
16660 ndr->depth++;
16661 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER, r);
16662 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER, r);
16663 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER, r);
16664 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, r);
16665 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB, r);
16666 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB, r);
16667 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB, r);
16668 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB, r);
16669 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM, r);
16670 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM, r);
16671 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM, r);
16672 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT, r);
16673 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT, r);
16674 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
16675 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
16676 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
16677 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER, r);
16678 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
16679 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
16680 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
16681 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT, r);
16682 ndr->depth--;
16685 static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, int ndr_flags, enum spoolss_Field r)
16687 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
16688 return NDR_ERR_SUCCESS;
16691 static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, int ndr_flags, enum spoolss_Field *r)
16693 uint16_t v;
16694 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
16695 *r = v;
16696 return NDR_ERR_SUCCESS;
16699 _PUBLIC_ void ndr_print_spoolss_Field(struct ndr_print *ndr, const char *name, enum spoolss_Field r)
16701 const char *val = NULL;
16703 switch (r) {
16704 case SPOOLSS_FIELD_SERVER_NAME: val = "SPOOLSS_FIELD_SERVER_NAME"; break;
16705 case SPOOLSS_FIELD_PRINTER_NAME: val = "SPOOLSS_FIELD_PRINTER_NAME"; break;
16706 case SPOOLSS_FIELD_SHARE_NAME: val = "SPOOLSS_FIELD_SHARE_NAME"; break;
16707 case SPOOLSS_FIELD_PORT_NAME: val = "SPOOLSS_FIELD_PORT_NAME"; break;
16708 case SPOOLSS_FIELD_DRIVER_NAME: val = "SPOOLSS_FIELD_DRIVER_NAME"; break;
16709 case SPOOLSS_FIELD_COMMENT: val = "SPOOLSS_FIELD_COMMENT"; break;
16710 case SPOOLSS_FIELD_LOCATION: val = "SPOOLSS_FIELD_LOCATION"; break;
16711 case SPOOLSS_FIELD_DEVMODE: val = "SPOOLSS_FIELD_DEVMODE"; break;
16712 case SPOOLSS_FIELD_SEPFILE: val = "SPOOLSS_FIELD_SEPFILE"; break;
16713 case SPOOLSS_FIELD_PRINT_PROCESSOR: val = "SPOOLSS_FIELD_PRINT_PROCESSOR"; break;
16714 case SPOOLSS_FIELD_PARAMETERS: val = "SPOOLSS_FIELD_PARAMETERS"; break;
16715 case SPOOLSS_FIELD_DATATYPE: val = "SPOOLSS_FIELD_DATATYPE"; break;
16716 case SPOOLSS_FIELD_SECURITY_DESCRIPTOR: val = "SPOOLSS_FIELD_SECURITY_DESCRIPTOR"; break;
16717 case SPOOLSS_FIELD_ATTRIBUTES: val = "SPOOLSS_FIELD_ATTRIBUTES"; break;
16718 case SPOOLSS_FIELD_PRIORITY: val = "SPOOLSS_FIELD_PRIORITY"; break;
16719 case SPOOLSS_FIELD_DEFAULT_PRIORITY: val = "SPOOLSS_FIELD_DEFAULT_PRIORITY"; break;
16720 case SPOOLSS_FIELD_START_TIME: val = "SPOOLSS_FIELD_START_TIME"; break;
16721 case SPOOLSS_FIELD_UNTIL_TIME: val = "SPOOLSS_FIELD_UNTIL_TIME"; break;
16722 case SPOOLSS_FIELD_STATUS: val = "SPOOLSS_FIELD_STATUS"; break;
16723 case SPOOLSS_FIELD_STATUS_STRING: val = "SPOOLSS_FIELD_STATUS_STRING"; break;
16724 case SPOOLSS_FIELD_CJOBS: val = "SPOOLSS_FIELD_CJOBS"; break;
16725 case SPOOLSS_FIELD_AVERAGE_PPM: val = "SPOOLSS_FIELD_AVERAGE_PPM"; break;
16726 case SPOOLSS_FIELD_TOTAL_PAGES: val = "SPOOLSS_FIELD_TOTAL_PAGES"; break;
16727 case SPOOLSS_FIELD_PAGES_PRINTED: val = "SPOOLSS_FIELD_PAGES_PRINTED"; break;
16728 case SPOOLSS_FIELD_TOTAL_BYTES: val = "SPOOLSS_FIELD_TOTAL_BYTES"; break;
16729 case SPOOLSS_FIELD_BYTES_PRINTED: val = "SPOOLSS_FIELD_BYTES_PRINTED"; break;
16731 ndr_print_enum(ndr, name, "ENUM", val, r);
16734 static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyType r)
16736 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
16737 return NDR_ERR_SUCCESS;
16740 static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyType *r)
16742 uint16_t v;
16743 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
16744 *r = v;
16745 return NDR_ERR_SUCCESS;
16748 _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
16750 const char *val = NULL;
16752 switch (r) {
16753 case SPOOLSS_NOTIFY_PRINTER: val = "SPOOLSS_NOTIFY_PRINTER"; break;
16754 case SPOOLSS_NOTIFY_JOB: val = "SPOOLSS_NOTIFY_JOB"; break;
16756 ndr_print_enum(ndr, name, "ENUM", val, r);
16759 static enum ndr_err_code ndr_push_spoolss_NotifyOptionType(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOptionType *r)
16761 uint32_t cntr_fields_1;
16762 if (ndr_flags & NDR_SCALARS) {
16763 NDR_CHECK(ndr_push_align(ndr, 4));
16764 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
16765 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
16766 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
16767 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
16768 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
16769 NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
16771 if (ndr_flags & NDR_BUFFERS) {
16772 if (r->fields) {
16773 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
16774 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
16775 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, r->fields[cntr_fields_1]));
16779 return NDR_ERR_SUCCESS;
16782 static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionType *r)
16784 uint32_t _ptr_fields;
16785 uint32_t cntr_fields_1;
16786 TALLOC_CTX *_mem_save_fields_0;
16787 TALLOC_CTX *_mem_save_fields_1;
16788 if (ndr_flags & NDR_SCALARS) {
16789 NDR_CHECK(ndr_pull_align(ndr, 4));
16790 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
16791 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
16792 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
16793 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
16794 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
16795 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
16796 if (_ptr_fields) {
16797 NDR_PULL_ALLOC(ndr, r->fields);
16798 } else {
16799 r->fields = NULL;
16802 if (ndr_flags & NDR_BUFFERS) {
16803 if (r->fields) {
16804 _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
16805 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
16806 NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
16807 NDR_PULL_ALLOC_N(ndr, r->fields, ndr_get_array_size(ndr, &r->fields));
16808 _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
16809 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
16810 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
16811 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
16813 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
16814 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
16816 if (r->fields) {
16817 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->fields, r->count));
16820 return NDR_ERR_SUCCESS;
16823 _PUBLIC_ void ndr_print_spoolss_NotifyOptionType(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionType *r)
16825 uint32_t cntr_fields_1;
16826 ndr_print_struct(ndr, name, "spoolss_NotifyOptionType");
16827 ndr->depth++;
16828 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
16829 ndr_print_uint16(ndr, "u1", r->u1);
16830 ndr_print_uint32(ndr, "u2", r->u2);
16831 ndr_print_uint32(ndr, "u3", r->u3);
16832 ndr_print_uint32(ndr, "count", r->count);
16833 ndr_print_ptr(ndr, "fields", r->fields);
16834 ndr->depth++;
16835 if (r->fields) {
16836 ndr->print(ndr, "%s: ARRAY(%d)", "fields", (int)r->count);
16837 ndr->depth++;
16838 for (cntr_fields_1=0;cntr_fields_1<r->count;cntr_fields_1++) {
16839 char *idx_1=NULL;
16840 if (asprintf(&idx_1, "[%d]", cntr_fields_1) != -1) {
16841 ndr_print_spoolss_Field(ndr, "fields", r->fields[cntr_fields_1]);
16842 free(idx_1);
16845 ndr->depth--;
16847 ndr->depth--;
16848 ndr->depth--;
16851 static enum ndr_err_code ndr_push_spoolssNotifyOptionFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
16853 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16854 return NDR_ERR_SUCCESS;
16857 static enum ndr_err_code ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
16859 uint32_t v;
16860 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16861 *r = v;
16862 return NDR_ERR_SUCCESS;
16865 _PUBLIC_ void ndr_print_spoolssNotifyOptionFlags(struct ndr_print *ndr, const char *name, uint32_t r)
16867 ndr_print_uint32(ndr, name, r);
16868 ndr->depth++;
16869 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH, r);
16870 ndr->depth--;
16873 static enum ndr_err_code ndr_push_spoolss_NotifyOption(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOption *r)
16875 uint32_t cntr_types_1;
16876 if (ndr_flags & NDR_SCALARS) {
16877 NDR_CHECK(ndr_push_align(ndr, 4));
16878 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
16879 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, r->flags));
16880 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
16881 NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
16883 if (ndr_flags & NDR_BUFFERS) {
16884 if (r->types) {
16885 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
16886 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
16887 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
16889 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
16890 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
16894 return NDR_ERR_SUCCESS;
16897 static enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOption *r)
16899 uint32_t _ptr_types;
16900 uint32_t cntr_types_1;
16901 TALLOC_CTX *_mem_save_types_0;
16902 TALLOC_CTX *_mem_save_types_1;
16903 if (ndr_flags & NDR_SCALARS) {
16904 NDR_CHECK(ndr_pull_align(ndr, 4));
16905 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
16906 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, &r->flags));
16907 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
16908 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
16909 if (_ptr_types) {
16910 NDR_PULL_ALLOC(ndr, r->types);
16911 } else {
16912 r->types = NULL;
16915 if (ndr_flags & NDR_BUFFERS) {
16916 if (r->types) {
16917 _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
16918 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
16919 NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
16920 NDR_PULL_ALLOC_N(ndr, r->types, ndr_get_array_size(ndr, &r->types));
16921 _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
16922 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
16923 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
16924 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
16926 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
16927 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
16929 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
16930 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
16932 if (r->types) {
16933 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
16936 return NDR_ERR_SUCCESS;
16939 _PUBLIC_ void ndr_print_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOption *r)
16941 uint32_t cntr_types_1;
16942 ndr_print_struct(ndr, name, "spoolss_NotifyOption");
16943 ndr->depth++;
16944 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
16945 ndr_print_spoolssNotifyOptionFlags(ndr, "flags", r->flags);
16946 ndr_print_uint32(ndr, "count", r->count);
16947 ndr_print_ptr(ndr, "types", r->types);
16948 ndr->depth++;
16949 if (r->types) {
16950 ndr->print(ndr, "%s: ARRAY(%d)", "types", (int)r->count);
16951 ndr->depth++;
16952 for (cntr_types_1=0;cntr_types_1<r->count;cntr_types_1++) {
16953 char *idx_1=NULL;
16954 if (asprintf(&idx_1, "[%d]", cntr_types_1) != -1) {
16955 ndr_print_spoolss_NotifyOptionType(ndr, "types", &r->types[cntr_types_1]);
16956 free(idx_1);
16959 ndr->depth--;
16961 ndr->depth--;
16962 ndr->depth--;
16965 static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyString *r)
16967 if (ndr_flags & NDR_SCALARS) {
16968 NDR_CHECK(ndr_push_align(ndr, 4));
16969 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
16970 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
16972 if (ndr_flags & NDR_BUFFERS) {
16973 if (r->string) {
16974 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
16975 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
16978 return NDR_ERR_SUCCESS;
16981 static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyString *r)
16983 uint32_t _ptr_string;
16984 TALLOC_CTX *_mem_save_string_0;
16985 if (ndr_flags & NDR_SCALARS) {
16986 NDR_CHECK(ndr_pull_align(ndr, 4));
16987 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
16988 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
16989 if (_ptr_string) {
16990 NDR_PULL_ALLOC(ndr, r->string);
16991 } else {
16992 r->string = NULL;
16995 if (ndr_flags & NDR_BUFFERS) {
16996 if (r->string) {
16997 _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
16998 NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
16999 NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
17000 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_size(ndr, &r->string), sizeof(uint16_t), CH_UTF16));
17001 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
17003 if (r->string) {
17004 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size / 2));
17007 return NDR_ERR_SUCCESS;
17010 _PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
17012 ndr_print_struct(ndr, name, "spoolss_NotifyString");
17013 ndr->depth++;
17014 ndr_print_uint32(ndr, "size", r->size);
17015 ndr_print_ptr(ndr, "string", r->string);
17016 ndr->depth++;
17017 if (r->string) {
17018 ndr_print_string(ndr, "string", r->string);
17020 ndr->depth--;
17021 ndr->depth--;
17024 static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyTable r)
17026 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17027 return NDR_ERR_SUCCESS;
17030 static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyTable *r)
17032 uint32_t v;
17033 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17034 *r = v;
17035 return NDR_ERR_SUCCESS;
17038 _PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
17040 const char *val = NULL;
17042 switch (r) {
17043 case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
17044 case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
17045 case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
17046 case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
17047 case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
17049 ndr_print_enum(ndr, name, "ENUM", val, r);
17052 static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int ndr_flags, const union spoolss_NotifyData *r)
17054 if (ndr_flags & NDR_SCALARS) {
17055 int level = ndr_push_get_switch_value(ndr, r);
17056 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
17057 switch (level) {
17058 case 1: {
17059 uint32_t cntr_integer_0;
17060 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
17061 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
17063 break; }
17065 case 2: {
17066 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
17067 break; }
17069 case 3: {
17070 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
17071 break; }
17073 case 4: {
17074 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
17075 break; }
17077 case 5: {
17078 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
17079 break; }
17081 default:
17082 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17085 if (ndr_flags & NDR_BUFFERS) {
17086 int level = ndr_push_get_switch_value(ndr, r);
17087 switch (level) {
17088 case 1:
17089 break;
17091 case 2:
17092 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
17093 break;
17095 case 3:
17096 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
17097 break;
17099 case 4:
17100 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
17101 break;
17103 case 5:
17104 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
17105 break;
17107 default:
17108 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17111 return NDR_ERR_SUCCESS;
17114 static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int ndr_flags, union spoolss_NotifyData *r)
17116 int level;
17117 uint32_t _level;
17118 level = ndr_pull_get_switch_value(ndr, r);
17119 if (ndr_flags & NDR_SCALARS) {
17120 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
17121 if (_level != level) {
17122 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
17124 switch (level) {
17125 case 1: {
17126 uint32_t cntr_integer_0;
17127 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
17128 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
17130 break; }
17132 case 2: {
17133 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
17134 break; }
17136 case 3: {
17137 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
17138 break; }
17140 case 4: {
17141 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
17142 break; }
17144 case 5: {
17145 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
17146 break; }
17148 default:
17149 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17152 if (ndr_flags & NDR_BUFFERS) {
17153 switch (level) {
17154 case 1:
17155 break;
17157 case 2:
17158 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
17159 break;
17161 case 3:
17162 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
17163 break;
17165 case 4:
17166 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
17167 break;
17169 case 5:
17170 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
17171 break;
17173 default:
17174 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17177 return NDR_ERR_SUCCESS;
17180 _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
17182 int level;
17183 uint32_t cntr_integer_0;
17184 level = ndr_print_get_switch_value(ndr, r);
17185 ndr_print_union(ndr, name, level, "spoolss_NotifyData");
17186 switch (level) {
17187 case 1:
17188 ndr->print(ndr, "%s: ARRAY(%d)", "integer", (int)2);
17189 ndr->depth++;
17190 for (cntr_integer_0=0;cntr_integer_0<2;cntr_integer_0++) {
17191 char *idx_0=NULL;
17192 if (asprintf(&idx_0, "[%d]", cntr_integer_0) != -1) {
17193 ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
17194 free(idx_0);
17197 ndr->depth--;
17198 break;
17200 case 2:
17201 ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
17202 break;
17204 case 3:
17205 ndr_print_spoolss_DevmodeContainer(ndr, "devmode", &r->devmode);
17206 break;
17208 case 4:
17209 ndr_print_spoolss_TimeCtr(ndr, "time", &r->time);
17210 break;
17212 case 5:
17213 ndr_print_sec_desc_buf(ndr, "sd", &r->sd);
17214 break;
17216 default:
17217 ndr_print_bad_level(ndr, name, level);
17221 static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Notify *r)
17223 if (ndr_flags & NDR_SCALARS) {
17224 NDR_CHECK(ndr_push_align(ndr, 4));
17225 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
17226 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, r->field));
17227 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr, NDR_SCALARS, r->variable_type));
17228 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
17229 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
17230 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
17232 if (ndr_flags & NDR_BUFFERS) {
17233 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
17235 return NDR_ERR_SUCCESS;
17238 static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Notify *r)
17240 if (ndr_flags & NDR_SCALARS) {
17241 NDR_CHECK(ndr_pull_align(ndr, 4));
17242 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
17243 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
17244 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr, NDR_SCALARS, &r->variable_type));
17245 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
17246 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
17247 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
17249 if (ndr_flags & NDR_BUFFERS) {
17250 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
17252 return NDR_ERR_SUCCESS;
17255 _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
17257 ndr_print_struct(ndr, name, "spoolss_Notify");
17258 ndr->depth++;
17259 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
17260 ndr_print_spoolss_Field(ndr, "field", r->field);
17261 ndr_print_spoolss_NotifyTable(ndr, "variable_type", r->variable_type);
17262 ndr_print_uint32(ndr, "job_id", r->job_id);
17263 ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
17264 ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
17265 ndr->depth--;
17268 static enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyInfo *r)
17270 uint32_t cntr_notifies_0;
17271 if (ndr_flags & NDR_SCALARS) {
17272 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17273 NDR_CHECK(ndr_push_align(ndr, 4));
17274 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
17275 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
17276 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17277 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
17278 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
17281 if (ndr_flags & NDR_BUFFERS) {
17282 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
17283 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
17286 return NDR_ERR_SUCCESS;
17289 static enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyInfo *r)
17291 uint32_t cntr_notifies_0;
17292 TALLOC_CTX *_mem_save_notifies_0;
17293 if (ndr_flags & NDR_SCALARS) {
17294 NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
17295 NDR_CHECK(ndr_pull_align(ndr, 4));
17296 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
17297 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
17298 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
17299 NDR_PULL_ALLOC_N(ndr, r->notifies, ndr_get_array_size(ndr, &r->notifies));
17300 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
17301 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
17302 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
17303 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
17305 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
17306 if (r->notifies) {
17307 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
17310 if (ndr_flags & NDR_BUFFERS) {
17311 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
17312 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
17313 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
17314 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
17316 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
17318 return NDR_ERR_SUCCESS;
17321 _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
17323 uint32_t cntr_notifies_0;
17324 ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
17325 ndr->depth++;
17326 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
17327 ndr_print_uint32(ndr, "flags", r->flags);
17328 ndr_print_uint32(ndr, "count", r->count);
17329 ndr->print(ndr, "%s: ARRAY(%d)", "notifies", (int)r->count);
17330 ndr->depth++;
17331 for (cntr_notifies_0=0;cntr_notifies_0<r->count;cntr_notifies_0++) {
17332 char *idx_0=NULL;
17333 if (asprintf(&idx_0, "[%d]", cntr_notifies_0) != -1) {
17334 ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
17335 free(idx_0);
17338 ndr->depth--;
17339 ndr->depth--;
17342 static enum ndr_err_code ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_ReplyPrinterInfo *r)
17344 if (ndr_flags & NDR_SCALARS) {
17345 int level = ndr_push_get_switch_value(ndr, r);
17346 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
17347 switch (level) {
17348 case 0: {
17349 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
17350 break; }
17352 default:
17353 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17356 if (ndr_flags & NDR_BUFFERS) {
17357 int level = ndr_push_get_switch_value(ndr, r);
17358 switch (level) {
17359 case 0:
17360 if (r->info0) {
17361 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
17363 break;
17365 default:
17366 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17369 return NDR_ERR_SUCCESS;
17372 static enum ndr_err_code ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_ReplyPrinterInfo *r)
17374 int level;
17375 uint32_t _level;
17376 TALLOC_CTX *_mem_save_info0_0;
17377 level = ndr_pull_get_switch_value(ndr, r);
17378 if (ndr_flags & NDR_SCALARS) {
17379 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
17380 if (_level != level) {
17381 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
17383 switch (level) {
17384 case 0: {
17385 uint32_t _ptr_info0;
17386 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
17387 if (_ptr_info0) {
17388 NDR_PULL_ALLOC(ndr, r->info0);
17389 } else {
17390 r->info0 = NULL;
17392 break; }
17394 default:
17395 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17398 if (ndr_flags & NDR_BUFFERS) {
17399 switch (level) {
17400 case 0:
17401 if (r->info0) {
17402 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
17403 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
17404 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
17405 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
17407 break;
17409 default:
17410 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17413 return NDR_ERR_SUCCESS;
17416 _PUBLIC_ void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_ReplyPrinterInfo *r)
17418 int level;
17419 level = ndr_print_get_switch_value(ndr, r);
17420 ndr_print_union(ndr, name, level, "spoolss_ReplyPrinterInfo");
17421 switch (level) {
17422 case 0:
17423 ndr_print_ptr(ndr, "info0", r->info0);
17424 ndr->depth++;
17425 if (r->info0) {
17426 ndr_print_spoolss_NotifyInfo(ndr, "info0", r->info0);
17428 ndr->depth--;
17429 break;
17431 default:
17432 ndr_print_bad_level(ndr, name, level);
17436 static enum ndr_err_code ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
17438 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17439 return NDR_ERR_SUCCESS;
17442 static enum ndr_err_code ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17444 uint32_t v;
17445 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17446 *r = v;
17447 return NDR_ERR_SUCCESS;
17450 _PUBLIC_ void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print *ndr, const char *name, uint32_t r)
17452 ndr_print_uint32(ndr, name, r);
17453 ndr->depth++;
17454 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED, r);
17455 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED, r);
17456 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH, r);
17457 ndr->depth--;
17460 static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel1 *r)
17462 if (ndr_flags & NDR_SCALARS) {
17463 NDR_CHECK(ndr_push_align(ndr, 4));
17464 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
17465 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
17466 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
17467 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
17468 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
17469 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
17470 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
17472 if (ndr_flags & NDR_BUFFERS) {
17473 if (r->client) {
17474 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
17475 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17476 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
17477 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17479 if (r->user) {
17480 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
17481 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17482 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
17483 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17486 return NDR_ERR_SUCCESS;
17489 static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel1 *r)
17491 uint32_t _ptr_client;
17492 TALLOC_CTX *_mem_save_client_0;
17493 uint32_t _ptr_user;
17494 TALLOC_CTX *_mem_save_user_0;
17495 if (ndr_flags & NDR_SCALARS) {
17496 NDR_CHECK(ndr_pull_align(ndr, 4));
17497 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
17498 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
17499 if (_ptr_client) {
17500 NDR_PULL_ALLOC(ndr, r->client);
17501 } else {
17502 r->client = NULL;
17504 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
17505 if (_ptr_user) {
17506 NDR_PULL_ALLOC(ndr, r->user);
17507 } else {
17508 r->user = NULL;
17510 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
17511 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
17512 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
17513 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
17515 if (ndr_flags & NDR_BUFFERS) {
17516 if (r->client) {
17517 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
17518 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
17519 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
17520 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
17521 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
17522 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));
17524 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
17525 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
17526 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
17528 if (r->user) {
17529 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
17530 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
17531 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
17532 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
17533 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
17534 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));
17536 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
17537 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
17538 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
17541 return NDR_ERR_SUCCESS;
17544 _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
17546 ndr_print_struct(ndr, name, "spoolss_UserLevel1");
17547 ndr->depth++;
17548 ndr_print_uint32(ndr, "size", r->size);
17549 ndr_print_ptr(ndr, "client", r->client);
17550 ndr->depth++;
17551 if (r->client) {
17552 ndr_print_string(ndr, "client", r->client);
17554 ndr->depth--;
17555 ndr_print_ptr(ndr, "user", r->user);
17556 ndr->depth++;
17557 if (r->user) {
17558 ndr_print_string(ndr, "user", r->user);
17560 ndr->depth--;
17561 ndr_print_uint32(ndr, "build", r->build);
17562 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
17563 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
17564 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
17565 ndr->depth--;
17568 static enum ndr_err_code ndr_push_spoolss_UserLevel2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel2 *r)
17570 if (ndr_flags & NDR_SCALARS) {
17571 NDR_CHECK(ndr_push_align(ndr, 4));
17572 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->not_used));
17574 if (ndr_flags & NDR_BUFFERS) {
17576 return NDR_ERR_SUCCESS;
17579 static enum ndr_err_code ndr_pull_spoolss_UserLevel2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel2 *r)
17581 if (ndr_flags & NDR_SCALARS) {
17582 NDR_CHECK(ndr_pull_align(ndr, 4));
17583 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->not_used));
17585 if (ndr_flags & NDR_BUFFERS) {
17587 return NDR_ERR_SUCCESS;
17590 _PUBLIC_ void ndr_print_spoolss_UserLevel2(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel2 *r)
17592 ndr_print_struct(ndr, name, "spoolss_UserLevel2");
17593 ndr->depth++;
17594 ndr_print_uint32(ndr, "not_used", r->not_used);
17595 ndr->depth--;
17598 static enum ndr_err_code ndr_push_spoolss_UserLevel3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel3 *r)
17600 if (ndr_flags & NDR_SCALARS) {
17601 NDR_CHECK(ndr_push_align(ndr, 4));
17602 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
17603 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
17604 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size2));
17605 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
17606 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
17607 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
17608 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
17609 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
17610 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
17611 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reserved));
17613 if (ndr_flags & NDR_BUFFERS) {
17614 if (r->client) {
17615 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
17616 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17617 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
17618 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17620 if (r->user) {
17621 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
17622 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17623 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
17624 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17627 return NDR_ERR_SUCCESS;
17630 static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel3 *r)
17632 uint32_t _ptr_client;
17633 TALLOC_CTX *_mem_save_client_0;
17634 uint32_t _ptr_user;
17635 TALLOC_CTX *_mem_save_user_0;
17636 if (ndr_flags & NDR_SCALARS) {
17637 NDR_CHECK(ndr_pull_align(ndr, 4));
17638 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
17639 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
17640 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size2));
17641 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
17642 if (_ptr_client) {
17643 NDR_PULL_ALLOC(ndr, r->client);
17644 } else {
17645 r->client = NULL;
17647 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
17648 if (_ptr_user) {
17649 NDR_PULL_ALLOC(ndr, r->user);
17650 } else {
17651 r->user = NULL;
17653 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
17654 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
17655 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
17656 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
17657 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reserved));
17659 if (ndr_flags & NDR_BUFFERS) {
17660 if (r->client) {
17661 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
17662 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
17663 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
17664 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
17665 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
17666 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));
17668 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
17669 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
17670 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
17672 if (r->user) {
17673 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
17674 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
17675 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
17676 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
17677 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
17678 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));
17680 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
17681 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
17682 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
17685 return NDR_ERR_SUCCESS;
17688 _PUBLIC_ void ndr_print_spoolss_UserLevel3(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel3 *r)
17690 ndr_print_struct(ndr, name, "spoolss_UserLevel3");
17691 ndr->depth++;
17692 ndr_print_uint32(ndr, "size", r->size);
17693 ndr_print_uint32(ndr, "flags", r->flags);
17694 ndr_print_uint32(ndr, "size2", r->size2);
17695 ndr_print_ptr(ndr, "client", r->client);
17696 ndr->depth++;
17697 if (r->client) {
17698 ndr_print_string(ndr, "client", r->client);
17700 ndr->depth--;
17701 ndr_print_ptr(ndr, "user", r->user);
17702 ndr->depth++;
17703 if (r->user) {
17704 ndr_print_string(ndr, "user", r->user);
17706 ndr->depth--;
17707 ndr_print_uint32(ndr, "build", r->build);
17708 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
17709 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
17710 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
17711 ndr_print_udlong(ndr, "reserved", r->reserved);
17712 ndr->depth--;
17715 static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, int ndr_flags, const union spoolss_UserLevel *r)
17717 if (ndr_flags & NDR_SCALARS) {
17718 int level = ndr_push_get_switch_value(ndr, r);
17719 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
17720 switch (level) {
17721 case 1: {
17722 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
17723 break; }
17725 case 2: {
17726 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level2));
17727 break; }
17729 case 3: {
17730 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level3));
17731 break; }
17733 default:
17734 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17737 if (ndr_flags & NDR_BUFFERS) {
17738 int level = ndr_push_get_switch_value(ndr, r);
17739 switch (level) {
17740 case 1:
17741 if (r->level1) {
17742 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
17744 break;
17746 case 2:
17747 if (r->level2) {
17748 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
17750 break;
17752 case 3:
17753 if (r->level3) {
17754 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
17756 break;
17758 default:
17759 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17762 return NDR_ERR_SUCCESS;
17765 static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, int ndr_flags, union spoolss_UserLevel *r)
17767 int level;
17768 uint32_t _level;
17769 TALLOC_CTX *_mem_save_level1_0;
17770 TALLOC_CTX *_mem_save_level2_0;
17771 TALLOC_CTX *_mem_save_level3_0;
17772 level = ndr_pull_get_switch_value(ndr, r);
17773 if (ndr_flags & NDR_SCALARS) {
17774 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
17775 if (_level != level) {
17776 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
17778 switch (level) {
17779 case 1: {
17780 uint32_t _ptr_level1;
17781 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
17782 if (_ptr_level1) {
17783 NDR_PULL_ALLOC(ndr, r->level1);
17784 } else {
17785 r->level1 = NULL;
17787 break; }
17789 case 2: {
17790 uint32_t _ptr_level2;
17791 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
17792 if (_ptr_level2) {
17793 NDR_PULL_ALLOC(ndr, r->level2);
17794 } else {
17795 r->level2 = NULL;
17797 break; }
17799 case 3: {
17800 uint32_t _ptr_level3;
17801 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
17802 if (_ptr_level3) {
17803 NDR_PULL_ALLOC(ndr, r->level3);
17804 } else {
17805 r->level3 = NULL;
17807 break; }
17809 default:
17810 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17813 if (ndr_flags & NDR_BUFFERS) {
17814 switch (level) {
17815 case 1:
17816 if (r->level1) {
17817 _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
17818 NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
17819 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
17820 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
17822 break;
17824 case 2:
17825 if (r->level2) {
17826 _mem_save_level2_0 = NDR_PULL_GET_MEM_CTX(ndr);
17827 NDR_PULL_SET_MEM_CTX(ndr, r->level2, 0);
17828 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
17829 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level2_0, 0);
17831 break;
17833 case 3:
17834 if (r->level3) {
17835 _mem_save_level3_0 = NDR_PULL_GET_MEM_CTX(ndr);
17836 NDR_PULL_SET_MEM_CTX(ndr, r->level3, 0);
17837 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
17838 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level3_0, 0);
17840 break;
17842 default:
17843 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17846 return NDR_ERR_SUCCESS;
17849 _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
17851 int level;
17852 level = ndr_print_get_switch_value(ndr, r);
17853 ndr_print_union(ndr, name, level, "spoolss_UserLevel");
17854 switch (level) {
17855 case 1:
17856 ndr_print_ptr(ndr, "level1", r->level1);
17857 ndr->depth++;
17858 if (r->level1) {
17859 ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
17861 ndr->depth--;
17862 break;
17864 case 2:
17865 ndr_print_ptr(ndr, "level2", r->level2);
17866 ndr->depth++;
17867 if (r->level2) {
17868 ndr_print_spoolss_UserLevel2(ndr, "level2", r->level2);
17870 ndr->depth--;
17871 break;
17873 case 3:
17874 ndr_print_ptr(ndr, "level3", r->level3);
17875 ndr->depth++;
17876 if (r->level3) {
17877 ndr_print_spoolss_UserLevel3(ndr, "level3", r->level3);
17879 ndr->depth--;
17880 break;
17882 default:
17883 ndr_print_bad_level(ndr, name, level);
17887 static enum ndr_err_code ndr_push_spoolss_UserLevelCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevelCtr *r)
17889 if (ndr_flags & NDR_SCALARS) {
17890 NDR_CHECK(ndr_push_align(ndr, 4));
17891 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
17892 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
17893 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
17895 if (ndr_flags & NDR_BUFFERS) {
17896 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
17898 return NDR_ERR_SUCCESS;
17901 static enum ndr_err_code ndr_pull_spoolss_UserLevelCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevelCtr *r)
17903 if (ndr_flags & NDR_SCALARS) {
17904 NDR_CHECK(ndr_pull_align(ndr, 4));
17905 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
17906 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
17907 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
17909 if (ndr_flags & NDR_BUFFERS) {
17910 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
17912 return NDR_ERR_SUCCESS;
17915 _PUBLIC_ void ndr_print_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevelCtr *r)
17917 ndr_print_struct(ndr, name, "spoolss_UserLevelCtr");
17918 ndr->depth++;
17919 ndr_print_uint32(ndr, "level", r->level);
17920 ndr_print_set_switch_value(ndr, &r->user_info, r->level);
17921 ndr_print_spoolss_UserLevel(ndr, "user_info", &r->user_info);
17922 ndr->depth--;
17925 static enum ndr_err_code ndr_push_spoolss_AccessRights(struct ndr_push *ndr, int ndr_flags, uint32_t r)
17927 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17928 return NDR_ERR_SUCCESS;
17931 static enum ndr_err_code ndr_pull_spoolss_AccessRights(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17933 uint32_t v;
17934 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17935 *r = v;
17936 return NDR_ERR_SUCCESS;
17939 _PUBLIC_ void ndr_print_spoolss_AccessRights(struct ndr_print *ndr, const char *name, uint32_t r)
17941 ndr_print_uint32(ndr, name, r);
17942 ndr->depth++;
17943 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER, r);
17944 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE, r);
17945 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER, r);
17946 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE, r);
17947 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER, r);
17948 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ, r);
17949 ndr->depth--;
17952 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
17954 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17955 return NDR_ERR_SUCCESS;
17958 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17960 uint32_t v;
17961 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17962 *r = v;
17963 return NDR_ERR_SUCCESS;
17966 _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
17968 ndr_print_uint32(ndr, name, r);
17969 ndr->depth++;
17970 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
17971 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
17972 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
17973 ndr->depth--;
17976 static enum ndr_err_code ndr_push_spoolss_PortProtocol(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortProtocol r)
17978 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17979 return NDR_ERR_SUCCESS;
17982 static enum ndr_err_code ndr_pull_spoolss_PortProtocol(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortProtocol *r)
17984 uint32_t v;
17985 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17986 *r = v;
17987 return NDR_ERR_SUCCESS;
17990 _PUBLIC_ void ndr_print_spoolss_PortProtocol(struct ndr_print *ndr, const char *name, enum spoolss_PortProtocol r)
17992 const char *val = NULL;
17994 switch (r) {
17995 case PROTOCOL_RAWTCP_TYPE: val = "PROTOCOL_RAWTCP_TYPE"; break;
17996 case PROTOCOL_LPR_TYPE: val = "PROTOCOL_LPR_TYPE"; break;
17998 ndr_print_enum(ndr, name, "ENUM", val, r);
18001 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData1 *r)
18003 if (ndr_flags & NDR_SCALARS) {
18004 NDR_CHECK(ndr_push_align(ndr, 4));
18005 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
18006 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
18007 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
18008 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
18009 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
18010 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
18011 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
18012 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
18013 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
18014 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
18015 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
18016 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
18017 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
18018 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
18019 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
18021 if (ndr_flags & NDR_BUFFERS) {
18023 return NDR_ERR_SUCCESS;
18026 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData1 *r)
18028 if (ndr_flags & NDR_SCALARS) {
18029 NDR_CHECK(ndr_pull_align(ndr, 4));
18030 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
18031 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18032 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
18033 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18034 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
18035 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
18036 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
18037 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
18038 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
18039 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
18040 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
18041 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
18042 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
18043 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
18044 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
18046 if (ndr_flags & NDR_BUFFERS) {
18048 return NDR_ERR_SUCCESS;
18051 _PUBLIC_ void ndr_print_spoolss_PortData1(struct ndr_print *ndr, const char *name, const struct spoolss_PortData1 *r)
18053 ndr_print_struct(ndr, name, "spoolss_PortData1");
18054 ndr->depth++;
18055 ndr_print_string(ndr, "portname", r->portname);
18056 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000001:r->version);
18057 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
18058 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
18059 ndr_print_uint32(ndr, "reserved", r->reserved);
18060 ndr_print_string(ndr, "hostaddress", r->hostaddress);
18061 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
18062 ndr_print_uint32(ndr, "dblspool", r->dblspool);
18063 ndr_print_string(ndr, "queue", r->queue);
18064 ndr_print_string(ndr, "ip_address", r->ip_address);
18065 ndr_print_string(ndr, "hardware_address", r->hardware_address);
18066 ndr_print_string(ndr, "device_type", r->device_type);
18067 ndr_print_uint32(ndr, "port_number", r->port_number);
18068 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
18069 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
18070 ndr->depth--;
18073 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData2 *r)
18075 if (ndr_flags & NDR_SCALARS) {
18076 NDR_CHECK(ndr_push_align(ndr, 4));
18077 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
18078 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000002));
18079 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
18080 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
18081 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
18082 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
18083 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
18084 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
18085 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
18086 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
18087 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
18088 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
18089 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
18090 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_monitor_mib_index));
18092 if (ndr_flags & NDR_BUFFERS) {
18094 return NDR_ERR_SUCCESS;
18097 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData2 *r)
18099 if (ndr_flags & NDR_SCALARS) {
18100 NDR_CHECK(ndr_pull_align(ndr, 4));
18101 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
18102 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18103 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
18104 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18105 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
18106 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
18107 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
18108 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
18109 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
18110 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
18111 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
18112 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
18113 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
18114 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_monitor_mib_index));
18116 if (ndr_flags & NDR_BUFFERS) {
18118 return NDR_ERR_SUCCESS;
18121 _PUBLIC_ void ndr_print_spoolss_PortData2(struct ndr_print *ndr, const char *name, const struct spoolss_PortData2 *r)
18123 ndr_print_struct(ndr, name, "spoolss_PortData2");
18124 ndr->depth++;
18125 ndr_print_string(ndr, "portname", r->portname);
18126 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000002:r->version);
18127 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
18128 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
18129 ndr_print_uint32(ndr, "reserved", r->reserved);
18130 ndr_print_string(ndr, "hostaddress", r->hostaddress);
18131 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
18132 ndr_print_uint32(ndr, "dblspool", r->dblspool);
18133 ndr_print_string(ndr, "queue", r->queue);
18134 ndr_print_string(ndr, "device_type", r->device_type);
18135 ndr_print_uint32(ndr, "port_number", r->port_number);
18136 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
18137 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
18138 ndr_print_uint32(ndr, "port_monitor_mib_index", r->port_monitor_mib_index);
18139 ndr->depth--;
18142 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorUi(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorUi *r)
18144 if (ndr_flags & NDR_SCALARS) {
18145 NDR_CHECK(ndr_push_align(ndr, 4));
18147 uint32_t _flags_save_string = ndr->flags;
18148 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18149 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
18150 ndr->flags = _flags_save_string;
18153 if (ndr_flags & NDR_BUFFERS) {
18155 return NDR_ERR_SUCCESS;
18158 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorUi(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorUi *r)
18160 if (ndr_flags & NDR_SCALARS) {
18161 NDR_CHECK(ndr_pull_align(ndr, 4));
18163 uint32_t _flags_save_string = ndr->flags;
18164 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18165 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
18166 ndr->flags = _flags_save_string;
18169 if (ndr_flags & NDR_BUFFERS) {
18171 return NDR_ERR_SUCCESS;
18174 _PUBLIC_ void ndr_print_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorUi *r)
18176 ndr_print_struct(ndr, name, "spoolss_MonitorUi");
18177 ndr->depth++;
18178 ndr_print_string(ndr, "dll_name", r->dll_name);
18179 ndr->depth--;
18182 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18184 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18185 return NDR_ERR_SUCCESS;
18188 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18190 uint32_t v;
18191 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18192 *r = v;
18193 return NDR_ERR_SUCCESS;
18196 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18198 ndr_print_uint32(ndr, name, r);
18199 ndr->depth++;
18200 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
18201 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
18202 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
18203 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
18204 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
18205 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
18206 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
18207 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
18208 ndr->depth--;
18211 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r)
18213 if (flags & NDR_IN) {
18214 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
18215 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
18216 if (r->in.server) {
18217 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
18218 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18219 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
18220 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18222 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18223 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18224 if (r->in.buffer) {
18225 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18227 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18229 if (flags & NDR_OUT) {
18230 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18231 if (r->out.info) {
18232 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
18234 if (r->out.needed == NULL) {
18235 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18237 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18238 if (r->out.count == NULL) {
18239 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18241 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
18242 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18244 return NDR_ERR_SUCCESS;
18247 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinters *r)
18249 uint32_t _ptr_server;
18250 uint32_t _ptr_buffer;
18251 uint32_t _ptr_info;
18252 TALLOC_CTX *_mem_save_server_0;
18253 TALLOC_CTX *_mem_save_buffer_0;
18254 TALLOC_CTX *_mem_save_info_0;
18255 TALLOC_CTX *_mem_save_needed_0;
18256 TALLOC_CTX *_mem_save_count_0;
18257 if (flags & NDR_IN) {
18258 ZERO_STRUCT(r->out);
18260 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
18261 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
18262 if (_ptr_server) {
18263 NDR_PULL_ALLOC(ndr, r->in.server);
18264 } else {
18265 r->in.server = NULL;
18267 if (r->in.server) {
18268 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
18269 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
18270 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
18271 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
18272 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
18273 return 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));
18275 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
18276 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
18277 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
18279 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18280 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18281 if (_ptr_buffer) {
18282 NDR_PULL_ALLOC(ndr, r->in.buffer);
18283 } else {
18284 r->in.buffer = NULL;
18286 if (r->in.buffer) {
18287 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18288 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18289 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18290 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18292 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18293 NDR_PULL_ALLOC(ndr, r->out.needed);
18294 ZERO_STRUCTP(r->out.needed);
18295 NDR_PULL_ALLOC(ndr, r->out.count);
18296 ZERO_STRUCTP(r->out.count);
18298 if (flags & NDR_OUT) {
18299 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18300 if (_ptr_info) {
18301 NDR_PULL_ALLOC(ndr, r->out.info);
18302 } else {
18303 r->out.info = NULL;
18305 if (r->out.info) {
18306 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18307 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18308 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
18309 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18311 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18312 NDR_PULL_ALLOC(ndr, r->out.needed);
18314 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18315 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18316 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18317 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18318 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18319 NDR_PULL_ALLOC(ndr, r->out.count);
18321 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
18322 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
18323 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
18324 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
18325 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18327 return NDR_ERR_SUCCESS;
18330 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinters *r)
18332 uint32_t cntr_info_0;
18333 if (flags & NDR_IN) {
18334 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18335 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
18337 if (flags & NDR_OUT) {
18338 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18339 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18340 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18342 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18343 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18346 return NDR_ERR_SUCCESS;
18349 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinters *r)
18351 uint32_t cntr_info_0;
18352 TALLOC_CTX *_mem_save_info_0;
18353 if (flags & NDR_IN) {
18354 ZERO_STRUCT(r->out);
18356 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18357 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
18359 if (flags & NDR_OUT) {
18360 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
18361 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18362 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18363 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18364 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18365 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18367 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18368 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18370 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18372 return NDR_ERR_SUCCESS;
18375 _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinters *r)
18377 uint32_t cntr_info_1;
18378 ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
18379 ndr->depth++;
18380 if (flags & NDR_SET_VALUES) {
18381 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18383 if (flags & NDR_IN) {
18384 ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
18385 ndr->depth++;
18386 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
18387 ndr_print_ptr(ndr, "server", r->in.server);
18388 ndr->depth++;
18389 if (r->in.server) {
18390 ndr_print_string(ndr, "server", r->in.server);
18392 ndr->depth--;
18393 ndr_print_uint32(ndr, "level", r->in.level);
18394 ndr_print_ptr(ndr, "buffer", r->in.buffer);
18395 ndr->depth++;
18396 if (r->in.buffer) {
18397 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
18399 ndr->depth--;
18400 ndr_print_uint32(ndr, "offered", r->in.offered);
18401 ndr->depth--;
18403 if (flags & NDR_OUT) {
18404 ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
18405 ndr->depth++;
18406 ndr_print_ptr(ndr, "count", r->out.count);
18407 ndr->depth++;
18408 ndr_print_uint32(ndr, "count", *r->out.count);
18409 ndr->depth--;
18410 ndr_print_ptr(ndr, "info", r->out.info);
18411 ndr->depth++;
18412 if (r->out.info) {
18413 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
18414 ndr->depth++;
18415 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
18416 char *idx_1=NULL;
18417 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
18418 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
18419 ndr_print_spoolss_PrinterInfo(ndr, "info", &r->out.info[cntr_info_1]);
18420 free(idx_1);
18423 ndr->depth--;
18425 ndr->depth--;
18426 ndr_print_ptr(ndr, "needed", r->out.needed);
18427 ndr->depth++;
18428 ndr_print_uint32(ndr, "needed", *r->out.needed);
18429 ndr->depth--;
18430 ndr_print_WERROR(ndr, "result", r->out.result);
18431 ndr->depth--;
18433 ndr->depth--;
18436 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinter *r)
18438 if (flags & NDR_IN) {
18439 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
18440 if (r->in.printername) {
18441 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
18442 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18443 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
18444 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18446 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
18447 if (r->in.datatype) {
18448 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
18449 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18450 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
18451 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18453 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
18454 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
18456 if (flags & NDR_OUT) {
18457 if (r->out.handle == NULL) {
18458 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18460 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
18461 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18463 return NDR_ERR_SUCCESS;
18466 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinter *r)
18468 uint32_t _ptr_printername;
18469 uint32_t _ptr_datatype;
18470 TALLOC_CTX *_mem_save_printername_0;
18471 TALLOC_CTX *_mem_save_datatype_0;
18472 TALLOC_CTX *_mem_save_handle_0;
18473 if (flags & NDR_IN) {
18474 ZERO_STRUCT(r->out);
18476 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
18477 if (_ptr_printername) {
18478 NDR_PULL_ALLOC(ndr, r->in.printername);
18479 } else {
18480 r->in.printername = NULL;
18482 if (r->in.printername) {
18483 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
18484 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
18485 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
18486 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
18487 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
18488 return 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));
18490 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
18491 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
18492 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
18494 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
18495 if (_ptr_datatype) {
18496 NDR_PULL_ALLOC(ndr, r->in.datatype);
18497 } else {
18498 r->in.datatype = NULL;
18500 if (r->in.datatype) {
18501 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
18502 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
18503 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
18504 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
18505 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
18506 return 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));
18508 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
18509 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
18510 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
18512 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
18513 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
18514 NDR_PULL_ALLOC(ndr, r->out.handle);
18515 ZERO_STRUCTP(r->out.handle);
18517 if (flags & NDR_OUT) {
18518 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18519 NDR_PULL_ALLOC(ndr, r->out.handle);
18521 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18522 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
18523 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
18524 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18525 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18527 return NDR_ERR_SUCCESS;
18530 _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinter *r)
18532 ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
18533 ndr->depth++;
18534 if (flags & NDR_SET_VALUES) {
18535 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18537 if (flags & NDR_IN) {
18538 ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
18539 ndr->depth++;
18540 ndr_print_ptr(ndr, "printername", r->in.printername);
18541 ndr->depth++;
18542 if (r->in.printername) {
18543 ndr_print_string(ndr, "printername", r->in.printername);
18545 ndr->depth--;
18546 ndr_print_ptr(ndr, "datatype", r->in.datatype);
18547 ndr->depth++;
18548 if (r->in.datatype) {
18549 ndr_print_string(ndr, "datatype", r->in.datatype);
18551 ndr->depth--;
18552 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
18553 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
18554 ndr->depth--;
18556 if (flags & NDR_OUT) {
18557 ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
18558 ndr->depth++;
18559 ndr_print_ptr(ndr, "handle", r->out.handle);
18560 ndr->depth++;
18561 ndr_print_policy_handle(ndr, "handle", r->out.handle);
18562 ndr->depth--;
18563 ndr_print_WERROR(ndr, "result", r->out.result);
18564 ndr->depth--;
18566 ndr->depth--;
18569 static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, int flags, const struct spoolss_SetJob *r)
18571 if (flags & NDR_IN) {
18572 if (r->in.handle == NULL) {
18573 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18575 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18576 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
18577 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
18578 if (r->in.ctr) {
18579 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
18581 NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
18583 if (flags & NDR_OUT) {
18584 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18586 return NDR_ERR_SUCCESS;
18589 static enum ndr_err_code ndr_pull_spoolss_SetJob(struct ndr_pull *ndr, int flags, struct spoolss_SetJob *r)
18591 uint32_t _ptr_ctr;
18592 TALLOC_CTX *_mem_save_handle_0;
18593 TALLOC_CTX *_mem_save_ctr_0;
18594 if (flags & NDR_IN) {
18595 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18596 NDR_PULL_ALLOC(ndr, r->in.handle);
18598 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18599 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18600 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18601 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18602 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
18603 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
18604 if (_ptr_ctr) {
18605 NDR_PULL_ALLOC(ndr, r->in.ctr);
18606 } else {
18607 r->in.ctr = NULL;
18609 if (r->in.ctr) {
18610 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
18611 NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
18612 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
18613 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
18615 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
18617 if (flags & NDR_OUT) {
18618 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18620 return NDR_ERR_SUCCESS;
18623 _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetJob *r)
18625 ndr_print_struct(ndr, name, "spoolss_SetJob");
18626 ndr->depth++;
18627 if (flags & NDR_SET_VALUES) {
18628 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18630 if (flags & NDR_IN) {
18631 ndr_print_struct(ndr, "in", "spoolss_SetJob");
18632 ndr->depth++;
18633 ndr_print_ptr(ndr, "handle", r->in.handle);
18634 ndr->depth++;
18635 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18636 ndr->depth--;
18637 ndr_print_uint32(ndr, "job_id", r->in.job_id);
18638 ndr_print_ptr(ndr, "ctr", r->in.ctr);
18639 ndr->depth++;
18640 if (r->in.ctr) {
18641 ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
18643 ndr->depth--;
18644 ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
18645 ndr->depth--;
18647 if (flags & NDR_OUT) {
18648 ndr_print_struct(ndr, "out", "spoolss_SetJob");
18649 ndr->depth++;
18650 ndr_print_WERROR(ndr, "result", r->out.result);
18651 ndr->depth--;
18653 ndr->depth--;
18656 static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, int flags, const struct spoolss_GetJob *r)
18658 if (flags & NDR_IN) {
18659 if (r->in.handle == NULL) {
18660 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18662 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18663 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
18664 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18665 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18666 if (r->in.buffer) {
18667 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18669 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18671 if (flags & NDR_OUT) {
18672 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18673 if (r->out.info) {
18675 struct ndr_push *_ndr_info;
18676 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
18677 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
18678 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
18679 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
18682 if (r->out.needed == NULL) {
18683 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18685 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18686 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18688 return NDR_ERR_SUCCESS;
18691 static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags, struct spoolss_GetJob *r)
18693 uint32_t _ptr_buffer;
18694 uint32_t _ptr_info;
18695 TALLOC_CTX *_mem_save_handle_0;
18696 TALLOC_CTX *_mem_save_buffer_0;
18697 TALLOC_CTX *_mem_save_info_0;
18698 TALLOC_CTX *_mem_save_needed_0;
18699 if (flags & NDR_IN) {
18700 ZERO_STRUCT(r->out);
18702 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18703 NDR_PULL_ALLOC(ndr, r->in.handle);
18705 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18706 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18707 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18708 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18709 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
18710 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18711 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18712 if (_ptr_buffer) {
18713 NDR_PULL_ALLOC(ndr, r->in.buffer);
18714 } else {
18715 r->in.buffer = NULL;
18717 if (r->in.buffer) {
18718 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18719 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18720 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18721 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18723 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18724 NDR_PULL_ALLOC(ndr, r->out.needed);
18725 ZERO_STRUCTP(r->out.needed);
18727 if (flags & NDR_OUT) {
18728 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18729 if (_ptr_info) {
18730 NDR_PULL_ALLOC(ndr, r->out.info);
18731 } else {
18732 r->out.info = NULL;
18734 if (r->out.info) {
18735 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18736 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18738 struct ndr_pull *_ndr_info;
18739 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
18740 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
18741 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
18742 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
18744 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18746 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18747 NDR_PULL_ALLOC(ndr, r->out.needed);
18749 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18750 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18751 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18752 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18753 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18755 return NDR_ERR_SUCCESS;
18758 _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetJob *r)
18760 ndr_print_struct(ndr, name, "spoolss_GetJob");
18761 ndr->depth++;
18762 if (flags & NDR_SET_VALUES) {
18763 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18765 if (flags & NDR_IN) {
18766 ndr_print_struct(ndr, "in", "spoolss_GetJob");
18767 ndr->depth++;
18768 ndr_print_ptr(ndr, "handle", r->in.handle);
18769 ndr->depth++;
18770 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18771 ndr->depth--;
18772 ndr_print_uint32(ndr, "job_id", r->in.job_id);
18773 ndr_print_uint32(ndr, "level", r->in.level);
18774 ndr_print_ptr(ndr, "buffer", r->in.buffer);
18775 ndr->depth++;
18776 if (r->in.buffer) {
18777 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
18779 ndr->depth--;
18780 ndr_print_uint32(ndr, "offered", r->in.offered);
18781 ndr->depth--;
18783 if (flags & NDR_OUT) {
18784 ndr_print_struct(ndr, "out", "spoolss_GetJob");
18785 ndr->depth++;
18786 ndr_print_ptr(ndr, "info", r->out.info);
18787 ndr->depth++;
18788 if (r->out.info) {
18789 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
18790 ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
18792 ndr->depth--;
18793 ndr_print_ptr(ndr, "needed", r->out.needed);
18794 ndr->depth++;
18795 ndr_print_uint32(ndr, "needed", *r->out.needed);
18796 ndr->depth--;
18797 ndr_print_WERROR(ndr, "result", r->out.result);
18798 ndr->depth--;
18800 ndr->depth--;
18803 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct _spoolss_EnumJobs *r)
18805 if (flags & NDR_IN) {
18806 if (r->in.handle == NULL) {
18807 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18809 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18810 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
18811 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
18812 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18813 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18814 if (r->in.buffer) {
18815 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18817 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18819 if (flags & NDR_OUT) {
18820 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18821 if (r->out.info) {
18822 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
18824 if (r->out.needed == NULL) {
18825 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18827 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18828 if (r->out.count == NULL) {
18829 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18831 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
18832 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18834 return NDR_ERR_SUCCESS;
18837 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct _spoolss_EnumJobs *r)
18839 uint32_t _ptr_buffer;
18840 uint32_t _ptr_info;
18841 TALLOC_CTX *_mem_save_handle_0;
18842 TALLOC_CTX *_mem_save_buffer_0;
18843 TALLOC_CTX *_mem_save_info_0;
18844 TALLOC_CTX *_mem_save_needed_0;
18845 TALLOC_CTX *_mem_save_count_0;
18846 if (flags & NDR_IN) {
18847 ZERO_STRUCT(r->out);
18849 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18850 NDR_PULL_ALLOC(ndr, r->in.handle);
18852 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18853 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18854 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18855 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18856 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
18857 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
18858 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18859 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18860 if (_ptr_buffer) {
18861 NDR_PULL_ALLOC(ndr, r->in.buffer);
18862 } else {
18863 r->in.buffer = NULL;
18865 if (r->in.buffer) {
18866 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18867 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18868 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18869 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18871 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18872 NDR_PULL_ALLOC(ndr, r->out.needed);
18873 ZERO_STRUCTP(r->out.needed);
18874 NDR_PULL_ALLOC(ndr, r->out.count);
18875 ZERO_STRUCTP(r->out.count);
18877 if (flags & NDR_OUT) {
18878 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18879 if (_ptr_info) {
18880 NDR_PULL_ALLOC(ndr, r->out.info);
18881 } else {
18882 r->out.info = NULL;
18884 if (r->out.info) {
18885 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18886 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18887 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
18888 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18890 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18891 NDR_PULL_ALLOC(ndr, r->out.needed);
18893 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18894 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18895 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18896 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18897 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18898 NDR_PULL_ALLOC(ndr, r->out.count);
18900 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
18901 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
18902 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
18903 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
18904 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18906 return NDR_ERR_SUCCESS;
18909 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct __spoolss_EnumJobs *r)
18911 uint32_t cntr_info_0;
18912 if (flags & NDR_IN) {
18913 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18914 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
18916 if (flags & NDR_OUT) {
18917 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18918 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18919 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18921 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18922 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18925 return NDR_ERR_SUCCESS;
18928 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct __spoolss_EnumJobs *r)
18930 uint32_t cntr_info_0;
18931 TALLOC_CTX *_mem_save_info_0;
18932 if (flags & NDR_IN) {
18933 ZERO_STRUCT(r->out);
18935 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18936 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
18938 if (flags & NDR_OUT) {
18939 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
18940 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18941 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18942 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18943 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18944 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18946 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18947 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18949 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18951 return NDR_ERR_SUCCESS;
18954 _PUBLIC_ void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumJobs *r)
18956 uint32_t cntr_info_1;
18957 ndr_print_struct(ndr, name, "spoolss_EnumJobs");
18958 ndr->depth++;
18959 if (flags & NDR_SET_VALUES) {
18960 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18962 if (flags & NDR_IN) {
18963 ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
18964 ndr->depth++;
18965 ndr_print_ptr(ndr, "handle", r->in.handle);
18966 ndr->depth++;
18967 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18968 ndr->depth--;
18969 ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
18970 ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
18971 ndr_print_uint32(ndr, "level", r->in.level);
18972 ndr_print_ptr(ndr, "buffer", r->in.buffer);
18973 ndr->depth++;
18974 if (r->in.buffer) {
18975 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
18977 ndr->depth--;
18978 ndr_print_uint32(ndr, "offered", r->in.offered);
18979 ndr->depth--;
18981 if (flags & NDR_OUT) {
18982 ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
18983 ndr->depth++;
18984 ndr_print_ptr(ndr, "count", r->out.count);
18985 ndr->depth++;
18986 ndr_print_uint32(ndr, "count", *r->out.count);
18987 ndr->depth--;
18988 ndr_print_ptr(ndr, "info", r->out.info);
18989 ndr->depth++;
18990 if (r->out.info) {
18991 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
18992 ndr->depth++;
18993 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
18994 char *idx_1=NULL;
18995 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
18996 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
18997 ndr_print_spoolss_JobInfo(ndr, "info", &r->out.info[cntr_info_1]);
18998 free(idx_1);
19001 ndr->depth--;
19003 ndr->depth--;
19004 ndr_print_ptr(ndr, "needed", r->out.needed);
19005 ndr->depth++;
19006 ndr_print_uint32(ndr, "needed", *r->out.needed);
19007 ndr->depth--;
19008 ndr_print_WERROR(ndr, "result", r->out.result);
19009 ndr->depth--;
19011 ndr->depth--;
19014 static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinter *r)
19016 if (flags & NDR_IN) {
19018 if (flags & NDR_OUT) {
19019 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19021 return NDR_ERR_SUCCESS;
19024 static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinter *r)
19026 if (flags & NDR_IN) {
19028 if (flags & NDR_OUT) {
19029 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19031 return NDR_ERR_SUCCESS;
19034 _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinter *r)
19036 ndr_print_struct(ndr, name, "spoolss_AddPrinter");
19037 ndr->depth++;
19038 if (flags & NDR_SET_VALUES) {
19039 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19041 if (flags & NDR_IN) {
19042 ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
19043 ndr->depth++;
19044 ndr->depth--;
19046 if (flags & NDR_OUT) {
19047 ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
19048 ndr->depth++;
19049 ndr_print_WERROR(ndr, "result", r->out.result);
19050 ndr->depth--;
19052 ndr->depth--;
19055 static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinter *r)
19057 if (flags & NDR_IN) {
19058 if (r->in.handle == NULL) {
19059 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19061 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19063 if (flags & NDR_OUT) {
19064 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19066 return NDR_ERR_SUCCESS;
19069 static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinter *r)
19071 TALLOC_CTX *_mem_save_handle_0;
19072 if (flags & NDR_IN) {
19073 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19074 NDR_PULL_ALLOC(ndr, r->in.handle);
19076 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19077 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19078 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19079 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19081 if (flags & NDR_OUT) {
19082 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19084 return NDR_ERR_SUCCESS;
19087 _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinter *r)
19089 ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
19090 ndr->depth++;
19091 if (flags & NDR_SET_VALUES) {
19092 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19094 if (flags & NDR_IN) {
19095 ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
19096 ndr->depth++;
19097 ndr_print_ptr(ndr, "handle", r->in.handle);
19098 ndr->depth++;
19099 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19100 ndr->depth--;
19101 ndr->depth--;
19103 if (flags & NDR_OUT) {
19104 ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
19105 ndr->depth++;
19106 ndr_print_WERROR(ndr, "result", r->out.result);
19107 ndr->depth--;
19109 ndr->depth--;
19112 static enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinter *r)
19114 if (flags & NDR_IN) {
19115 if (r->in.handle == NULL) {
19116 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19118 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19119 if (r->in.info_ctr == NULL) {
19120 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19122 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
19123 if (r->in.devmode_ctr == NULL) {
19124 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19126 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
19127 if (r->in.secdesc_ctr == NULL) {
19128 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19130 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
19131 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
19133 if (flags & NDR_OUT) {
19134 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19136 return NDR_ERR_SUCCESS;
19139 static enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinter *r)
19141 TALLOC_CTX *_mem_save_handle_0;
19142 TALLOC_CTX *_mem_save_info_ctr_0;
19143 TALLOC_CTX *_mem_save_devmode_ctr_0;
19144 TALLOC_CTX *_mem_save_secdesc_ctr_0;
19145 if (flags & NDR_IN) {
19146 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19147 NDR_PULL_ALLOC(ndr, r->in.handle);
19149 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19150 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19151 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19152 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19153 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19154 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
19156 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19157 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
19158 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
19159 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
19160 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19161 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
19163 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19164 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
19165 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
19166 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
19167 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19168 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
19170 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19171 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
19172 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
19173 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
19174 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
19176 if (flags & NDR_OUT) {
19177 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19179 return NDR_ERR_SUCCESS;
19182 _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinter *r)
19184 ndr_print_struct(ndr, name, "spoolss_SetPrinter");
19185 ndr->depth++;
19186 if (flags & NDR_SET_VALUES) {
19187 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19189 if (flags & NDR_IN) {
19190 ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
19191 ndr->depth++;
19192 ndr_print_ptr(ndr, "handle", r->in.handle);
19193 ndr->depth++;
19194 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19195 ndr->depth--;
19196 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
19197 ndr->depth++;
19198 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
19199 ndr->depth--;
19200 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
19201 ndr->depth++;
19202 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
19203 ndr->depth--;
19204 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
19205 ndr->depth++;
19206 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
19207 ndr->depth--;
19208 ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
19209 ndr->depth--;
19211 if (flags & NDR_OUT) {
19212 ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
19213 ndr->depth++;
19214 ndr_print_WERROR(ndr, "result", r->out.result);
19215 ndr->depth--;
19217 ndr->depth--;
19220 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinter *r)
19222 if (flags & NDR_IN) {
19223 if (r->in.handle == NULL) {
19224 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19226 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19227 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19228 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19229 if (r->in.buffer) {
19230 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19232 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19234 if (flags & NDR_OUT) {
19235 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19236 if (r->out.info) {
19238 struct ndr_push *_ndr_info;
19239 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
19240 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
19241 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
19242 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
19245 if (r->out.needed == NULL) {
19246 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19248 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19249 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19251 return NDR_ERR_SUCCESS;
19254 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinter *r)
19256 uint32_t _ptr_buffer;
19257 uint32_t _ptr_info;
19258 TALLOC_CTX *_mem_save_handle_0;
19259 TALLOC_CTX *_mem_save_buffer_0;
19260 TALLOC_CTX *_mem_save_info_0;
19261 TALLOC_CTX *_mem_save_needed_0;
19262 if (flags & NDR_IN) {
19263 ZERO_STRUCT(r->out);
19265 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19266 NDR_PULL_ALLOC(ndr, r->in.handle);
19268 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19269 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19270 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19271 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19272 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19273 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19274 if (_ptr_buffer) {
19275 NDR_PULL_ALLOC(ndr, r->in.buffer);
19276 } else {
19277 r->in.buffer = NULL;
19279 if (r->in.buffer) {
19280 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19281 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19282 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19283 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19285 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19286 NDR_PULL_ALLOC(ndr, r->out.needed);
19287 ZERO_STRUCTP(r->out.needed);
19289 if (flags & NDR_OUT) {
19290 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19291 if (_ptr_info) {
19292 NDR_PULL_ALLOC(ndr, r->out.info);
19293 } else {
19294 r->out.info = NULL;
19296 if (r->out.info) {
19297 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19298 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19300 struct ndr_pull *_ndr_info;
19301 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
19302 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
19303 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
19304 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
19306 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19308 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19309 NDR_PULL_ALLOC(ndr, r->out.needed);
19311 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19312 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19313 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19314 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19315 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19317 return NDR_ERR_SUCCESS;
19320 _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinter *r)
19322 ndr_print_struct(ndr, name, "spoolss_GetPrinter");
19323 ndr->depth++;
19324 if (flags & NDR_SET_VALUES) {
19325 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19327 if (flags & NDR_IN) {
19328 ndr_print_struct(ndr, "in", "spoolss_GetPrinter");
19329 ndr->depth++;
19330 ndr_print_ptr(ndr, "handle", r->in.handle);
19331 ndr->depth++;
19332 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19333 ndr->depth--;
19334 ndr_print_uint32(ndr, "level", r->in.level);
19335 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19336 ndr->depth++;
19337 if (r->in.buffer) {
19338 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19340 ndr->depth--;
19341 ndr_print_uint32(ndr, "offered", r->in.offered);
19342 ndr->depth--;
19344 if (flags & NDR_OUT) {
19345 ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
19346 ndr->depth++;
19347 ndr_print_ptr(ndr, "info", r->out.info);
19348 ndr->depth++;
19349 if (r->out.info) {
19350 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
19351 ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
19353 ndr->depth--;
19354 ndr_print_ptr(ndr, "needed", r->out.needed);
19355 ndr->depth++;
19356 ndr_print_uint32(ndr, "needed", *r->out.needed);
19357 ndr->depth--;
19358 ndr_print_WERROR(ndr, "result", r->out.result);
19359 ndr->depth--;
19361 ndr->depth--;
19364 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriver *r)
19366 if (flags & NDR_IN) {
19367 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
19368 if (r->in.servername) {
19369 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
19370 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19371 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
19372 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19374 if (r->in.info_ctr == NULL) {
19375 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19377 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
19379 if (flags & NDR_OUT) {
19380 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19382 return NDR_ERR_SUCCESS;
19385 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriver *r)
19387 uint32_t _ptr_servername;
19388 TALLOC_CTX *_mem_save_servername_0;
19389 TALLOC_CTX *_mem_save_info_ctr_0;
19390 if (flags & NDR_IN) {
19391 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
19392 if (_ptr_servername) {
19393 NDR_PULL_ALLOC(ndr, r->in.servername);
19394 } else {
19395 r->in.servername = NULL;
19397 if (r->in.servername) {
19398 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
19399 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
19400 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
19401 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
19402 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
19403 return 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));
19405 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
19406 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
19407 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
19409 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19410 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
19412 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19413 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
19414 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
19415 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
19417 if (flags & NDR_OUT) {
19418 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19420 return NDR_ERR_SUCCESS;
19423 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriver *r)
19425 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
19426 ndr->depth++;
19427 if (flags & NDR_SET_VALUES) {
19428 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19430 if (flags & NDR_IN) {
19431 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
19432 ndr->depth++;
19433 ndr_print_ptr(ndr, "servername", r->in.servername);
19434 ndr->depth++;
19435 if (r->in.servername) {
19436 ndr_print_string(ndr, "servername", r->in.servername);
19438 ndr->depth--;
19439 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
19440 ndr->depth++;
19441 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
19442 ndr->depth--;
19443 ndr->depth--;
19445 if (flags & NDR_OUT) {
19446 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
19447 ndr->depth++;
19448 ndr_print_WERROR(ndr, "result", r->out.result);
19449 ndr->depth--;
19451 ndr->depth--;
19454 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDrivers *r)
19456 if (flags & NDR_IN) {
19457 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
19458 if (r->in.server) {
19459 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19460 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19461 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19462 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19464 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
19465 if (r->in.environment) {
19466 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
19467 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19468 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
19469 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19471 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19472 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19473 if (r->in.buffer) {
19474 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19476 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19478 if (flags & NDR_OUT) {
19479 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19480 if (r->out.info) {
19481 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
19483 if (r->out.needed == NULL) {
19484 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19486 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19487 if (r->out.count == NULL) {
19488 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19490 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
19491 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19493 return NDR_ERR_SUCCESS;
19496 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDrivers *r)
19498 uint32_t _ptr_server;
19499 uint32_t _ptr_environment;
19500 uint32_t _ptr_buffer;
19501 uint32_t _ptr_info;
19502 TALLOC_CTX *_mem_save_server_0;
19503 TALLOC_CTX *_mem_save_environment_0;
19504 TALLOC_CTX *_mem_save_buffer_0;
19505 TALLOC_CTX *_mem_save_info_0;
19506 TALLOC_CTX *_mem_save_needed_0;
19507 TALLOC_CTX *_mem_save_count_0;
19508 if (flags & NDR_IN) {
19509 ZERO_STRUCT(r->out);
19511 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
19512 if (_ptr_server) {
19513 NDR_PULL_ALLOC(ndr, r->in.server);
19514 } else {
19515 r->in.server = NULL;
19517 if (r->in.server) {
19518 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
19519 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
19520 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
19521 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
19522 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
19523 return 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));
19525 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
19526 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
19527 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
19529 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
19530 if (_ptr_environment) {
19531 NDR_PULL_ALLOC(ndr, r->in.environment);
19532 } else {
19533 r->in.environment = NULL;
19535 if (r->in.environment) {
19536 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
19537 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
19538 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
19539 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
19540 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
19541 return 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));
19543 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
19544 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
19545 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
19547 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19548 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19549 if (_ptr_buffer) {
19550 NDR_PULL_ALLOC(ndr, r->in.buffer);
19551 } else {
19552 r->in.buffer = NULL;
19554 if (r->in.buffer) {
19555 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19556 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19557 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19558 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19560 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19561 NDR_PULL_ALLOC(ndr, r->out.needed);
19562 ZERO_STRUCTP(r->out.needed);
19563 NDR_PULL_ALLOC(ndr, r->out.count);
19564 ZERO_STRUCTP(r->out.count);
19566 if (flags & NDR_OUT) {
19567 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19568 if (_ptr_info) {
19569 NDR_PULL_ALLOC(ndr, r->out.info);
19570 } else {
19571 r->out.info = NULL;
19573 if (r->out.info) {
19574 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19575 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19576 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
19577 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19579 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19580 NDR_PULL_ALLOC(ndr, r->out.needed);
19582 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19583 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19584 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19585 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19586 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19587 NDR_PULL_ALLOC(ndr, r->out.count);
19589 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
19590 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
19591 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
19592 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
19593 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19595 return NDR_ERR_SUCCESS;
19598 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDrivers *r)
19600 uint32_t cntr_info_0;
19601 if (flags & NDR_IN) {
19602 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19603 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
19605 if (flags & NDR_OUT) {
19606 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19607 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19608 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19610 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19611 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19614 return NDR_ERR_SUCCESS;
19617 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDrivers *r)
19619 uint32_t cntr_info_0;
19620 TALLOC_CTX *_mem_save_info_0;
19621 if (flags & NDR_IN) {
19622 ZERO_STRUCT(r->out);
19624 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19625 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
19627 if (flags & NDR_OUT) {
19628 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
19629 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19630 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19631 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19632 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19633 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19635 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19636 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19638 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19640 return NDR_ERR_SUCCESS;
19643 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDrivers *r)
19645 uint32_t cntr_info_1;
19646 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
19647 ndr->depth++;
19648 if (flags & NDR_SET_VALUES) {
19649 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19651 if (flags & NDR_IN) {
19652 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
19653 ndr->depth++;
19654 ndr_print_ptr(ndr, "server", r->in.server);
19655 ndr->depth++;
19656 if (r->in.server) {
19657 ndr_print_string(ndr, "server", r->in.server);
19659 ndr->depth--;
19660 ndr_print_ptr(ndr, "environment", r->in.environment);
19661 ndr->depth++;
19662 if (r->in.environment) {
19663 ndr_print_string(ndr, "environment", r->in.environment);
19665 ndr->depth--;
19666 ndr_print_uint32(ndr, "level", r->in.level);
19667 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19668 ndr->depth++;
19669 if (r->in.buffer) {
19670 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19672 ndr->depth--;
19673 ndr_print_uint32(ndr, "offered", r->in.offered);
19674 ndr->depth--;
19676 if (flags & NDR_OUT) {
19677 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
19678 ndr->depth++;
19679 ndr_print_ptr(ndr, "count", r->out.count);
19680 ndr->depth++;
19681 ndr_print_uint32(ndr, "count", *r->out.count);
19682 ndr->depth--;
19683 ndr_print_ptr(ndr, "info", r->out.info);
19684 ndr->depth++;
19685 if (r->out.info) {
19686 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
19687 ndr->depth++;
19688 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
19689 char *idx_1=NULL;
19690 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
19691 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
19692 ndr_print_spoolss_DriverInfo(ndr, "info", &r->out.info[cntr_info_1]);
19693 free(idx_1);
19696 ndr->depth--;
19698 ndr->depth--;
19699 ndr_print_ptr(ndr, "needed", r->out.needed);
19700 ndr->depth++;
19701 ndr_print_uint32(ndr, "needed", *r->out.needed);
19702 ndr->depth--;
19703 ndr_print_WERROR(ndr, "result", r->out.result);
19704 ndr->depth--;
19706 ndr->depth--;
19709 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver *r)
19711 if (flags & NDR_IN) {
19713 if (flags & NDR_OUT) {
19714 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19716 return NDR_ERR_SUCCESS;
19719 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver *r)
19721 if (flags & NDR_IN) {
19723 if (flags & NDR_OUT) {
19724 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19726 return NDR_ERR_SUCCESS;
19729 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver *r)
19731 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
19732 ndr->depth++;
19733 if (flags & NDR_SET_VALUES) {
19734 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19736 if (flags & NDR_IN) {
19737 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
19738 ndr->depth++;
19739 ndr->depth--;
19741 if (flags & NDR_OUT) {
19742 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
19743 ndr->depth++;
19744 ndr_print_WERROR(ndr, "result", r->out.result);
19745 ndr->depth--;
19747 ndr->depth--;
19750 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
19752 if (flags & NDR_IN) {
19753 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
19754 if (r->in.server) {
19755 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19756 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19757 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19758 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19760 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
19761 if (r->in.environment) {
19762 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
19763 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19764 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
19765 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19767 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19768 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19769 if (r->in.buffer) {
19770 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19772 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19774 if (flags & NDR_OUT) {
19775 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19776 if (r->out.info) {
19778 struct ndr_push *_ndr_info;
19779 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
19780 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
19781 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
19782 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
19785 if (r->out.needed == NULL) {
19786 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19788 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19789 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19791 return NDR_ERR_SUCCESS;
19794 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverDirectory *r)
19796 uint32_t _ptr_server;
19797 uint32_t _ptr_environment;
19798 uint32_t _ptr_buffer;
19799 uint32_t _ptr_info;
19800 TALLOC_CTX *_mem_save_server_0;
19801 TALLOC_CTX *_mem_save_environment_0;
19802 TALLOC_CTX *_mem_save_buffer_0;
19803 TALLOC_CTX *_mem_save_info_0;
19804 TALLOC_CTX *_mem_save_needed_0;
19805 if (flags & NDR_IN) {
19806 ZERO_STRUCT(r->out);
19808 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
19809 if (_ptr_server) {
19810 NDR_PULL_ALLOC(ndr, r->in.server);
19811 } else {
19812 r->in.server = NULL;
19814 if (r->in.server) {
19815 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
19816 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
19817 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
19818 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
19819 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
19820 return 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));
19822 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
19823 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
19824 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
19826 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
19827 if (_ptr_environment) {
19828 NDR_PULL_ALLOC(ndr, r->in.environment);
19829 } else {
19830 r->in.environment = NULL;
19832 if (r->in.environment) {
19833 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
19834 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
19835 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
19836 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
19837 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
19838 return 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));
19840 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
19841 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
19842 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
19844 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19845 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19846 if (_ptr_buffer) {
19847 NDR_PULL_ALLOC(ndr, r->in.buffer);
19848 } else {
19849 r->in.buffer = NULL;
19851 if (r->in.buffer) {
19852 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19853 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19854 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19855 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19857 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19858 NDR_PULL_ALLOC(ndr, r->out.needed);
19859 ZERO_STRUCTP(r->out.needed);
19861 if (flags & NDR_OUT) {
19862 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19863 if (_ptr_info) {
19864 NDR_PULL_ALLOC(ndr, r->out.info);
19865 } else {
19866 r->out.info = NULL;
19868 if (r->out.info) {
19869 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19870 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19872 struct ndr_pull *_ndr_info;
19873 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
19874 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
19875 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
19876 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
19878 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19880 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19881 NDR_PULL_ALLOC(ndr, r->out.needed);
19883 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19884 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19885 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19886 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19887 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19889 return NDR_ERR_SUCCESS;
19892 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
19894 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
19895 ndr->depth++;
19896 if (flags & NDR_SET_VALUES) {
19897 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19899 if (flags & NDR_IN) {
19900 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
19901 ndr->depth++;
19902 ndr_print_ptr(ndr, "server", r->in.server);
19903 ndr->depth++;
19904 if (r->in.server) {
19905 ndr_print_string(ndr, "server", r->in.server);
19907 ndr->depth--;
19908 ndr_print_ptr(ndr, "environment", r->in.environment);
19909 ndr->depth++;
19910 if (r->in.environment) {
19911 ndr_print_string(ndr, "environment", r->in.environment);
19913 ndr->depth--;
19914 ndr_print_uint32(ndr, "level", r->in.level);
19915 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19916 ndr->depth++;
19917 if (r->in.buffer) {
19918 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19920 ndr->depth--;
19921 ndr_print_uint32(ndr, "offered", r->in.offered);
19922 ndr->depth--;
19924 if (flags & NDR_OUT) {
19925 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
19926 ndr->depth++;
19927 ndr_print_ptr(ndr, "info", r->out.info);
19928 ndr->depth++;
19929 if (r->out.info) {
19930 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
19931 ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
19933 ndr->depth--;
19934 ndr_print_ptr(ndr, "needed", r->out.needed);
19935 ndr->depth++;
19936 ndr_print_uint32(ndr, "needed", *r->out.needed);
19937 ndr->depth--;
19938 ndr_print_WERROR(ndr, "result", r->out.result);
19939 ndr->depth--;
19941 ndr->depth--;
19944 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriver *r)
19946 if (flags & NDR_IN) {
19947 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
19948 if (r->in.server) {
19949 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19950 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19951 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19952 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19954 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
19955 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19956 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
19957 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19958 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
19959 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19960 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
19961 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19963 if (flags & NDR_OUT) {
19964 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19966 return NDR_ERR_SUCCESS;
19969 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriver *r)
19971 uint32_t _ptr_server;
19972 TALLOC_CTX *_mem_save_server_0;
19973 if (flags & NDR_IN) {
19974 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
19975 if (_ptr_server) {
19976 NDR_PULL_ALLOC(ndr, r->in.server);
19977 } else {
19978 r->in.server = NULL;
19980 if (r->in.server) {
19981 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
19982 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
19983 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
19984 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
19985 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
19986 return 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));
19988 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
19989 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
19990 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
19992 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
19993 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
19994 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
19995 return 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));
19997 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
19998 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
19999 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
20000 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
20001 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
20002 return 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));
20004 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
20005 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
20007 if (flags & NDR_OUT) {
20008 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20010 return NDR_ERR_SUCCESS;
20013 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriver *r)
20015 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
20016 ndr->depth++;
20017 if (flags & NDR_SET_VALUES) {
20018 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20020 if (flags & NDR_IN) {
20021 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
20022 ndr->depth++;
20023 ndr_print_ptr(ndr, "server", r->in.server);
20024 ndr->depth++;
20025 if (r->in.server) {
20026 ndr_print_string(ndr, "server", r->in.server);
20028 ndr->depth--;
20029 ndr_print_string(ndr, "architecture", r->in.architecture);
20030 ndr_print_string(ndr, "driver", r->in.driver);
20031 ndr->depth--;
20033 if (flags & NDR_OUT) {
20034 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
20035 ndr->depth++;
20036 ndr_print_WERROR(ndr, "result", r->out.result);
20037 ndr->depth--;
20039 ndr->depth--;
20042 static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProcessor *r)
20044 if (flags & NDR_IN) {
20045 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20046 if (r->in.server) {
20047 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20048 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20049 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20050 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20052 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20053 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20054 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20055 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20056 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
20057 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20058 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
20059 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));
20060 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
20061 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20062 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
20063 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));
20065 if (flags & NDR_OUT) {
20066 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20068 return NDR_ERR_SUCCESS;
20071 static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProcessor *r)
20073 uint32_t _ptr_server;
20074 TALLOC_CTX *_mem_save_server_0;
20075 if (flags & NDR_IN) {
20076 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20077 if (_ptr_server) {
20078 NDR_PULL_ALLOC(ndr, r->in.server);
20079 } else {
20080 r->in.server = NULL;
20082 if (r->in.server) {
20083 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20084 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20085 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20086 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20087 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20088 return 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));
20090 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20091 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20092 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20094 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
20095 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
20096 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
20097 return 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));
20099 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
20100 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
20101 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
20102 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
20103 if (ndr_get_array_length(ndr, &r->in.path_name) > ndr_get_array_size(ndr, &r->in.path_name)) {
20104 return 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));
20106 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t)));
20107 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));
20108 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
20109 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
20110 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
20111 return 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));
20113 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
20114 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));
20116 if (flags & NDR_OUT) {
20117 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20119 return NDR_ERR_SUCCESS;
20122 _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProcessor *r)
20124 ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
20125 ndr->depth++;
20126 if (flags & NDR_SET_VALUES) {
20127 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20129 if (flags & NDR_IN) {
20130 ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
20131 ndr->depth++;
20132 ndr_print_ptr(ndr, "server", r->in.server);
20133 ndr->depth++;
20134 if (r->in.server) {
20135 ndr_print_string(ndr, "server", r->in.server);
20137 ndr->depth--;
20138 ndr_print_string(ndr, "architecture", r->in.architecture);
20139 ndr_print_string(ndr, "path_name", r->in.path_name);
20140 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
20141 ndr->depth--;
20143 if (flags & NDR_OUT) {
20144 ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
20145 ndr->depth++;
20146 ndr_print_WERROR(ndr, "result", r->out.result);
20147 ndr->depth--;
20149 ndr->depth--;
20152 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcessors *r)
20154 if (flags & NDR_IN) {
20155 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
20156 if (r->in.servername) {
20157 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
20158 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20159 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
20160 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20162 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
20163 if (r->in.environment) {
20164 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20165 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20166 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20167 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20169 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20170 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20171 if (r->in.buffer) {
20172 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20174 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20176 if (flags & NDR_OUT) {
20177 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20178 if (r->out.info) {
20179 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
20181 if (r->out.needed == NULL) {
20182 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20184 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20185 if (r->out.count == NULL) {
20186 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20188 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
20189 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20191 return NDR_ERR_SUCCESS;
20194 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessors *r)
20196 uint32_t _ptr_servername;
20197 uint32_t _ptr_environment;
20198 uint32_t _ptr_buffer;
20199 uint32_t _ptr_info;
20200 TALLOC_CTX *_mem_save_servername_0;
20201 TALLOC_CTX *_mem_save_environment_0;
20202 TALLOC_CTX *_mem_save_buffer_0;
20203 TALLOC_CTX *_mem_save_info_0;
20204 TALLOC_CTX *_mem_save_needed_0;
20205 TALLOC_CTX *_mem_save_count_0;
20206 if (flags & NDR_IN) {
20207 ZERO_STRUCT(r->out);
20209 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
20210 if (_ptr_servername) {
20211 NDR_PULL_ALLOC(ndr, r->in.servername);
20212 } else {
20213 r->in.servername = NULL;
20215 if (r->in.servername) {
20216 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
20217 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
20218 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
20219 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
20220 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
20221 return 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));
20223 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
20224 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
20225 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
20227 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
20228 if (_ptr_environment) {
20229 NDR_PULL_ALLOC(ndr, r->in.environment);
20230 } else {
20231 r->in.environment = NULL;
20233 if (r->in.environment) {
20234 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
20235 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
20236 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
20237 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
20238 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
20239 return 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));
20241 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
20242 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
20243 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
20245 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20246 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20247 if (_ptr_buffer) {
20248 NDR_PULL_ALLOC(ndr, r->in.buffer);
20249 } else {
20250 r->in.buffer = NULL;
20252 if (r->in.buffer) {
20253 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20254 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20255 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20256 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20258 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20259 NDR_PULL_ALLOC(ndr, r->out.needed);
20260 ZERO_STRUCTP(r->out.needed);
20261 NDR_PULL_ALLOC(ndr, r->out.count);
20262 ZERO_STRUCTP(r->out.count);
20264 if (flags & NDR_OUT) {
20265 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20266 if (_ptr_info) {
20267 NDR_PULL_ALLOC(ndr, r->out.info);
20268 } else {
20269 r->out.info = NULL;
20271 if (r->out.info) {
20272 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20273 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20274 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
20275 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20277 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20278 NDR_PULL_ALLOC(ndr, r->out.needed);
20280 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20281 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20282 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20283 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20284 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20285 NDR_PULL_ALLOC(ndr, r->out.count);
20287 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
20288 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
20289 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
20290 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
20291 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20293 return NDR_ERR_SUCCESS;
20296 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcessors *r)
20298 uint32_t cntr_info_0;
20299 if (flags & NDR_IN) {
20300 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20301 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
20303 if (flags & NDR_OUT) {
20304 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20305 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20306 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20308 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20309 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20312 return NDR_ERR_SUCCESS;
20315 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessors *r)
20317 uint32_t cntr_info_0;
20318 TALLOC_CTX *_mem_save_info_0;
20319 if (flags & NDR_IN) {
20320 ZERO_STRUCT(r->out);
20322 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20323 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
20325 if (flags & NDR_OUT) {
20326 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
20327 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20328 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20329 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20330 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20331 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20333 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20334 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20336 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20338 return NDR_ERR_SUCCESS;
20341 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcessors *r)
20343 uint32_t cntr_info_1;
20344 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
20345 ndr->depth++;
20346 if (flags & NDR_SET_VALUES) {
20347 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20349 if (flags & NDR_IN) {
20350 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
20351 ndr->depth++;
20352 ndr_print_ptr(ndr, "servername", r->in.servername);
20353 ndr->depth++;
20354 if (r->in.servername) {
20355 ndr_print_string(ndr, "servername", r->in.servername);
20357 ndr->depth--;
20358 ndr_print_ptr(ndr, "environment", r->in.environment);
20359 ndr->depth++;
20360 if (r->in.environment) {
20361 ndr_print_string(ndr, "environment", r->in.environment);
20363 ndr->depth--;
20364 ndr_print_uint32(ndr, "level", r->in.level);
20365 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20366 ndr->depth++;
20367 if (r->in.buffer) {
20368 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20370 ndr->depth--;
20371 ndr_print_uint32(ndr, "offered", r->in.offered);
20372 ndr->depth--;
20374 if (flags & NDR_OUT) {
20375 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
20376 ndr->depth++;
20377 ndr_print_ptr(ndr, "count", r->out.count);
20378 ndr->depth++;
20379 ndr_print_uint32(ndr, "count", *r->out.count);
20380 ndr->depth--;
20381 ndr_print_ptr(ndr, "info", r->out.info);
20382 ndr->depth++;
20383 if (r->out.info) {
20384 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
20385 ndr->depth++;
20386 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
20387 char *idx_1=NULL;
20388 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
20389 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
20390 ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &r->out.info[cntr_info_1]);
20391 free(idx_1);
20394 ndr->depth--;
20396 ndr->depth--;
20397 ndr_print_ptr(ndr, "needed", r->out.needed);
20398 ndr->depth++;
20399 ndr_print_uint32(ndr, "needed", *r->out.needed);
20400 ndr->depth--;
20401 ndr_print_WERROR(ndr, "result", r->out.result);
20402 ndr->depth--;
20404 ndr->depth--;
20407 static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
20409 if (flags & NDR_IN) {
20410 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20411 if (r->in.server) {
20412 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20413 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20414 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20415 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20417 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
20418 if (r->in.environment) {
20419 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20420 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20421 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20422 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20424 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20425 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20426 if (r->in.buffer) {
20427 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20429 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20431 if (flags & NDR_OUT) {
20432 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20433 if (r->out.info) {
20435 struct ndr_push *_ndr_info;
20436 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20437 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
20438 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
20439 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20442 if (r->out.needed == NULL) {
20443 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20445 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20446 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20448 return NDR_ERR_SUCCESS;
20451 static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrintProcessorDirectory *r)
20453 uint32_t _ptr_server;
20454 uint32_t _ptr_environment;
20455 uint32_t _ptr_buffer;
20456 uint32_t _ptr_info;
20457 TALLOC_CTX *_mem_save_server_0;
20458 TALLOC_CTX *_mem_save_environment_0;
20459 TALLOC_CTX *_mem_save_buffer_0;
20460 TALLOC_CTX *_mem_save_info_0;
20461 TALLOC_CTX *_mem_save_needed_0;
20462 if (flags & NDR_IN) {
20463 ZERO_STRUCT(r->out);
20465 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20466 if (_ptr_server) {
20467 NDR_PULL_ALLOC(ndr, r->in.server);
20468 } else {
20469 r->in.server = NULL;
20471 if (r->in.server) {
20472 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20473 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20474 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20475 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20476 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20477 return 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));
20479 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20480 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20481 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20483 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
20484 if (_ptr_environment) {
20485 NDR_PULL_ALLOC(ndr, r->in.environment);
20486 } else {
20487 r->in.environment = NULL;
20489 if (r->in.environment) {
20490 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
20491 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
20492 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
20493 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
20494 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
20495 return 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));
20497 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
20498 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
20499 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
20501 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20502 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20503 if (_ptr_buffer) {
20504 NDR_PULL_ALLOC(ndr, r->in.buffer);
20505 } else {
20506 r->in.buffer = NULL;
20508 if (r->in.buffer) {
20509 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20510 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20511 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20512 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20514 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20515 NDR_PULL_ALLOC(ndr, r->out.needed);
20516 ZERO_STRUCTP(r->out.needed);
20518 if (flags & NDR_OUT) {
20519 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20520 if (_ptr_info) {
20521 NDR_PULL_ALLOC(ndr, r->out.info);
20522 } else {
20523 r->out.info = NULL;
20525 if (r->out.info) {
20526 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20527 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20529 struct ndr_pull *_ndr_info;
20530 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20531 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
20532 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
20533 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20535 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20537 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20538 NDR_PULL_ALLOC(ndr, r->out.needed);
20540 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20541 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20542 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20543 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20544 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20546 return NDR_ERR_SUCCESS;
20549 _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
20551 ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
20552 ndr->depth++;
20553 if (flags & NDR_SET_VALUES) {
20554 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20556 if (flags & NDR_IN) {
20557 ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
20558 ndr->depth++;
20559 ndr_print_ptr(ndr, "server", r->in.server);
20560 ndr->depth++;
20561 if (r->in.server) {
20562 ndr_print_string(ndr, "server", r->in.server);
20564 ndr->depth--;
20565 ndr_print_ptr(ndr, "environment", r->in.environment);
20566 ndr->depth++;
20567 if (r->in.environment) {
20568 ndr_print_string(ndr, "environment", r->in.environment);
20570 ndr->depth--;
20571 ndr_print_uint32(ndr, "level", r->in.level);
20572 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20573 ndr->depth++;
20574 if (r->in.buffer) {
20575 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20577 ndr->depth--;
20578 ndr_print_uint32(ndr, "offered", r->in.offered);
20579 ndr->depth--;
20581 if (flags & NDR_OUT) {
20582 ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
20583 ndr->depth++;
20584 ndr_print_ptr(ndr, "info", r->out.info);
20585 ndr->depth++;
20586 if (r->out.info) {
20587 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
20588 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr, "info", r->out.info);
20590 ndr->depth--;
20591 ndr_print_ptr(ndr, "needed", r->out.needed);
20592 ndr->depth++;
20593 ndr_print_uint32(ndr, "needed", *r->out.needed);
20594 ndr->depth--;
20595 ndr_print_WERROR(ndr, "result", r->out.result);
20596 ndr->depth--;
20598 ndr->depth--;
20601 static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartDocPrinter *r)
20603 if (flags & NDR_IN) {
20604 if (r->in.handle == NULL) {
20605 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20607 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20608 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20609 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
20610 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
20612 if (flags & NDR_OUT) {
20613 if (r->out.job_id == NULL) {
20614 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20616 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
20617 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20619 return NDR_ERR_SUCCESS;
20622 static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartDocPrinter *r)
20624 TALLOC_CTX *_mem_save_handle_0;
20625 TALLOC_CTX *_mem_save_job_id_0;
20626 if (flags & NDR_IN) {
20627 ZERO_STRUCT(r->out);
20629 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20630 NDR_PULL_ALLOC(ndr, r->in.handle);
20632 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20633 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20634 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20635 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20636 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20637 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
20638 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
20639 NDR_PULL_ALLOC(ndr, r->out.job_id);
20640 ZERO_STRUCTP(r->out.job_id);
20642 if (flags & NDR_OUT) {
20643 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20644 NDR_PULL_ALLOC(ndr, r->out.job_id);
20646 _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
20647 NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
20648 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
20649 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
20650 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20652 return NDR_ERR_SUCCESS;
20655 _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartDocPrinter *r)
20657 ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
20658 ndr->depth++;
20659 if (flags & NDR_SET_VALUES) {
20660 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20662 if (flags & NDR_IN) {
20663 ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
20664 ndr->depth++;
20665 ndr_print_ptr(ndr, "handle", r->in.handle);
20666 ndr->depth++;
20667 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20668 ndr->depth--;
20669 ndr_print_uint32(ndr, "level", r->in.level);
20670 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
20671 ndr_print_spoolss_DocumentInfo(ndr, "info", &r->in.info);
20672 ndr->depth--;
20674 if (flags & NDR_OUT) {
20675 ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
20676 ndr->depth++;
20677 ndr_print_ptr(ndr, "job_id", r->out.job_id);
20678 ndr->depth++;
20679 ndr_print_uint32(ndr, "job_id", *r->out.job_id);
20680 ndr->depth--;
20681 ndr_print_WERROR(ndr, "result", r->out.result);
20682 ndr->depth--;
20684 ndr->depth--;
20687 static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartPagePrinter *r)
20689 if (flags & NDR_IN) {
20690 if (r->in.handle == NULL) {
20691 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20693 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20695 if (flags & NDR_OUT) {
20696 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20698 return NDR_ERR_SUCCESS;
20701 static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartPagePrinter *r)
20703 TALLOC_CTX *_mem_save_handle_0;
20704 if (flags & NDR_IN) {
20705 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20706 NDR_PULL_ALLOC(ndr, r->in.handle);
20708 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20709 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20710 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20711 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20713 if (flags & NDR_OUT) {
20714 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20716 return NDR_ERR_SUCCESS;
20719 _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartPagePrinter *r)
20721 ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
20722 ndr->depth++;
20723 if (flags & NDR_SET_VALUES) {
20724 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20726 if (flags & NDR_IN) {
20727 ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
20728 ndr->depth++;
20729 ndr_print_ptr(ndr, "handle", r->in.handle);
20730 ndr->depth++;
20731 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20732 ndr->depth--;
20733 ndr->depth--;
20735 if (flags & NDR_OUT) {
20736 ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
20737 ndr->depth++;
20738 ndr_print_WERROR(ndr, "result", r->out.result);
20739 ndr->depth--;
20741 ndr->depth--;
20744 static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, int flags, const struct spoolss_WritePrinter *r)
20746 if (flags & NDR_IN) {
20747 if (r->in.handle == NULL) {
20748 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20750 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20751 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
20752 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
20754 if (flags & NDR_OUT) {
20755 if (r->out.num_written == NULL) {
20756 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20758 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_written));
20759 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20761 return NDR_ERR_SUCCESS;
20764 static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, int flags, struct spoolss_WritePrinter *r)
20766 TALLOC_CTX *_mem_save_handle_0;
20767 TALLOC_CTX *_mem_save_num_written_0;
20768 if (flags & NDR_IN) {
20769 ZERO_STRUCT(r->out);
20771 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20772 NDR_PULL_ALLOC(ndr, r->in.handle);
20774 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20775 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20776 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20777 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20778 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
20779 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
20780 NDR_PULL_ALLOC(ndr, r->out.num_written);
20781 ZERO_STRUCTP(r->out.num_written);
20783 if (flags & NDR_OUT) {
20784 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20785 NDR_PULL_ALLOC(ndr, r->out.num_written);
20787 _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
20788 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
20789 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
20790 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
20791 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20793 return NDR_ERR_SUCCESS;
20796 _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WritePrinter *r)
20798 ndr_print_struct(ndr, name, "spoolss_WritePrinter");
20799 ndr->depth++;
20800 if (flags & NDR_SET_VALUES) {
20801 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20803 if (flags & NDR_IN) {
20804 ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
20805 ndr->depth++;
20806 ndr_print_ptr(ndr, "handle", r->in.handle);
20807 ndr->depth++;
20808 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20809 ndr->depth--;
20810 ndr_print_DATA_BLOB(ndr, "data", r->in.data);
20811 ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
20812 ndr->depth--;
20814 if (flags & NDR_OUT) {
20815 ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
20816 ndr->depth++;
20817 ndr_print_ptr(ndr, "num_written", r->out.num_written);
20818 ndr->depth++;
20819 ndr_print_uint32(ndr, "num_written", *r->out.num_written);
20820 ndr->depth--;
20821 ndr_print_WERROR(ndr, "result", r->out.result);
20822 ndr->depth--;
20824 ndr->depth--;
20827 static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndPagePrinter *r)
20829 if (flags & NDR_IN) {
20830 if (r->in.handle == NULL) {
20831 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20833 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20835 if (flags & NDR_OUT) {
20836 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20838 return NDR_ERR_SUCCESS;
20841 static enum ndr_err_code ndr_pull_spoolss_EndPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndPagePrinter *r)
20843 TALLOC_CTX *_mem_save_handle_0;
20844 if (flags & NDR_IN) {
20845 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20846 NDR_PULL_ALLOC(ndr, r->in.handle);
20848 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20849 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20850 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20851 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20853 if (flags & NDR_OUT) {
20854 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20856 return NDR_ERR_SUCCESS;
20859 _PUBLIC_ void ndr_print_spoolss_EndPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndPagePrinter *r)
20861 ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
20862 ndr->depth++;
20863 if (flags & NDR_SET_VALUES) {
20864 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20866 if (flags & NDR_IN) {
20867 ndr_print_struct(ndr, "in", "spoolss_EndPagePrinter");
20868 ndr->depth++;
20869 ndr_print_ptr(ndr, "handle", r->in.handle);
20870 ndr->depth++;
20871 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20872 ndr->depth--;
20873 ndr->depth--;
20875 if (flags & NDR_OUT) {
20876 ndr_print_struct(ndr, "out", "spoolss_EndPagePrinter");
20877 ndr->depth++;
20878 ndr_print_WERROR(ndr, "result", r->out.result);
20879 ndr->depth--;
20881 ndr->depth--;
20884 static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AbortPrinter *r)
20886 if (flags & NDR_IN) {
20887 if (r->in.handle == NULL) {
20888 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20890 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20892 if (flags & NDR_OUT) {
20893 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20895 return NDR_ERR_SUCCESS;
20898 static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AbortPrinter *r)
20900 TALLOC_CTX *_mem_save_handle_0;
20901 if (flags & NDR_IN) {
20902 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20903 NDR_PULL_ALLOC(ndr, r->in.handle);
20905 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20906 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20907 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20908 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20910 if (flags & NDR_OUT) {
20911 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20913 return NDR_ERR_SUCCESS;
20916 _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AbortPrinter *r)
20918 ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
20919 ndr->depth++;
20920 if (flags & NDR_SET_VALUES) {
20921 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20923 if (flags & NDR_IN) {
20924 ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
20925 ndr->depth++;
20926 ndr_print_ptr(ndr, "handle", r->in.handle);
20927 ndr->depth++;
20928 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20929 ndr->depth--;
20930 ndr->depth--;
20932 if (flags & NDR_OUT) {
20933 ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
20934 ndr->depth++;
20935 ndr_print_WERROR(ndr, "result", r->out.result);
20936 ndr->depth--;
20938 ndr->depth--;
20941 static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReadPrinter *r)
20943 if (flags & NDR_IN) {
20944 if (r->in.handle == NULL) {
20945 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20947 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20948 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
20950 if (flags & NDR_OUT) {
20951 if (r->out.data == NULL) {
20952 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20954 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
20955 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
20956 if (r->out._data_size == NULL) {
20957 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20959 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
20960 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20962 return NDR_ERR_SUCCESS;
20965 static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReadPrinter *r)
20967 TALLOC_CTX *_mem_save_handle_0;
20968 TALLOC_CTX *_mem_save__data_size_0;
20969 if (flags & NDR_IN) {
20970 ZERO_STRUCT(r->out);
20972 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20973 NDR_PULL_ALLOC(ndr, r->in.handle);
20975 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20976 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20977 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20978 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20979 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
20980 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
20981 memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
20982 NDR_PULL_ALLOC(ndr, r->out._data_size);
20983 ZERO_STRUCTP(r->out._data_size);
20985 if (flags & NDR_OUT) {
20986 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
20987 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20988 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
20990 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
20991 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20992 NDR_PULL_ALLOC(ndr, r->out._data_size);
20994 _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
20995 NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
20996 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
20997 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
20998 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20999 if (r->out.data) {
21000 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_size));
21003 return NDR_ERR_SUCCESS;
21006 _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReadPrinter *r)
21008 ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
21009 ndr->depth++;
21010 if (flags & NDR_SET_VALUES) {
21011 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21013 if (flags & NDR_IN) {
21014 ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
21015 ndr->depth++;
21016 ndr_print_ptr(ndr, "handle", r->in.handle);
21017 ndr->depth++;
21018 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21019 ndr->depth--;
21020 ndr_print_uint32(ndr, "data_size", r->in.data_size);
21021 ndr->depth--;
21023 if (flags & NDR_OUT) {
21024 ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
21025 ndr->depth++;
21026 ndr_print_ptr(ndr, "data", r->out.data);
21027 ndr->depth++;
21028 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
21029 ndr->depth--;
21030 ndr_print_ptr(ndr, "_data_size", r->out._data_size);
21031 ndr->depth++;
21032 ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
21033 ndr->depth--;
21034 ndr_print_WERROR(ndr, "result", r->out.result);
21035 ndr->depth--;
21037 ndr->depth--;
21040 static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndDocPrinter *r)
21042 if (flags & NDR_IN) {
21043 if (r->in.handle == NULL) {
21044 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21046 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21048 if (flags & NDR_OUT) {
21049 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21051 return NDR_ERR_SUCCESS;
21054 static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndDocPrinter *r)
21056 TALLOC_CTX *_mem_save_handle_0;
21057 if (flags & NDR_IN) {
21058 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21059 NDR_PULL_ALLOC(ndr, r->in.handle);
21061 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21062 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21063 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21064 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21066 if (flags & NDR_OUT) {
21067 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21069 return NDR_ERR_SUCCESS;
21072 _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndDocPrinter *r)
21074 ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
21075 ndr->depth++;
21076 if (flags & NDR_SET_VALUES) {
21077 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21079 if (flags & NDR_IN) {
21080 ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
21081 ndr->depth++;
21082 ndr_print_ptr(ndr, "handle", r->in.handle);
21083 ndr->depth++;
21084 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21085 ndr->depth--;
21086 ndr->depth--;
21088 if (flags & NDR_OUT) {
21089 ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
21090 ndr->depth++;
21091 ndr_print_WERROR(ndr, "result", r->out.result);
21092 ndr->depth--;
21094 ndr->depth--;
21097 static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, int flags, const struct spoolss_AddJob *r)
21099 if (flags & NDR_IN) {
21100 if (r->in.handle == NULL) {
21101 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21103 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21104 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21105 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21106 if (r->in.buffer) {
21107 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21108 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
21110 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21112 if (flags & NDR_OUT) {
21113 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
21114 if (r->out.buffer) {
21115 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21116 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
21118 if (r->out.needed == NULL) {
21119 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21121 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21122 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21124 return NDR_ERR_SUCCESS;
21127 static enum ndr_err_code ndr_pull_spoolss_AddJob(struct ndr_pull *ndr, int flags, struct spoolss_AddJob *r)
21129 uint32_t _ptr_buffer;
21130 TALLOC_CTX *_mem_save_handle_0;
21131 TALLOC_CTX *_mem_save_buffer_0;
21132 TALLOC_CTX *_mem_save_needed_0;
21133 if (flags & NDR_IN) {
21134 ZERO_STRUCT(r->out);
21136 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21137 NDR_PULL_ALLOC(ndr, r->in.handle);
21139 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21140 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21141 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21142 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21143 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21144 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21145 if (_ptr_buffer) {
21146 NDR_PULL_ALLOC(ndr, r->in.buffer);
21147 } else {
21148 r->in.buffer = NULL;
21150 if (r->in.buffer) {
21151 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21152 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21153 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
21154 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
21155 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
21156 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21158 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21159 NDR_PULL_ALLOC(ndr, r->out.needed);
21160 ZERO_STRUCTP(r->out.needed);
21161 if (r->in.buffer) {
21162 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
21165 if (flags & NDR_OUT) {
21166 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21167 if (_ptr_buffer) {
21168 NDR_PULL_ALLOC(ndr, r->out.buffer);
21169 } else {
21170 r->out.buffer = NULL;
21172 if (r->out.buffer) {
21173 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21174 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
21175 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
21176 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
21177 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
21178 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21180 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21181 NDR_PULL_ALLOC(ndr, r->out.needed);
21183 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21184 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21185 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21186 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21187 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21188 if (r->out.buffer) {
21189 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
21192 return NDR_ERR_SUCCESS;
21195 _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r)
21197 ndr_print_struct(ndr, name, "spoolss_AddJob");
21198 ndr->depth++;
21199 if (flags & NDR_SET_VALUES) {
21200 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21202 if (flags & NDR_IN) {
21203 ndr_print_struct(ndr, "in", "spoolss_AddJob");
21204 ndr->depth++;
21205 ndr_print_ptr(ndr, "handle", r->in.handle);
21206 ndr->depth++;
21207 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21208 ndr->depth--;
21209 ndr_print_uint32(ndr, "level", r->in.level);
21210 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21211 ndr->depth++;
21212 if (r->in.buffer) {
21213 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
21215 ndr->depth--;
21216 ndr_print_uint32(ndr, "offered", r->in.offered);
21217 ndr->depth--;
21219 if (flags & NDR_OUT) {
21220 ndr_print_struct(ndr, "out", "spoolss_AddJob");
21221 ndr->depth++;
21222 ndr_print_ptr(ndr, "buffer", r->out.buffer);
21223 ndr->depth++;
21224 if (r->out.buffer) {
21225 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
21227 ndr->depth--;
21228 ndr_print_ptr(ndr, "needed", r->out.needed);
21229 ndr->depth++;
21230 ndr_print_uint32(ndr, "needed", *r->out.needed);
21231 ndr->depth--;
21232 ndr_print_WERROR(ndr, "result", r->out.result);
21233 ndr->depth--;
21235 ndr->depth--;
21238 static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, int flags, const struct spoolss_ScheduleJob *r)
21240 if (flags & NDR_IN) {
21241 if (r->in.handle == NULL) {
21242 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21244 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21245 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
21247 if (flags & NDR_OUT) {
21248 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21250 return NDR_ERR_SUCCESS;
21253 static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, int flags, struct spoolss_ScheduleJob *r)
21255 TALLOC_CTX *_mem_save_handle_0;
21256 if (flags & NDR_IN) {
21257 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21258 NDR_PULL_ALLOC(ndr, r->in.handle);
21260 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21261 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21262 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21263 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21264 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.jobid));
21266 if (flags & NDR_OUT) {
21267 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21269 return NDR_ERR_SUCCESS;
21272 _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ScheduleJob *r)
21274 ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
21275 ndr->depth++;
21276 if (flags & NDR_SET_VALUES) {
21277 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21279 if (flags & NDR_IN) {
21280 ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
21281 ndr->depth++;
21282 ndr_print_ptr(ndr, "handle", r->in.handle);
21283 ndr->depth++;
21284 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21285 ndr->depth--;
21286 ndr_print_uint32(ndr, "jobid", r->in.jobid);
21287 ndr->depth--;
21289 if (flags & NDR_OUT) {
21290 ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
21291 ndr->depth++;
21292 ndr_print_WERROR(ndr, "result", r->out.result);
21293 ndr->depth--;
21295 ndr->depth--;
21298 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterData *r)
21300 if (flags & NDR_IN) {
21301 if (r->in.handle == NULL) {
21302 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21304 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21305 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21306 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21307 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21308 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));
21309 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21311 if (flags & NDR_OUT) {
21312 if (r->out.type == NULL) {
21313 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21315 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, *r->out.type));
21316 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
21317 if (r->out.needed == NULL) {
21318 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21320 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21321 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21323 return NDR_ERR_SUCCESS;
21326 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterData *r)
21328 TALLOC_CTX *_mem_save_handle_0;
21329 TALLOC_CTX *_mem_save_type_0;
21330 TALLOC_CTX *_mem_save_needed_0;
21331 if (flags & NDR_IN) {
21332 ZERO_STRUCT(r->out);
21334 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21335 NDR_PULL_ALLOC(ndr, r->in.handle);
21337 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21338 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21339 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21340 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21341 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
21342 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
21343 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
21344 return 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));
21346 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
21347 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));
21348 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21349 NDR_PULL_ALLOC(ndr, r->out.type);
21350 ZERO_STRUCTP(r->out.type);
21351 NDR_PULL_ALLOC(ndr, r->out.needed);
21352 ZERO_STRUCTP(r->out.needed);
21354 if (flags & NDR_OUT) {
21355 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21356 NDR_PULL_ALLOC(ndr, r->out.type);
21358 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
21359 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
21360 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->out.type));
21361 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
21362 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->out.data));
21363 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21364 NDR_PULL_ALLOC(ndr, r->out.needed);
21366 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21367 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21368 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21369 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21370 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21372 return NDR_ERR_SUCCESS;
21375 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterData *r)
21377 if (flags & NDR_IN) {
21378 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
21380 if (flags & NDR_OUT) {
21381 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.data, r->in.type));
21382 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
21384 return NDR_ERR_SUCCESS;
21387 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterData *r)
21389 if (flags & NDR_IN) {
21390 ZERO_STRUCT(r->out);
21392 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, &r->in.type));
21394 if (flags & NDR_OUT) {
21395 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.data, r->in.type));
21396 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
21398 return NDR_ERR_SUCCESS;
21401 _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterData *r)
21403 ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
21404 ndr->depth++;
21405 if (flags & NDR_SET_VALUES) {
21406 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21408 if (flags & NDR_IN) {
21409 ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
21410 ndr->depth++;
21411 ndr_print_ptr(ndr, "handle", r->in.handle);
21412 ndr->depth++;
21413 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21414 ndr->depth--;
21415 ndr_print_string(ndr, "value_name", r->in.value_name);
21416 ndr_print_uint32(ndr, "offered", r->in.offered);
21417 ndr->depth--;
21419 if (flags & NDR_OUT) {
21420 ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
21421 ndr->depth++;
21422 ndr_print_ptr(ndr, "type", r->out.type);
21423 ndr->depth++;
21424 ndr_print_spoolss_PrinterDataType(ndr, "type", *r->out.type);
21425 ndr->depth--;
21426 ndr_print_set_switch_value(ndr, &r->out.data, *r->out.type);
21427 ndr_print_spoolss_PrinterData(ndr, "data", &r->out.data);
21428 ndr_print_ptr(ndr, "needed", r->out.needed);
21429 ndr->depth++;
21430 ndr_print_uint32(ndr, "needed", *r->out.needed);
21431 ndr->depth--;
21432 ndr_print_WERROR(ndr, "result", r->out.result);
21433 ndr->depth--;
21435 ndr->depth--;
21438 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterData *r)
21440 if (flags & NDR_IN) {
21441 if (r->in.handle == NULL) {
21442 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21444 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21445 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21446 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21447 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21448 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));
21449 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
21450 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
21451 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
21453 if (flags & NDR_OUT) {
21454 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21456 return NDR_ERR_SUCCESS;
21459 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterData *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 static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterData *r)
21473 TALLOC_CTX *_mem_save_handle_0;
21474 if (flags & NDR_IN) {
21475 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21476 NDR_PULL_ALLOC(ndr, r->in.handle);
21478 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21479 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21480 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21481 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21482 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
21483 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
21484 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
21485 return 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));
21487 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
21488 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));
21489 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, &r->in.type));
21491 struct ndr_pull *_ndr_data;
21492 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
21493 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
21494 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
21495 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
21497 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
21499 if (flags & NDR_OUT) {
21500 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21502 return NDR_ERR_SUCCESS;
21505 _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r)
21507 ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
21508 ndr->depth++;
21509 if (flags & NDR_SET_VALUES) {
21510 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21512 if (flags & NDR_IN) {
21513 ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
21514 ndr->depth++;
21515 ndr_print_ptr(ndr, "handle", r->in.handle);
21516 ndr->depth++;
21517 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21518 ndr->depth--;
21519 ndr_print_string(ndr, "value_name", r->in.value_name);
21520 ndr_print_spoolss_PrinterDataType(ndr, "type", r->in.type);
21521 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
21522 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
21523 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);
21524 ndr->depth--;
21526 if (flags & NDR_OUT) {
21527 ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
21528 ndr->depth++;
21529 ndr_print_WERROR(ndr, "result", r->out.result);
21530 ndr->depth--;
21532 ndr->depth--;
21535 static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, int flags, const struct spoolss_WaitForPrinterChange *r)
21537 if (flags & NDR_IN) {
21539 if (flags & NDR_OUT) {
21540 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21542 return NDR_ERR_SUCCESS;
21545 static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, int flags, struct spoolss_WaitForPrinterChange *r)
21547 if (flags & NDR_IN) {
21549 if (flags & NDR_OUT) {
21550 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21552 return NDR_ERR_SUCCESS;
21555 _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r)
21557 ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
21558 ndr->depth++;
21559 if (flags & NDR_SET_VALUES) {
21560 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21562 if (flags & NDR_IN) {
21563 ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
21564 ndr->depth++;
21565 ndr->depth--;
21567 if (flags & NDR_OUT) {
21568 ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
21569 ndr->depth++;
21570 ndr_print_WERROR(ndr, "result", r->out.result);
21571 ndr->depth--;
21573 ndr->depth--;
21576 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ClosePrinter *r)
21578 if (flags & NDR_IN) {
21579 if (r->in.handle == NULL) {
21580 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21582 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21584 if (flags & NDR_OUT) {
21585 if (r->out.handle == NULL) {
21586 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21588 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21589 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21591 return NDR_ERR_SUCCESS;
21594 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ClosePrinter *r)
21596 TALLOC_CTX *_mem_save_handle_0;
21597 if (flags & NDR_IN) {
21598 ZERO_STRUCT(r->out);
21600 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21601 NDR_PULL_ALLOC(ndr, r->in.handle);
21603 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21604 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21605 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21606 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21607 NDR_PULL_ALLOC(ndr, r->out.handle);
21608 *r->out.handle = *r->in.handle;
21610 if (flags & NDR_OUT) {
21611 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21612 NDR_PULL_ALLOC(ndr, r->out.handle);
21614 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21615 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
21616 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21617 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21618 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21620 return NDR_ERR_SUCCESS;
21623 _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ClosePrinter *r)
21625 ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
21626 ndr->depth++;
21627 if (flags & NDR_SET_VALUES) {
21628 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21630 if (flags & NDR_IN) {
21631 ndr_print_struct(ndr, "in", "spoolss_ClosePrinter");
21632 ndr->depth++;
21633 ndr_print_ptr(ndr, "handle", r->in.handle);
21634 ndr->depth++;
21635 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21636 ndr->depth--;
21637 ndr->depth--;
21639 if (flags & NDR_OUT) {
21640 ndr_print_struct(ndr, "out", "spoolss_ClosePrinter");
21641 ndr->depth++;
21642 ndr_print_ptr(ndr, "handle", r->out.handle);
21643 ndr->depth++;
21644 ndr_print_policy_handle(ndr, "handle", r->out.handle);
21645 ndr->depth--;
21646 ndr_print_WERROR(ndr, "result", r->out.result);
21647 ndr->depth--;
21649 ndr->depth--;
21652 static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, int flags, const struct spoolss_AddForm *r)
21654 if (flags & NDR_IN) {
21655 if (r->in.handle == NULL) {
21656 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21658 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21659 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21660 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
21661 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
21663 if (flags & NDR_OUT) {
21664 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21666 return NDR_ERR_SUCCESS;
21669 static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, int flags, struct spoolss_AddForm *r)
21671 TALLOC_CTX *_mem_save_handle_0;
21672 if (flags & NDR_IN) {
21673 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21674 NDR_PULL_ALLOC(ndr, r->in.handle);
21676 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21677 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21678 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21679 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21680 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21681 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
21682 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
21684 if (flags & NDR_OUT) {
21685 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21687 return NDR_ERR_SUCCESS;
21690 _PUBLIC_ void ndr_print_spoolss_AddForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddForm *r)
21692 ndr_print_struct(ndr, name, "spoolss_AddForm");
21693 ndr->depth++;
21694 if (flags & NDR_SET_VALUES) {
21695 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21697 if (flags & NDR_IN) {
21698 ndr_print_struct(ndr, "in", "spoolss_AddForm");
21699 ndr->depth++;
21700 ndr_print_ptr(ndr, "handle", r->in.handle);
21701 ndr->depth++;
21702 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21703 ndr->depth--;
21704 ndr_print_uint32(ndr, "level", r->in.level);
21705 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
21706 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
21707 ndr->depth--;
21709 if (flags & NDR_OUT) {
21710 ndr_print_struct(ndr, "out", "spoolss_AddForm");
21711 ndr->depth++;
21712 ndr_print_WERROR(ndr, "result", r->out.result);
21713 ndr->depth--;
21715 ndr->depth--;
21718 static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, int flags, const struct spoolss_DeleteForm *r)
21720 if (flags & NDR_IN) {
21721 if (r->in.handle == NULL) {
21722 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21724 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21725 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
21726 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21727 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
21728 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));
21730 if (flags & NDR_OUT) {
21731 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21733 return NDR_ERR_SUCCESS;
21736 static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, int flags, struct spoolss_DeleteForm *r)
21738 TALLOC_CTX *_mem_save_handle_0;
21739 if (flags & NDR_IN) {
21740 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21741 NDR_PULL_ALLOC(ndr, r->in.handle);
21743 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21744 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21745 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21746 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21747 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
21748 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
21749 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
21750 return 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));
21752 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
21753 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));
21755 if (flags & NDR_OUT) {
21756 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21758 return NDR_ERR_SUCCESS;
21761 _PUBLIC_ void ndr_print_spoolss_DeleteForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteForm *r)
21763 ndr_print_struct(ndr, name, "spoolss_DeleteForm");
21764 ndr->depth++;
21765 if (flags & NDR_SET_VALUES) {
21766 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21768 if (flags & NDR_IN) {
21769 ndr_print_struct(ndr, "in", "spoolss_DeleteForm");
21770 ndr->depth++;
21771 ndr_print_ptr(ndr, "handle", r->in.handle);
21772 ndr->depth++;
21773 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21774 ndr->depth--;
21775 ndr_print_string(ndr, "form_name", r->in.form_name);
21776 ndr->depth--;
21778 if (flags & NDR_OUT) {
21779 ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
21780 ndr->depth++;
21781 ndr_print_WERROR(ndr, "result", r->out.result);
21782 ndr->depth--;
21784 ndr->depth--;
21787 static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, int flags, const struct spoolss_GetForm *r)
21789 if (flags & NDR_IN) {
21790 if (r->in.handle == NULL) {
21791 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21793 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21794 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
21795 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21796 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
21797 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));
21798 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21799 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21800 if (r->in.buffer) {
21801 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21803 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21805 if (flags & NDR_OUT) {
21806 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21807 if (r->out.info) {
21809 struct ndr_push *_ndr_info;
21810 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21811 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21812 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21813 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21816 if (r->out.needed == NULL) {
21817 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21819 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21820 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21822 return NDR_ERR_SUCCESS;
21825 static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, int flags, struct spoolss_GetForm *r)
21827 uint32_t _ptr_buffer;
21828 uint32_t _ptr_info;
21829 TALLOC_CTX *_mem_save_handle_0;
21830 TALLOC_CTX *_mem_save_buffer_0;
21831 TALLOC_CTX *_mem_save_info_0;
21832 TALLOC_CTX *_mem_save_needed_0;
21833 if (flags & NDR_IN) {
21834 ZERO_STRUCT(r->out);
21836 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21837 NDR_PULL_ALLOC(ndr, r->in.handle);
21839 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21840 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21841 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21842 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21843 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
21844 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
21845 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
21846 return 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));
21848 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
21849 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));
21850 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21851 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21852 if (_ptr_buffer) {
21853 NDR_PULL_ALLOC(ndr, r->in.buffer);
21854 } else {
21855 r->in.buffer = NULL;
21857 if (r->in.buffer) {
21858 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21859 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21860 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21861 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21863 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21864 NDR_PULL_ALLOC(ndr, r->out.needed);
21865 ZERO_STRUCTP(r->out.needed);
21867 if (flags & NDR_OUT) {
21868 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21869 if (_ptr_info) {
21870 NDR_PULL_ALLOC(ndr, r->out.info);
21871 } else {
21872 r->out.info = NULL;
21874 if (r->out.info) {
21875 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21876 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21878 struct ndr_pull *_ndr_info;
21879 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21880 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21881 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21882 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21884 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21886 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21887 NDR_PULL_ALLOC(ndr, r->out.needed);
21889 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21890 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21891 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21892 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21893 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21895 return NDR_ERR_SUCCESS;
21898 _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetForm *r)
21900 ndr_print_struct(ndr, name, "spoolss_GetForm");
21901 ndr->depth++;
21902 if (flags & NDR_SET_VALUES) {
21903 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21905 if (flags & NDR_IN) {
21906 ndr_print_struct(ndr, "in", "spoolss_GetForm");
21907 ndr->depth++;
21908 ndr_print_ptr(ndr, "handle", r->in.handle);
21909 ndr->depth++;
21910 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21911 ndr->depth--;
21912 ndr_print_string(ndr, "form_name", r->in.form_name);
21913 ndr_print_uint32(ndr, "level", r->in.level);
21914 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21915 ndr->depth++;
21916 if (r->in.buffer) {
21917 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21919 ndr->depth--;
21920 ndr_print_uint32(ndr, "offered", r->in.offered);
21921 ndr->depth--;
21923 if (flags & NDR_OUT) {
21924 ndr_print_struct(ndr, "out", "spoolss_GetForm");
21925 ndr->depth++;
21926 ndr_print_ptr(ndr, "info", r->out.info);
21927 ndr->depth++;
21928 if (r->out.info) {
21929 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21930 ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
21932 ndr->depth--;
21933 ndr_print_ptr(ndr, "needed", r->out.needed);
21934 ndr->depth++;
21935 ndr_print_uint32(ndr, "needed", *r->out.needed);
21936 ndr->depth--;
21937 ndr_print_WERROR(ndr, "result", r->out.result);
21938 ndr->depth--;
21940 ndr->depth--;
21943 static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, int flags, const struct spoolss_SetForm *r)
21945 if (flags & NDR_IN) {
21946 if (r->in.handle == NULL) {
21947 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21949 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21950 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
21951 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21952 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
21953 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));
21954 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21955 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
21956 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
21958 if (flags & NDR_OUT) {
21959 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21961 return NDR_ERR_SUCCESS;
21964 static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, int flags, struct spoolss_SetForm *r)
21966 TALLOC_CTX *_mem_save_handle_0;
21967 if (flags & NDR_IN) {
21968 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21969 NDR_PULL_ALLOC(ndr, r->in.handle);
21971 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21972 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21973 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21974 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21975 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
21976 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
21977 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
21978 return 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));
21980 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
21981 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));
21982 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21983 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
21984 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
21986 if (flags & NDR_OUT) {
21987 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21989 return NDR_ERR_SUCCESS;
21992 _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetForm *r)
21994 ndr_print_struct(ndr, name, "spoolss_SetForm");
21995 ndr->depth++;
21996 if (flags & NDR_SET_VALUES) {
21997 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21999 if (flags & NDR_IN) {
22000 ndr_print_struct(ndr, "in", "spoolss_SetForm");
22001 ndr->depth++;
22002 ndr_print_ptr(ndr, "handle", r->in.handle);
22003 ndr->depth++;
22004 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22005 ndr->depth--;
22006 ndr_print_string(ndr, "form_name", r->in.form_name);
22007 ndr_print_uint32(ndr, "level", r->in.level);
22008 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
22009 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
22010 ndr->depth--;
22012 if (flags & NDR_OUT) {
22013 ndr_print_struct(ndr, "out", "spoolss_SetForm");
22014 ndr->depth++;
22015 ndr_print_WERROR(ndr, "result", r->out.result);
22016 ndr->depth--;
22018 ndr->depth--;
22021 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct _spoolss_EnumForms *r)
22023 if (flags & NDR_IN) {
22024 if (r->in.handle == NULL) {
22025 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22027 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22028 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22029 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22030 if (r->in.buffer) {
22031 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22033 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22035 if (flags & NDR_OUT) {
22036 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22037 if (r->out.info) {
22038 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
22040 if (r->out.needed == NULL) {
22041 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22043 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22044 if (r->out.count == NULL) {
22045 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22047 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22048 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22050 return NDR_ERR_SUCCESS;
22053 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct _spoolss_EnumForms *r)
22055 uint32_t _ptr_buffer;
22056 uint32_t _ptr_info;
22057 TALLOC_CTX *_mem_save_handle_0;
22058 TALLOC_CTX *_mem_save_buffer_0;
22059 TALLOC_CTX *_mem_save_info_0;
22060 TALLOC_CTX *_mem_save_needed_0;
22061 TALLOC_CTX *_mem_save_count_0;
22062 if (flags & NDR_IN) {
22063 ZERO_STRUCT(r->out);
22065 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22066 NDR_PULL_ALLOC(ndr, r->in.handle);
22068 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22069 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22070 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22071 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22072 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22073 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22074 if (_ptr_buffer) {
22075 NDR_PULL_ALLOC(ndr, r->in.buffer);
22076 } else {
22077 r->in.buffer = NULL;
22079 if (r->in.buffer) {
22080 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22081 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22082 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22083 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22085 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22086 NDR_PULL_ALLOC(ndr, r->out.needed);
22087 ZERO_STRUCTP(r->out.needed);
22088 NDR_PULL_ALLOC(ndr, r->out.count);
22089 ZERO_STRUCTP(r->out.count);
22091 if (flags & NDR_OUT) {
22092 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22093 if (_ptr_info) {
22094 NDR_PULL_ALLOC(ndr, r->out.info);
22095 } else {
22096 r->out.info = NULL;
22098 if (r->out.info) {
22099 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22100 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22101 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
22102 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22104 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22105 NDR_PULL_ALLOC(ndr, r->out.needed);
22107 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22108 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22109 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22110 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22111 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22112 NDR_PULL_ALLOC(ndr, r->out.count);
22114 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22115 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22116 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22117 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22118 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22120 return NDR_ERR_SUCCESS;
22123 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct __spoolss_EnumForms *r)
22125 uint32_t cntr_info_0;
22126 if (flags & NDR_IN) {
22127 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22128 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
22130 if (flags & NDR_OUT) {
22131 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22132 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22133 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22135 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22136 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22139 return NDR_ERR_SUCCESS;
22142 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct __spoolss_EnumForms *r)
22144 uint32_t cntr_info_0;
22145 TALLOC_CTX *_mem_save_info_0;
22146 if (flags & NDR_IN) {
22147 ZERO_STRUCT(r->out);
22149 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22150 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
22152 if (flags & NDR_OUT) {
22153 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
22154 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22155 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22156 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22157 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22158 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22160 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22161 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22163 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22165 return NDR_ERR_SUCCESS;
22168 _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumForms *r)
22170 uint32_t cntr_info_1;
22171 ndr_print_struct(ndr, name, "spoolss_EnumForms");
22172 ndr->depth++;
22173 if (flags & NDR_SET_VALUES) {
22174 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22176 if (flags & NDR_IN) {
22177 ndr_print_struct(ndr, "in", "spoolss_EnumForms");
22178 ndr->depth++;
22179 ndr_print_ptr(ndr, "handle", r->in.handle);
22180 ndr->depth++;
22181 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22182 ndr->depth--;
22183 ndr_print_uint32(ndr, "level", r->in.level);
22184 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22185 ndr->depth++;
22186 if (r->in.buffer) {
22187 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22189 ndr->depth--;
22190 ndr_print_uint32(ndr, "offered", r->in.offered);
22191 ndr->depth--;
22193 if (flags & NDR_OUT) {
22194 ndr_print_struct(ndr, "out", "spoolss_EnumForms");
22195 ndr->depth++;
22196 ndr_print_ptr(ndr, "count", r->out.count);
22197 ndr->depth++;
22198 ndr_print_uint32(ndr, "count", *r->out.count);
22199 ndr->depth--;
22200 ndr_print_ptr(ndr, "info", r->out.info);
22201 ndr->depth++;
22202 if (r->out.info) {
22203 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
22204 ndr->depth++;
22205 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
22206 char *idx_1=NULL;
22207 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
22208 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
22209 ndr_print_spoolss_FormInfo(ndr, "info", &r->out.info[cntr_info_1]);
22210 free(idx_1);
22213 ndr->depth--;
22215 ndr->depth--;
22216 ndr_print_ptr(ndr, "needed", r->out.needed);
22217 ndr->depth++;
22218 ndr_print_uint32(ndr, "needed", *r->out.needed);
22219 ndr->depth--;
22220 ndr_print_WERROR(ndr, "result", r->out.result);
22221 ndr->depth--;
22223 ndr->depth--;
22226 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPorts *r)
22228 if (flags & NDR_IN) {
22229 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
22230 if (r->in.servername) {
22231 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22232 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22233 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22234 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22236 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22237 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22238 if (r->in.buffer) {
22239 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22241 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22243 if (flags & NDR_OUT) {
22244 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22245 if (r->out.info) {
22246 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
22248 if (r->out.needed == NULL) {
22249 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22251 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22252 if (r->out.count == NULL) {
22253 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22255 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22256 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22258 return NDR_ERR_SUCCESS;
22261 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPorts *r)
22263 uint32_t _ptr_servername;
22264 uint32_t _ptr_buffer;
22265 uint32_t _ptr_info;
22266 TALLOC_CTX *_mem_save_servername_0;
22267 TALLOC_CTX *_mem_save_buffer_0;
22268 TALLOC_CTX *_mem_save_info_0;
22269 TALLOC_CTX *_mem_save_needed_0;
22270 TALLOC_CTX *_mem_save_count_0;
22271 if (flags & NDR_IN) {
22272 ZERO_STRUCT(r->out);
22274 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
22275 if (_ptr_servername) {
22276 NDR_PULL_ALLOC(ndr, r->in.servername);
22277 } else {
22278 r->in.servername = NULL;
22280 if (r->in.servername) {
22281 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
22282 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
22283 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
22284 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
22285 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
22286 return 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));
22288 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
22289 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
22290 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
22292 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22293 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22294 if (_ptr_buffer) {
22295 NDR_PULL_ALLOC(ndr, r->in.buffer);
22296 } else {
22297 r->in.buffer = NULL;
22299 if (r->in.buffer) {
22300 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22301 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22302 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22303 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22305 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22306 NDR_PULL_ALLOC(ndr, r->out.needed);
22307 ZERO_STRUCTP(r->out.needed);
22308 NDR_PULL_ALLOC(ndr, r->out.count);
22309 ZERO_STRUCTP(r->out.count);
22311 if (flags & NDR_OUT) {
22312 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22313 if (_ptr_info) {
22314 NDR_PULL_ALLOC(ndr, r->out.info);
22315 } else {
22316 r->out.info = NULL;
22318 if (r->out.info) {
22319 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22320 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22321 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
22322 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22324 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22325 NDR_PULL_ALLOC(ndr, r->out.needed);
22327 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22328 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22329 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22330 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22331 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22332 NDR_PULL_ALLOC(ndr, r->out.count);
22334 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22335 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22336 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22337 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22338 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22340 return NDR_ERR_SUCCESS;
22343 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPorts *r)
22345 uint32_t cntr_info_0;
22346 if (flags & NDR_IN) {
22347 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22348 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
22350 if (flags & NDR_OUT) {
22351 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22352 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22353 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22355 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22356 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22359 return NDR_ERR_SUCCESS;
22362 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPorts *r)
22364 uint32_t cntr_info_0;
22365 TALLOC_CTX *_mem_save_info_0;
22366 if (flags & NDR_IN) {
22367 ZERO_STRUCT(r->out);
22369 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22370 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
22372 if (flags & NDR_OUT) {
22373 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
22374 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22375 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22376 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22377 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22378 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22380 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22381 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22383 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22385 return NDR_ERR_SUCCESS;
22388 _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPorts *r)
22390 uint32_t cntr_info_1;
22391 ndr_print_struct(ndr, name, "spoolss_EnumPorts");
22392 ndr->depth++;
22393 if (flags & NDR_SET_VALUES) {
22394 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22396 if (flags & NDR_IN) {
22397 ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
22398 ndr->depth++;
22399 ndr_print_ptr(ndr, "servername", r->in.servername);
22400 ndr->depth++;
22401 if (r->in.servername) {
22402 ndr_print_string(ndr, "servername", r->in.servername);
22404 ndr->depth--;
22405 ndr_print_uint32(ndr, "level", r->in.level);
22406 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22407 ndr->depth++;
22408 if (r->in.buffer) {
22409 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22411 ndr->depth--;
22412 ndr_print_uint32(ndr, "offered", r->in.offered);
22413 ndr->depth--;
22415 if (flags & NDR_OUT) {
22416 ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
22417 ndr->depth++;
22418 ndr_print_ptr(ndr, "count", r->out.count);
22419 ndr->depth++;
22420 ndr_print_uint32(ndr, "count", *r->out.count);
22421 ndr->depth--;
22422 ndr_print_ptr(ndr, "info", r->out.info);
22423 ndr->depth++;
22424 if (r->out.info) {
22425 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
22426 ndr->depth++;
22427 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
22428 char *idx_1=NULL;
22429 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
22430 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
22431 ndr_print_spoolss_PortInfo(ndr, "info", &r->out.info[cntr_info_1]);
22432 free(idx_1);
22435 ndr->depth--;
22437 ndr->depth--;
22438 ndr_print_ptr(ndr, "needed", r->out.needed);
22439 ndr->depth++;
22440 ndr_print_uint32(ndr, "needed", *r->out.needed);
22441 ndr->depth--;
22442 ndr_print_WERROR(ndr, "result", r->out.result);
22443 ndr->depth--;
22445 ndr->depth--;
22448 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumMonitors *r)
22450 if (flags & NDR_IN) {
22451 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
22452 if (r->in.servername) {
22453 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22454 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22455 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22456 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22458 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22459 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22460 if (r->in.buffer) {
22461 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22463 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22465 if (flags & NDR_OUT) {
22466 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22467 if (r->out.info) {
22468 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
22470 if (r->out.needed == NULL) {
22471 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22473 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22474 if (r->out.count == NULL) {
22475 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22477 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22478 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22480 return NDR_ERR_SUCCESS;
22483 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumMonitors *r)
22485 uint32_t _ptr_servername;
22486 uint32_t _ptr_buffer;
22487 uint32_t _ptr_info;
22488 TALLOC_CTX *_mem_save_servername_0;
22489 TALLOC_CTX *_mem_save_buffer_0;
22490 TALLOC_CTX *_mem_save_info_0;
22491 TALLOC_CTX *_mem_save_needed_0;
22492 TALLOC_CTX *_mem_save_count_0;
22493 if (flags & NDR_IN) {
22494 ZERO_STRUCT(r->out);
22496 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
22497 if (_ptr_servername) {
22498 NDR_PULL_ALLOC(ndr, r->in.servername);
22499 } else {
22500 r->in.servername = NULL;
22502 if (r->in.servername) {
22503 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
22504 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
22505 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
22506 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
22507 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
22508 return 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));
22510 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
22511 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
22512 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
22514 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22515 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22516 if (_ptr_buffer) {
22517 NDR_PULL_ALLOC(ndr, r->in.buffer);
22518 } else {
22519 r->in.buffer = NULL;
22521 if (r->in.buffer) {
22522 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22523 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22524 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22525 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22527 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22528 NDR_PULL_ALLOC(ndr, r->out.needed);
22529 ZERO_STRUCTP(r->out.needed);
22530 NDR_PULL_ALLOC(ndr, r->out.count);
22531 ZERO_STRUCTP(r->out.count);
22533 if (flags & NDR_OUT) {
22534 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22535 if (_ptr_info) {
22536 NDR_PULL_ALLOC(ndr, r->out.info);
22537 } else {
22538 r->out.info = NULL;
22540 if (r->out.info) {
22541 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22542 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22543 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
22544 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22546 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22547 NDR_PULL_ALLOC(ndr, r->out.needed);
22549 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22550 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22551 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22552 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22553 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22554 NDR_PULL_ALLOC(ndr, r->out.count);
22556 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22557 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22558 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22559 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22560 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22562 return NDR_ERR_SUCCESS;
22565 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumMonitors *r)
22567 uint32_t cntr_info_0;
22568 if (flags & NDR_IN) {
22569 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22570 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
22572 if (flags & NDR_OUT) {
22573 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22574 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22575 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22577 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22578 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22581 return NDR_ERR_SUCCESS;
22584 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumMonitors *r)
22586 uint32_t cntr_info_0;
22587 TALLOC_CTX *_mem_save_info_0;
22588 if (flags & NDR_IN) {
22589 ZERO_STRUCT(r->out);
22591 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22592 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
22594 if (flags & NDR_OUT) {
22595 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
22596 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22597 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22598 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22599 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22600 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22602 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22603 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22605 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22607 return NDR_ERR_SUCCESS;
22610 _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumMonitors *r)
22612 uint32_t cntr_info_1;
22613 ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
22614 ndr->depth++;
22615 if (flags & NDR_SET_VALUES) {
22616 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22618 if (flags & NDR_IN) {
22619 ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
22620 ndr->depth++;
22621 ndr_print_ptr(ndr, "servername", r->in.servername);
22622 ndr->depth++;
22623 if (r->in.servername) {
22624 ndr_print_string(ndr, "servername", r->in.servername);
22626 ndr->depth--;
22627 ndr_print_uint32(ndr, "level", r->in.level);
22628 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22629 ndr->depth++;
22630 if (r->in.buffer) {
22631 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22633 ndr->depth--;
22634 ndr_print_uint32(ndr, "offered", r->in.offered);
22635 ndr->depth--;
22637 if (flags & NDR_OUT) {
22638 ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
22639 ndr->depth++;
22640 ndr_print_ptr(ndr, "count", r->out.count);
22641 ndr->depth++;
22642 ndr_print_uint32(ndr, "count", *r->out.count);
22643 ndr->depth--;
22644 ndr_print_ptr(ndr, "info", r->out.info);
22645 ndr->depth++;
22646 if (r->out.info) {
22647 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
22648 ndr->depth++;
22649 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
22650 char *idx_1=NULL;
22651 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
22652 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
22653 ndr_print_spoolss_MonitorInfo(ndr, "info", &r->out.info[cntr_info_1]);
22654 free(idx_1);
22657 ndr->depth--;
22659 ndr->depth--;
22660 ndr_print_ptr(ndr, "needed", r->out.needed);
22661 ndr->depth++;
22662 ndr_print_uint32(ndr, "needed", *r->out.needed);
22663 ndr->depth--;
22664 ndr_print_WERROR(ndr, "result", r->out.result);
22665 ndr->depth--;
22667 ndr->depth--;
22670 static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, int flags, const struct spoolss_AddPort *r)
22672 if (flags & NDR_IN) {
22673 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
22674 if (r->in.server_name) {
22675 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
22676 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22677 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
22678 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));
22680 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
22681 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
22682 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22683 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
22684 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));
22686 if (flags & NDR_OUT) {
22687 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22689 return NDR_ERR_SUCCESS;
22692 static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, int flags, struct spoolss_AddPort *r)
22694 uint32_t _ptr_server_name;
22695 TALLOC_CTX *_mem_save_server_name_0;
22696 if (flags & NDR_IN) {
22697 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
22698 if (_ptr_server_name) {
22699 NDR_PULL_ALLOC(ndr, r->in.server_name);
22700 } else {
22701 r->in.server_name = NULL;
22703 if (r->in.server_name) {
22704 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
22705 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
22706 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
22707 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
22708 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
22709 return 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));
22711 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
22712 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));
22713 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
22715 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
22716 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
22717 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
22718 if (ndr_get_array_length(ndr, &r->in.monitor_name) > ndr_get_array_size(ndr, &r->in.monitor_name)) {
22719 return 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));
22721 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t)));
22722 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));
22724 if (flags & NDR_OUT) {
22725 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22727 return NDR_ERR_SUCCESS;
22730 _PUBLIC_ void ndr_print_spoolss_AddPort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPort *r)
22732 ndr_print_struct(ndr, name, "spoolss_AddPort");
22733 ndr->depth++;
22734 if (flags & NDR_SET_VALUES) {
22735 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22737 if (flags & NDR_IN) {
22738 ndr_print_struct(ndr, "in", "spoolss_AddPort");
22739 ndr->depth++;
22740 ndr_print_ptr(ndr, "server_name", r->in.server_name);
22741 ndr->depth++;
22742 if (r->in.server_name) {
22743 ndr_print_string(ndr, "server_name", r->in.server_name);
22745 ndr->depth--;
22746 ndr_print_uint32(ndr, "unknown", r->in.unknown);
22747 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
22748 ndr->depth--;
22750 if (flags & NDR_OUT) {
22751 ndr_print_struct(ndr, "out", "spoolss_AddPort");
22752 ndr->depth++;
22753 ndr_print_WERROR(ndr, "result", r->out.result);
22754 ndr->depth--;
22756 ndr->depth--;
22759 static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, int flags, const struct spoolss_ConfigurePort *r)
22761 if (flags & NDR_IN) {
22763 if (flags & NDR_OUT) {
22764 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22766 return NDR_ERR_SUCCESS;
22769 static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, int flags, struct spoolss_ConfigurePort *r)
22771 if (flags & NDR_IN) {
22773 if (flags & NDR_OUT) {
22774 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22776 return NDR_ERR_SUCCESS;
22779 _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ConfigurePort *r)
22781 ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
22782 ndr->depth++;
22783 if (flags & NDR_SET_VALUES) {
22784 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22786 if (flags & NDR_IN) {
22787 ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
22788 ndr->depth++;
22789 ndr->depth--;
22791 if (flags & NDR_OUT) {
22792 ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
22793 ndr->depth++;
22794 ndr_print_WERROR(ndr, "result", r->out.result);
22795 ndr->depth--;
22797 ndr->depth--;
22800 static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, int flags, const struct spoolss_DeletePort *r)
22802 if (flags & NDR_IN) {
22804 if (flags & NDR_OUT) {
22805 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22807 return NDR_ERR_SUCCESS;
22810 static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, int flags, struct spoolss_DeletePort *r)
22812 if (flags & NDR_IN) {
22814 if (flags & NDR_OUT) {
22815 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22817 return NDR_ERR_SUCCESS;
22820 _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePort *r)
22822 ndr_print_struct(ndr, name, "spoolss_DeletePort");
22823 ndr->depth++;
22824 if (flags & NDR_SET_VALUES) {
22825 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22827 if (flags & NDR_IN) {
22828 ndr_print_struct(ndr, "in", "spoolss_DeletePort");
22829 ndr->depth++;
22830 ndr->depth--;
22832 if (flags & NDR_OUT) {
22833 ndr_print_struct(ndr, "out", "spoolss_DeletePort");
22834 ndr->depth++;
22835 ndr_print_WERROR(ndr, "result", r->out.result);
22836 ndr->depth--;
22838 ndr->depth--;
22841 static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_CreatePrinterIC *r)
22843 if (flags & NDR_IN) {
22845 if (flags & NDR_OUT) {
22846 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22848 return NDR_ERR_SUCCESS;
22851 static enum ndr_err_code ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_CreatePrinterIC *r)
22853 if (flags & NDR_IN) {
22855 if (flags & NDR_OUT) {
22856 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22858 return NDR_ERR_SUCCESS;
22861 _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_CreatePrinterIC *r)
22863 ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
22864 ndr->depth++;
22865 if (flags & NDR_SET_VALUES) {
22866 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22868 if (flags & NDR_IN) {
22869 ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
22870 ndr->depth++;
22871 ndr->depth--;
22873 if (flags & NDR_OUT) {
22874 ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
22875 ndr->depth++;
22876 ndr_print_WERROR(ndr, "result", r->out.result);
22877 ndr->depth--;
22879 ndr->depth--;
22882 static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
22884 if (flags & NDR_IN) {
22886 if (flags & NDR_OUT) {
22887 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22889 return NDR_ERR_SUCCESS;
22892 static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
22894 if (flags & NDR_IN) {
22896 if (flags & NDR_OUT) {
22897 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22899 return NDR_ERR_SUCCESS;
22902 _PUBLIC_ void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
22904 ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
22905 ndr->depth++;
22906 if (flags & NDR_SET_VALUES) {
22907 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22909 if (flags & NDR_IN) {
22910 ndr_print_struct(ndr, "in", "spoolss_PlayGDIScriptOnPrinterIC");
22911 ndr->depth++;
22912 ndr->depth--;
22914 if (flags & NDR_OUT) {
22915 ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
22916 ndr->depth++;
22917 ndr_print_WERROR(ndr, "result", r->out.result);
22918 ndr->depth--;
22920 ndr->depth--;
22923 static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterIC *r)
22925 if (flags & NDR_IN) {
22927 if (flags & NDR_OUT) {
22928 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22930 return NDR_ERR_SUCCESS;
22933 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterIC *r)
22935 if (flags & NDR_IN) {
22937 if (flags & NDR_OUT) {
22938 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22940 return NDR_ERR_SUCCESS;
22943 _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterIC *r)
22945 ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
22946 ndr->depth++;
22947 if (flags & NDR_SET_VALUES) {
22948 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22950 if (flags & NDR_IN) {
22951 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
22952 ndr->depth++;
22953 ndr->depth--;
22955 if (flags & NDR_OUT) {
22956 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
22957 ndr->depth++;
22958 ndr_print_WERROR(ndr, "result", r->out.result);
22959 ndr->depth--;
22961 ndr->depth--;
22964 static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterConnection *r)
22966 if (flags & NDR_IN) {
22968 if (flags & NDR_OUT) {
22969 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22971 return NDR_ERR_SUCCESS;
22974 static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterConnection *r)
22976 if (flags & NDR_IN) {
22978 if (flags & NDR_OUT) {
22979 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22981 return NDR_ERR_SUCCESS;
22984 _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterConnection *r)
22986 ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
22987 ndr->depth++;
22988 if (flags & NDR_SET_VALUES) {
22989 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22991 if (flags & NDR_IN) {
22992 ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
22993 ndr->depth++;
22994 ndr->depth--;
22996 if (flags & NDR_OUT) {
22997 ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
22998 ndr->depth++;
22999 ndr_print_WERROR(ndr, "result", r->out.result);
23000 ndr->depth--;
23002 ndr->depth--;
23005 static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterConnection *r)
23007 if (flags & NDR_IN) {
23009 if (flags & NDR_OUT) {
23010 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23012 return NDR_ERR_SUCCESS;
23015 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterConnection *r)
23017 if (flags & NDR_IN) {
23019 if (flags & NDR_OUT) {
23020 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23022 return NDR_ERR_SUCCESS;
23025 _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterConnection *r)
23027 ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
23028 ndr->depth++;
23029 if (flags & NDR_SET_VALUES) {
23030 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23032 if (flags & NDR_IN) {
23033 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
23034 ndr->depth++;
23035 ndr->depth--;
23037 if (flags & NDR_OUT) {
23038 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
23039 ndr->depth++;
23040 ndr_print_WERROR(ndr, "result", r->out.result);
23041 ndr->depth--;
23043 ndr->depth--;
23046 static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, int flags, const struct spoolss_PrinterMessageBox *r)
23048 if (flags & NDR_IN) {
23050 if (flags & NDR_OUT) {
23051 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23053 return NDR_ERR_SUCCESS;
23056 static enum ndr_err_code ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull *ndr, int flags, struct spoolss_PrinterMessageBox *r)
23058 if (flags & NDR_IN) {
23060 if (flags & NDR_OUT) {
23061 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23063 return NDR_ERR_SUCCESS;
23066 _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PrinterMessageBox *r)
23068 ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
23069 ndr->depth++;
23070 if (flags & NDR_SET_VALUES) {
23071 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23073 if (flags & NDR_IN) {
23074 ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
23075 ndr->depth++;
23076 ndr->depth--;
23078 if (flags & NDR_OUT) {
23079 ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
23080 ndr->depth++;
23081 ndr_print_WERROR(ndr, "result", r->out.result);
23082 ndr->depth--;
23084 ndr->depth--;
23087 static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, int flags, const struct spoolss_AddMonitor *r)
23089 if (flags & NDR_IN) {
23091 if (flags & NDR_OUT) {
23092 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23094 return NDR_ERR_SUCCESS;
23097 static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, int flags, struct spoolss_AddMonitor *r)
23099 if (flags & NDR_IN) {
23101 if (flags & NDR_OUT) {
23102 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23104 return NDR_ERR_SUCCESS;
23107 _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddMonitor *r)
23109 ndr_print_struct(ndr, name, "spoolss_AddMonitor");
23110 ndr->depth++;
23111 if (flags & NDR_SET_VALUES) {
23112 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23114 if (flags & NDR_IN) {
23115 ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
23116 ndr->depth++;
23117 ndr->depth--;
23119 if (flags & NDR_OUT) {
23120 ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
23121 ndr->depth++;
23122 ndr_print_WERROR(ndr, "result", r->out.result);
23123 ndr->depth--;
23125 ndr->depth--;
23128 static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, int flags, const struct spoolss_DeleteMonitor *r)
23130 if (flags & NDR_IN) {
23132 if (flags & NDR_OUT) {
23133 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23135 return NDR_ERR_SUCCESS;
23138 static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, int flags, struct spoolss_DeleteMonitor *r)
23140 if (flags & NDR_IN) {
23142 if (flags & NDR_OUT) {
23143 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23145 return NDR_ERR_SUCCESS;
23148 _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteMonitor *r)
23150 ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
23151 ndr->depth++;
23152 if (flags & NDR_SET_VALUES) {
23153 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23155 if (flags & NDR_IN) {
23156 ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
23157 ndr->depth++;
23158 ndr->depth--;
23160 if (flags & NDR_OUT) {
23161 ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
23162 ndr->depth++;
23163 ndr_print_WERROR(ndr, "result", r->out.result);
23164 ndr->depth--;
23166 ndr->depth--;
23169 static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProcessor *r)
23171 if (flags & NDR_IN) {
23173 if (flags & NDR_OUT) {
23174 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23176 return NDR_ERR_SUCCESS;
23179 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProcessor *r)
23181 if (flags & NDR_IN) {
23183 if (flags & NDR_OUT) {
23184 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23186 return NDR_ERR_SUCCESS;
23189 _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProcessor *r)
23191 ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
23192 ndr->depth++;
23193 if (flags & NDR_SET_VALUES) {
23194 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23196 if (flags & NDR_IN) {
23197 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
23198 ndr->depth++;
23199 ndr->depth--;
23201 if (flags & NDR_OUT) {
23202 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
23203 ndr->depth++;
23204 ndr_print_WERROR(ndr, "result", r->out.result);
23205 ndr->depth--;
23207 ndr->depth--;
23210 static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProvidor *r)
23212 if (flags & NDR_IN) {
23214 if (flags & NDR_OUT) {
23215 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23217 return NDR_ERR_SUCCESS;
23220 static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProvidor *r)
23222 if (flags & NDR_IN) {
23224 if (flags & NDR_OUT) {
23225 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23227 return NDR_ERR_SUCCESS;
23230 _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProvidor *r)
23232 ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
23233 ndr->depth++;
23234 if (flags & NDR_SET_VALUES) {
23235 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23237 if (flags & NDR_IN) {
23238 ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
23239 ndr->depth++;
23240 ndr->depth--;
23242 if (flags & NDR_OUT) {
23243 ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
23244 ndr->depth++;
23245 ndr_print_WERROR(ndr, "result", r->out.result);
23246 ndr->depth--;
23248 ndr->depth--;
23251 static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProvidor *r)
23253 if (flags & NDR_IN) {
23255 if (flags & NDR_OUT) {
23256 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23258 return NDR_ERR_SUCCESS;
23261 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProvidor *r)
23263 if (flags & NDR_IN) {
23265 if (flags & NDR_OUT) {
23266 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23268 return NDR_ERR_SUCCESS;
23271 _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProvidor *r)
23273 ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
23274 ndr->depth++;
23275 if (flags & NDR_SET_VALUES) {
23276 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23278 if (flags & NDR_IN) {
23279 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
23280 ndr->depth++;
23281 ndr->depth--;
23283 if (flags & NDR_OUT) {
23284 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
23285 ndr->depth++;
23286 ndr_print_WERROR(ndr, "result", r->out.result);
23287 ndr->depth--;
23289 ndr->depth--;
23292 static enum ndr_err_code ndr_push_spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
23294 if (flags & NDR_IN) {
23296 if (flags & NDR_OUT) {
23297 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23299 return NDR_ERR_SUCCESS;
23302 static enum ndr_err_code ndr_pull_spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrintProcDataTypes *r)
23304 if (flags & NDR_IN) {
23306 if (flags & NDR_OUT) {
23307 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23309 return NDR_ERR_SUCCESS;
23312 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
23314 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcDataTypes");
23315 ndr->depth++;
23316 if (flags & NDR_SET_VALUES) {
23317 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23319 if (flags & NDR_IN) {
23320 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcDataTypes");
23321 ndr->depth++;
23322 ndr->depth--;
23324 if (flags & NDR_OUT) {
23325 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcDataTypes");
23326 ndr->depth++;
23327 ndr_print_WERROR(ndr, "result", r->out.result);
23328 ndr->depth--;
23330 ndr->depth--;
23333 static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinter *r)
23335 if (flags & NDR_IN) {
23336 if (r->in.handle == NULL) {
23337 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23339 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23340 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_type));
23341 if (r->in.data_type) {
23342 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
23343 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23344 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
23345 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));
23347 if (r->in.devmode_ctr == NULL) {
23348 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23350 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
23352 if (flags & NDR_OUT) {
23353 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23355 return NDR_ERR_SUCCESS;
23358 static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinter *r)
23360 uint32_t _ptr_data_type;
23361 TALLOC_CTX *_mem_save_handle_0;
23362 TALLOC_CTX *_mem_save_data_type_0;
23363 TALLOC_CTX *_mem_save_devmode_ctr_0;
23364 if (flags & NDR_IN) {
23365 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23366 NDR_PULL_ALLOC(ndr, r->in.handle);
23368 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23369 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23370 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23371 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23372 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
23373 if (_ptr_data_type) {
23374 NDR_PULL_ALLOC(ndr, r->in.data_type);
23375 } else {
23376 r->in.data_type = NULL;
23378 if (r->in.data_type) {
23379 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
23380 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
23381 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
23382 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
23383 if (ndr_get_array_length(ndr, &r->in.data_type) > ndr_get_array_size(ndr, &r->in.data_type)) {
23384 return 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));
23386 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t)));
23387 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));
23388 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
23390 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23391 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
23393 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
23394 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
23395 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
23396 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
23398 if (flags & NDR_OUT) {
23399 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23401 return NDR_ERR_SUCCESS;
23404 _PUBLIC_ void ndr_print_spoolss_ResetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinter *r)
23406 ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
23407 ndr->depth++;
23408 if (flags & NDR_SET_VALUES) {
23409 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23411 if (flags & NDR_IN) {
23412 ndr_print_struct(ndr, "in", "spoolss_ResetPrinter");
23413 ndr->depth++;
23414 ndr_print_ptr(ndr, "handle", r->in.handle);
23415 ndr->depth++;
23416 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23417 ndr->depth--;
23418 ndr_print_ptr(ndr, "data_type", r->in.data_type);
23419 ndr->depth++;
23420 if (r->in.data_type) {
23421 ndr_print_string(ndr, "data_type", r->in.data_type);
23423 ndr->depth--;
23424 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
23425 ndr->depth++;
23426 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
23427 ndr->depth--;
23428 ndr->depth--;
23430 if (flags & NDR_OUT) {
23431 ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
23432 ndr->depth++;
23433 ndr_print_WERROR(ndr, "result", r->out.result);
23434 ndr->depth--;
23436 ndr->depth--;
23439 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver2 *r)
23441 if (flags & NDR_IN) {
23442 if (r->in.handle == NULL) {
23443 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23445 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23446 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
23447 if (r->in.architecture) {
23448 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
23449 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23450 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
23451 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23453 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23454 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23455 if (r->in.buffer) {
23456 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23458 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23459 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
23460 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
23462 if (flags & NDR_OUT) {
23463 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23464 if (r->out.info) {
23466 struct ndr_push *_ndr_info;
23467 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
23468 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
23469 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
23470 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
23473 if (r->out.needed == NULL) {
23474 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23476 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23477 if (r->out.server_major_version == NULL) {
23478 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23480 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
23481 if (r->out.server_minor_version == NULL) {
23482 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23484 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
23485 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23487 return NDR_ERR_SUCCESS;
23490 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver2 *r)
23492 uint32_t _ptr_architecture;
23493 uint32_t _ptr_buffer;
23494 uint32_t _ptr_info;
23495 TALLOC_CTX *_mem_save_handle_0;
23496 TALLOC_CTX *_mem_save_architecture_0;
23497 TALLOC_CTX *_mem_save_buffer_0;
23498 TALLOC_CTX *_mem_save_info_0;
23499 TALLOC_CTX *_mem_save_needed_0;
23500 TALLOC_CTX *_mem_save_server_major_version_0;
23501 TALLOC_CTX *_mem_save_server_minor_version_0;
23502 if (flags & NDR_IN) {
23503 ZERO_STRUCT(r->out);
23505 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23506 NDR_PULL_ALLOC(ndr, r->in.handle);
23508 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23509 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23510 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23511 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23512 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
23513 if (_ptr_architecture) {
23514 NDR_PULL_ALLOC(ndr, r->in.architecture);
23515 } else {
23516 r->in.architecture = NULL;
23518 if (r->in.architecture) {
23519 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
23520 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
23521 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
23522 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
23523 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
23524 return 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));
23526 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
23527 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
23528 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
23530 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23531 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23532 if (_ptr_buffer) {
23533 NDR_PULL_ALLOC(ndr, r->in.buffer);
23534 } else {
23535 r->in.buffer = NULL;
23537 if (r->in.buffer) {
23538 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23539 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23540 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23541 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23543 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23544 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
23545 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
23546 NDR_PULL_ALLOC(ndr, r->out.needed);
23547 ZERO_STRUCTP(r->out.needed);
23548 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
23549 ZERO_STRUCTP(r->out.server_major_version);
23550 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
23551 ZERO_STRUCTP(r->out.server_minor_version);
23553 if (flags & NDR_OUT) {
23554 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23555 if (_ptr_info) {
23556 NDR_PULL_ALLOC(ndr, r->out.info);
23557 } else {
23558 r->out.info = NULL;
23560 if (r->out.info) {
23561 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23562 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23564 struct ndr_pull *_ndr_info;
23565 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
23566 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
23567 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
23568 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
23570 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23572 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23573 NDR_PULL_ALLOC(ndr, r->out.needed);
23575 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23576 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23577 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23578 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23579 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23580 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
23582 _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
23583 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
23584 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
23585 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
23586 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23587 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
23589 _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
23590 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
23591 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
23592 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
23593 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23595 return NDR_ERR_SUCCESS;
23598 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver2 *r)
23600 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
23601 ndr->depth++;
23602 if (flags & NDR_SET_VALUES) {
23603 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23605 if (flags & NDR_IN) {
23606 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
23607 ndr->depth++;
23608 ndr_print_ptr(ndr, "handle", r->in.handle);
23609 ndr->depth++;
23610 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23611 ndr->depth--;
23612 ndr_print_ptr(ndr, "architecture", r->in.architecture);
23613 ndr->depth++;
23614 if (r->in.architecture) {
23615 ndr_print_string(ndr, "architecture", r->in.architecture);
23617 ndr->depth--;
23618 ndr_print_uint32(ndr, "level", r->in.level);
23619 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23620 ndr->depth++;
23621 if (r->in.buffer) {
23622 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23624 ndr->depth--;
23625 ndr_print_uint32(ndr, "offered", r->in.offered);
23626 ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
23627 ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
23628 ndr->depth--;
23630 if (flags & NDR_OUT) {
23631 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
23632 ndr->depth++;
23633 ndr_print_ptr(ndr, "info", r->out.info);
23634 ndr->depth++;
23635 if (r->out.info) {
23636 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
23637 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
23639 ndr->depth--;
23640 ndr_print_ptr(ndr, "needed", r->out.needed);
23641 ndr->depth++;
23642 ndr_print_uint32(ndr, "needed", *r->out.needed);
23643 ndr->depth--;
23644 ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
23645 ndr->depth++;
23646 ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
23647 ndr->depth--;
23648 ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
23649 ndr->depth++;
23650 ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
23651 ndr->depth--;
23652 ndr_print_WERROR(ndr, "result", r->out.result);
23653 ndr->depth--;
23655 ndr->depth--;
23658 static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
23660 if (flags & NDR_IN) {
23662 if (flags & NDR_OUT) {
23663 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23665 return NDR_ERR_SUCCESS;
23668 static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindFirstPrinterChangeNotification *r)
23670 if (flags & NDR_IN) {
23672 if (flags & NDR_OUT) {
23673 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23675 return NDR_ERR_SUCCESS;
23678 _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
23680 ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
23681 ndr->depth++;
23682 if (flags & NDR_SET_VALUES) {
23683 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23685 if (flags & NDR_IN) {
23686 ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
23687 ndr->depth++;
23688 ndr->depth--;
23690 if (flags & NDR_OUT) {
23691 ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
23692 ndr->depth++;
23693 ndr_print_WERROR(ndr, "result", r->out.result);
23694 ndr->depth--;
23696 ndr->depth--;
23699 static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
23701 if (flags & NDR_IN) {
23703 if (flags & NDR_OUT) {
23704 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23706 return NDR_ERR_SUCCESS;
23709 static enum ndr_err_code ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindNextPrinterChangeNotification *r)
23711 if (flags & NDR_IN) {
23713 if (flags & NDR_OUT) {
23714 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23716 return NDR_ERR_SUCCESS;
23719 _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
23721 ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
23722 ndr->depth++;
23723 if (flags & NDR_SET_VALUES) {
23724 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23726 if (flags & NDR_IN) {
23727 ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
23728 ndr->depth++;
23729 ndr->depth--;
23731 if (flags & NDR_OUT) {
23732 ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
23733 ndr->depth++;
23734 ndr_print_WERROR(ndr, "result", r->out.result);
23735 ndr->depth--;
23737 ndr->depth--;
23740 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, int flags, const struct spoolss_FindClosePrinterNotify *r)
23742 if (flags & NDR_IN) {
23743 if (r->in.handle == NULL) {
23744 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23746 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23748 if (flags & NDR_OUT) {
23749 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23751 return NDR_ERR_SUCCESS;
23754 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, int flags, struct spoolss_FindClosePrinterNotify *r)
23756 TALLOC_CTX *_mem_save_handle_0;
23757 if (flags & NDR_IN) {
23758 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23759 NDR_PULL_ALLOC(ndr, r->in.handle);
23761 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23762 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23763 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23764 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23766 if (flags & NDR_OUT) {
23767 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23769 return NDR_ERR_SUCCESS;
23772 _PUBLIC_ void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindClosePrinterNotify *r)
23774 ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
23775 ndr->depth++;
23776 if (flags & NDR_SET_VALUES) {
23777 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23779 if (flags & NDR_IN) {
23780 ndr_print_struct(ndr, "in", "spoolss_FindClosePrinterNotify");
23781 ndr->depth++;
23782 ndr_print_ptr(ndr, "handle", r->in.handle);
23783 ndr->depth++;
23784 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23785 ndr->depth--;
23786 ndr->depth--;
23788 if (flags & NDR_OUT) {
23789 ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
23790 ndr->depth++;
23791 ndr_print_WERROR(ndr, "result", r->out.result);
23792 ndr->depth--;
23794 ndr->depth--;
23797 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
23799 if (flags & NDR_IN) {
23801 if (flags & NDR_OUT) {
23802 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23804 return NDR_ERR_SUCCESS;
23807 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
23809 if (flags & NDR_IN) {
23811 if (flags & NDR_OUT) {
23812 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23814 return NDR_ERR_SUCCESS;
23817 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
23819 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
23820 ndr->depth++;
23821 if (flags & NDR_SET_VALUES) {
23822 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23824 if (flags & NDR_IN) {
23825 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
23826 ndr->depth++;
23827 ndr->depth--;
23829 if (flags & NDR_OUT) {
23830 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
23831 ndr->depth++;
23832 ndr_print_WERROR(ndr, "result", r->out.result);
23833 ndr->depth--;
23835 ndr->depth--;
23838 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyOpenPrinter *r)
23840 if (flags & NDR_IN) {
23841 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
23842 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23843 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
23844 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));
23845 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
23846 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
23847 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
23848 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23849 if (r->in.buffer) {
23850 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
23851 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
23854 if (flags & NDR_OUT) {
23855 if (r->out.handle == NULL) {
23856 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23858 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
23859 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23861 return NDR_ERR_SUCCESS;
23864 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyOpenPrinter *r)
23866 uint32_t _ptr_buffer;
23867 TALLOC_CTX *_mem_save_buffer_0;
23868 TALLOC_CTX *_mem_save_handle_0;
23869 if (flags & NDR_IN) {
23870 ZERO_STRUCT(r->out);
23872 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
23873 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
23874 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
23875 return 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));
23877 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
23878 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));
23879 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
23880 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
23881 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
23882 if (r->in.bufsize > 512) {
23883 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
23885 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23886 if (_ptr_buffer) {
23887 NDR_PULL_ALLOC(ndr, r->in.buffer);
23888 } else {
23889 r->in.buffer = NULL;
23891 if (r->in.buffer) {
23892 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23893 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23894 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
23895 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
23896 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
23897 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23899 NDR_PULL_ALLOC(ndr, r->out.handle);
23900 ZERO_STRUCTP(r->out.handle);
23901 if (r->in.buffer) {
23902 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
23905 if (flags & NDR_OUT) {
23906 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23907 NDR_PULL_ALLOC(ndr, r->out.handle);
23909 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23910 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
23911 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
23912 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23913 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23915 return NDR_ERR_SUCCESS;
23918 _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyOpenPrinter *r)
23920 ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
23921 ndr->depth++;
23922 if (flags & NDR_SET_VALUES) {
23923 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23925 if (flags & NDR_IN) {
23926 ndr_print_struct(ndr, "in", "spoolss_ReplyOpenPrinter");
23927 ndr->depth++;
23928 ndr_print_string(ndr, "server_name", r->in.server_name);
23929 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
23930 ndr_print_winreg_Type(ndr, "type", r->in.type);
23931 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
23932 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23933 ndr->depth++;
23934 if (r->in.buffer) {
23935 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
23937 ndr->depth--;
23938 ndr->depth--;
23940 if (flags & NDR_OUT) {
23941 ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
23942 ndr->depth++;
23943 ndr_print_ptr(ndr, "handle", r->out.handle);
23944 ndr->depth++;
23945 ndr_print_policy_handle(ndr, "handle", r->out.handle);
23946 ndr->depth--;
23947 ndr_print_WERROR(ndr, "result", r->out.result);
23948 ndr->depth--;
23950 ndr->depth--;
23953 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinter *r)
23955 if (flags & NDR_IN) {
23956 if (r->in.handle == NULL) {
23957 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23959 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23960 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
23961 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
23962 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23963 if (r->in.buffer) {
23964 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
23965 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
23968 if (flags & NDR_OUT) {
23969 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23971 return NDR_ERR_SUCCESS;
23974 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinter *r)
23976 uint32_t _ptr_buffer;
23977 TALLOC_CTX *_mem_save_handle_0;
23978 TALLOC_CTX *_mem_save_buffer_0;
23979 if (flags & NDR_IN) {
23980 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23981 NDR_PULL_ALLOC(ndr, r->in.handle);
23983 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23984 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23985 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23986 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23987 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
23988 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
23989 if (r->in.bufsize > 512) {
23990 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
23992 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23993 if (_ptr_buffer) {
23994 NDR_PULL_ALLOC(ndr, r->in.buffer);
23995 } else {
23996 r->in.buffer = NULL;
23998 if (r->in.buffer) {
23999 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24000 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24001 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
24002 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
24003 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
24004 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24006 if (r->in.buffer) {
24007 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
24010 if (flags & NDR_OUT) {
24011 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24013 return NDR_ERR_SUCCESS;
24016 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinter *r)
24018 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
24019 ndr->depth++;
24020 if (flags & NDR_SET_VALUES) {
24021 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24023 if (flags & NDR_IN) {
24024 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
24025 ndr->depth++;
24026 ndr_print_ptr(ndr, "handle", r->in.handle);
24027 ndr->depth++;
24028 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24029 ndr->depth--;
24030 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
24031 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
24032 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24033 ndr->depth++;
24034 if (r->in.buffer) {
24035 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
24037 ndr->depth--;
24038 ndr->depth--;
24040 if (flags & NDR_OUT) {
24041 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
24042 ndr->depth++;
24043 ndr_print_WERROR(ndr, "result", r->out.result);
24044 ndr->depth--;
24046 ndr->depth--;
24049 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyClosePrinter *r)
24051 if (flags & NDR_IN) {
24052 if (r->in.handle == NULL) {
24053 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24055 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24057 if (flags & NDR_OUT) {
24058 if (r->out.handle == NULL) {
24059 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24061 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24062 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24064 return NDR_ERR_SUCCESS;
24067 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyClosePrinter *r)
24069 TALLOC_CTX *_mem_save_handle_0;
24070 if (flags & NDR_IN) {
24071 ZERO_STRUCT(r->out);
24073 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24074 NDR_PULL_ALLOC(ndr, r->in.handle);
24076 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24077 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24078 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24079 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24080 NDR_PULL_ALLOC(ndr, r->out.handle);
24081 *r->out.handle = *r->in.handle;
24083 if (flags & NDR_OUT) {
24084 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24085 NDR_PULL_ALLOC(ndr, r->out.handle);
24087 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24088 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
24089 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24090 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24091 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24093 return NDR_ERR_SUCCESS;
24096 _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyClosePrinter *r)
24098 ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
24099 ndr->depth++;
24100 if (flags & NDR_SET_VALUES) {
24101 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24103 if (flags & NDR_IN) {
24104 ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
24105 ndr->depth++;
24106 ndr_print_ptr(ndr, "handle", r->in.handle);
24107 ndr->depth++;
24108 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24109 ndr->depth--;
24110 ndr->depth--;
24112 if (flags & NDR_OUT) {
24113 ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
24114 ndr->depth++;
24115 ndr_print_ptr(ndr, "handle", r->out.handle);
24116 ndr->depth++;
24117 ndr_print_policy_handle(ndr, "handle", r->out.handle);
24118 ndr->depth--;
24119 ndr_print_WERROR(ndr, "result", r->out.result);
24120 ndr->depth--;
24122 ndr->depth--;
24125 static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPortEx *r)
24127 if (flags & NDR_IN) {
24129 if (flags & NDR_OUT) {
24130 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24132 return NDR_ERR_SUCCESS;
24135 static enum ndr_err_code ndr_pull_spoolss_AddPortEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPortEx *r)
24137 if (flags & NDR_IN) {
24139 if (flags & NDR_OUT) {
24140 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24142 return NDR_ERR_SUCCESS;
24145 _PUBLIC_ void ndr_print_spoolss_AddPortEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPortEx *r)
24147 ndr_print_struct(ndr, name, "spoolss_AddPortEx");
24148 ndr->depth++;
24149 if (flags & NDR_SET_VALUES) {
24150 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24152 if (flags & NDR_IN) {
24153 ndr_print_struct(ndr, "in", "spoolss_AddPortEx");
24154 ndr->depth++;
24155 ndr->depth--;
24157 if (flags & NDR_OUT) {
24158 ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
24159 ndr->depth++;
24160 ndr_print_WERROR(ndr, "result", r->out.result);
24161 ndr->depth--;
24163 ndr->depth--;
24166 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
24168 if (flags & NDR_IN) {
24170 if (flags & NDR_OUT) {
24171 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24173 return NDR_ERR_SUCCESS;
24176 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
24178 if (flags & NDR_IN) {
24180 if (flags & NDR_OUT) {
24181 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24183 return NDR_ERR_SUCCESS;
24186 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
24188 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
24189 ndr->depth++;
24190 if (flags & NDR_SET_VALUES) {
24191 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24193 if (flags & NDR_IN) {
24194 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
24195 ndr->depth++;
24196 ndr->depth--;
24198 if (flags & NDR_OUT) {
24199 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
24200 ndr->depth++;
24201 ndr_print_WERROR(ndr, "result", r->out.result);
24202 ndr->depth--;
24204 ndr->depth--;
24207 static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, int flags, const struct spoolss_SpoolerInit *r)
24209 if (flags & NDR_IN) {
24211 if (flags & NDR_OUT) {
24212 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24214 return NDR_ERR_SUCCESS;
24217 static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, int flags, struct spoolss_SpoolerInit *r)
24219 if (flags & NDR_IN) {
24221 if (flags & NDR_OUT) {
24222 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24224 return NDR_ERR_SUCCESS;
24227 _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SpoolerInit *r)
24229 ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
24230 ndr->depth++;
24231 if (flags & NDR_SET_VALUES) {
24232 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24234 if (flags & NDR_IN) {
24235 ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
24236 ndr->depth++;
24237 ndr->depth--;
24239 if (flags & NDR_OUT) {
24240 ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
24241 ndr->depth++;
24242 ndr_print_WERROR(ndr, "result", r->out.result);
24243 ndr->depth--;
24245 ndr->depth--;
24248 static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinterEx *r)
24250 if (flags & NDR_IN) {
24252 if (flags & NDR_OUT) {
24253 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24255 return NDR_ERR_SUCCESS;
24258 static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinterEx *r)
24260 if (flags & NDR_IN) {
24262 if (flags & NDR_OUT) {
24263 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24265 return NDR_ERR_SUCCESS;
24268 _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinterEx *r)
24270 ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
24271 ndr->depth++;
24272 if (flags & NDR_SET_VALUES) {
24273 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24275 if (flags & NDR_IN) {
24276 ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
24277 ndr->depth++;
24278 ndr->depth--;
24280 if (flags & NDR_OUT) {
24281 ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
24282 ndr->depth++;
24283 ndr_print_WERROR(ndr, "result", r->out.result);
24284 ndr->depth--;
24286 ndr->depth--;
24289 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
24291 if (flags & NDR_IN) {
24292 if (r->in.handle == NULL) {
24293 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24295 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24296 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
24297 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
24298 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.local_machine));
24299 if (r->in.local_machine) {
24300 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
24301 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24302 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
24303 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));
24305 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
24306 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.notify_options));
24307 if (r->in.notify_options) {
24308 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
24311 if (flags & NDR_OUT) {
24312 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24314 return NDR_ERR_SUCCESS;
24317 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
24319 uint32_t _ptr_local_machine;
24320 uint32_t _ptr_notify_options;
24321 TALLOC_CTX *_mem_save_handle_0;
24322 TALLOC_CTX *_mem_save_local_machine_0;
24323 TALLOC_CTX *_mem_save_notify_options_0;
24324 if (flags & NDR_IN) {
24325 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24326 NDR_PULL_ALLOC(ndr, r->in.handle);
24328 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24329 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24330 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24331 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24332 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
24333 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
24334 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local_machine));
24335 if (_ptr_local_machine) {
24336 NDR_PULL_ALLOC(ndr, r->in.local_machine);
24337 } else {
24338 r->in.local_machine = NULL;
24340 if (r->in.local_machine) {
24341 _mem_save_local_machine_0 = NDR_PULL_GET_MEM_CTX(ndr);
24342 NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
24343 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
24344 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
24345 if (ndr_get_array_length(ndr, &r->in.local_machine) > ndr_get_array_size(ndr, &r->in.local_machine)) {
24346 return 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));
24348 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t)));
24349 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));
24350 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
24352 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
24353 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_options));
24354 if (_ptr_notify_options) {
24355 NDR_PULL_ALLOC(ndr, r->in.notify_options);
24356 } else {
24357 r->in.notify_options = NULL;
24359 if (r->in.notify_options) {
24360 _mem_save_notify_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
24361 NDR_PULL_SET_MEM_CTX(ndr, r->in.notify_options, 0);
24362 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
24363 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_options_0, 0);
24366 if (flags & NDR_OUT) {
24367 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24369 return NDR_ERR_SUCCESS;
24372 _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
24374 ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
24375 ndr->depth++;
24376 if (flags & NDR_SET_VALUES) {
24377 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24379 if (flags & NDR_IN) {
24380 ndr_print_struct(ndr, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
24381 ndr->depth++;
24382 ndr_print_ptr(ndr, "handle", r->in.handle);
24383 ndr->depth++;
24384 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24385 ndr->depth--;
24386 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
24387 ndr_print_uint32(ndr, "options", r->in.options);
24388 ndr_print_ptr(ndr, "local_machine", r->in.local_machine);
24389 ndr->depth++;
24390 if (r->in.local_machine) {
24391 ndr_print_string(ndr, "local_machine", r->in.local_machine);
24393 ndr->depth--;
24394 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
24395 ndr_print_ptr(ndr, "notify_options", r->in.notify_options);
24396 ndr->depth++;
24397 if (r->in.notify_options) {
24398 ndr_print_spoolss_NotifyOption(ndr, "notify_options", r->in.notify_options);
24400 ndr->depth--;
24401 ndr->depth--;
24403 if (flags & NDR_OUT) {
24404 ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
24405 ndr->depth++;
24406 ndr_print_WERROR(ndr, "result", r->out.result);
24407 ndr->depth--;
24409 ndr->depth--;
24412 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinterEx *r)
24414 if (flags & NDR_IN) {
24415 if (r->in.handle == NULL) {
24416 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24418 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24419 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.color));
24420 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
24421 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reply_type));
24422 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.reply_type));
24423 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24425 if (flags & NDR_OUT) {
24426 if (r->out.reply_result == NULL) {
24427 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24429 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, *r->out.reply_result));
24430 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24432 return NDR_ERR_SUCCESS;
24435 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinterEx *r)
24437 TALLOC_CTX *_mem_save_handle_0;
24438 TALLOC_CTX *_mem_save_reply_result_0;
24439 if (flags & NDR_IN) {
24440 ZERO_STRUCT(r->out);
24442 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24443 NDR_PULL_ALLOC(ndr, r->in.handle);
24445 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24446 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24447 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24448 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24449 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.color));
24450 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
24451 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reply_type));
24452 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.reply_type));
24453 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24454 NDR_PULL_ALLOC(ndr, r->out.reply_result);
24455 ZERO_STRUCTP(r->out.reply_result);
24457 if (flags & NDR_OUT) {
24458 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24459 NDR_PULL_ALLOC(ndr, r->out.reply_result);
24461 _mem_save_reply_result_0 = NDR_PULL_GET_MEM_CTX(ndr);
24462 NDR_PULL_SET_MEM_CTX(ndr, r->out.reply_result, LIBNDR_FLAG_REF_ALLOC);
24463 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, r->out.reply_result));
24464 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reply_result_0, LIBNDR_FLAG_REF_ALLOC);
24465 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24467 return NDR_ERR_SUCCESS;
24470 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinterEx *r)
24472 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinterEx");
24473 ndr->depth++;
24474 if (flags & NDR_SET_VALUES) {
24475 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24477 if (flags & NDR_IN) {
24478 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinterEx");
24479 ndr->depth++;
24480 ndr_print_ptr(ndr, "handle", r->in.handle);
24481 ndr->depth++;
24482 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24483 ndr->depth--;
24484 ndr_print_uint32(ndr, "color", r->in.color);
24485 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
24486 ndr_print_uint32(ndr, "reply_type", r->in.reply_type);
24487 ndr_print_set_switch_value(ndr, &r->in.info, r->in.reply_type);
24488 ndr_print_spoolss_ReplyPrinterInfo(ndr, "info", &r->in.info);
24489 ndr->depth--;
24491 if (flags & NDR_OUT) {
24492 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinterEx");
24493 ndr->depth++;
24494 ndr_print_ptr(ndr, "reply_result", r->out.reply_result);
24495 ndr->depth++;
24496 ndr_print_spoolss_PrinterNotifyFlags(ndr, "reply_result", *r->out.reply_result);
24497 ndr->depth--;
24498 ndr_print_WERROR(ndr, "result", r->out.result);
24499 ndr->depth--;
24501 ndr->depth--;
24504 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push *ndr, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
24506 if (flags & NDR_IN) {
24507 if (r->in.handle == NULL) {
24508 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24510 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24511 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
24512 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.options));
24513 if (r->in.options) {
24514 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
24517 if (flags & NDR_OUT) {
24518 if (r->out.info == NULL) {
24519 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24521 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
24522 if (*r->out.info) {
24523 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
24525 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24527 return NDR_ERR_SUCCESS;
24530 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull *ndr, int flags, struct spoolss_RouterRefreshPrinterChangeNotify *r)
24532 uint32_t _ptr_options;
24533 uint32_t _ptr_info;
24534 TALLOC_CTX *_mem_save_handle_0;
24535 TALLOC_CTX *_mem_save_options_0;
24536 TALLOC_CTX *_mem_save_info_0;
24537 TALLOC_CTX *_mem_save_info_1;
24538 if (flags & NDR_IN) {
24539 ZERO_STRUCT(r->out);
24541 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24542 NDR_PULL_ALLOC(ndr, r->in.handle);
24544 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24545 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24546 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24547 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24548 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
24549 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
24550 if (_ptr_options) {
24551 NDR_PULL_ALLOC(ndr, r->in.options);
24552 } else {
24553 r->in.options = NULL;
24555 if (r->in.options) {
24556 _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
24557 NDR_PULL_SET_MEM_CTX(ndr, r->in.options, 0);
24558 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
24559 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
24561 NDR_PULL_ALLOC(ndr, r->out.info);
24562 ZERO_STRUCTP(r->out.info);
24564 if (flags & NDR_OUT) {
24565 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24566 NDR_PULL_ALLOC(ndr, r->out.info);
24568 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24569 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
24570 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24571 if (_ptr_info) {
24572 NDR_PULL_ALLOC(ndr, *r->out.info);
24573 } else {
24574 *r->out.info = NULL;
24576 if (*r->out.info) {
24577 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
24578 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
24579 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
24580 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
24582 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
24583 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24585 return NDR_ERR_SUCCESS;
24588 _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
24590 ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotify");
24591 ndr->depth++;
24592 if (flags & NDR_SET_VALUES) {
24593 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24595 if (flags & NDR_IN) {
24596 ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotify");
24597 ndr->depth++;
24598 ndr_print_ptr(ndr, "handle", r->in.handle);
24599 ndr->depth++;
24600 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24601 ndr->depth--;
24602 ndr_print_uint32(ndr, "change_low", r->in.change_low);
24603 ndr_print_ptr(ndr, "options", r->in.options);
24604 ndr->depth++;
24605 if (r->in.options) {
24606 ndr_print_spoolss_NotifyOption(ndr, "options", r->in.options);
24608 ndr->depth--;
24609 ndr->depth--;
24611 if (flags & NDR_OUT) {
24612 ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotify");
24613 ndr->depth++;
24614 ndr_print_ptr(ndr, "info", r->out.info);
24615 ndr->depth++;
24616 ndr_print_ptr(ndr, "info", *r->out.info);
24617 ndr->depth++;
24618 if (*r->out.info) {
24619 ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
24621 ndr->depth--;
24622 ndr->depth--;
24623 ndr_print_WERROR(ndr, "result", r->out.result);
24624 ndr->depth--;
24626 ndr->depth--;
24629 static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, int flags, const struct spoolss_44 *r)
24631 if (flags & NDR_IN) {
24633 if (flags & NDR_OUT) {
24634 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24636 return NDR_ERR_SUCCESS;
24639 static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, int flags, struct spoolss_44 *r)
24641 if (flags & NDR_IN) {
24643 if (flags & NDR_OUT) {
24644 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24646 return NDR_ERR_SUCCESS;
24649 _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_44 *r)
24651 ndr_print_struct(ndr, name, "spoolss_44");
24652 ndr->depth++;
24653 if (flags & NDR_SET_VALUES) {
24654 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24656 if (flags & NDR_IN) {
24657 ndr_print_struct(ndr, "in", "spoolss_44");
24658 ndr->depth++;
24659 ndr->depth--;
24661 if (flags & NDR_OUT) {
24662 ndr_print_struct(ndr, "out", "spoolss_44");
24663 ndr->depth++;
24664 ndr_print_WERROR(ndr, "result", r->out.result);
24665 ndr->depth--;
24667 ndr->depth--;
24670 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinterEx *r)
24672 if (flags & NDR_IN) {
24673 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
24674 if (r->in.printername) {
24675 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
24676 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24677 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
24678 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24680 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
24681 if (r->in.datatype) {
24682 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
24683 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24684 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
24685 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24687 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
24688 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
24689 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24690 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.userlevel, r->in.level));
24691 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
24693 if (flags & NDR_OUT) {
24694 if (r->out.handle == NULL) {
24695 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24697 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24698 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24700 return NDR_ERR_SUCCESS;
24703 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinterEx *r)
24705 uint32_t _ptr_printername;
24706 uint32_t _ptr_datatype;
24707 TALLOC_CTX *_mem_save_printername_0;
24708 TALLOC_CTX *_mem_save_datatype_0;
24709 TALLOC_CTX *_mem_save_handle_0;
24710 if (flags & NDR_IN) {
24711 ZERO_STRUCT(r->out);
24713 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
24714 if (_ptr_printername) {
24715 NDR_PULL_ALLOC(ndr, r->in.printername);
24716 } else {
24717 r->in.printername = NULL;
24719 if (r->in.printername) {
24720 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
24721 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
24722 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
24723 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
24724 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
24725 return 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));
24727 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
24728 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
24729 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
24731 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
24732 if (_ptr_datatype) {
24733 NDR_PULL_ALLOC(ndr, r->in.datatype);
24734 } else {
24735 r->in.datatype = NULL;
24737 if (r->in.datatype) {
24738 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
24739 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
24740 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
24741 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
24742 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
24743 return 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));
24745 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
24746 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
24747 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
24749 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
24750 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
24751 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24752 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.userlevel, r->in.level));
24753 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
24754 NDR_PULL_ALLOC(ndr, r->out.handle);
24755 ZERO_STRUCTP(r->out.handle);
24757 if (flags & NDR_OUT) {
24758 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24759 NDR_PULL_ALLOC(ndr, r->out.handle);
24761 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24762 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
24763 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24764 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24765 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24767 return NDR_ERR_SUCCESS;
24770 _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinterEx *r)
24772 ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
24773 ndr->depth++;
24774 if (flags & NDR_SET_VALUES) {
24775 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24777 if (flags & NDR_IN) {
24778 ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
24779 ndr->depth++;
24780 ndr_print_ptr(ndr, "printername", r->in.printername);
24781 ndr->depth++;
24782 if (r->in.printername) {
24783 ndr_print_string(ndr, "printername", r->in.printername);
24785 ndr->depth--;
24786 ndr_print_ptr(ndr, "datatype", r->in.datatype);
24787 ndr->depth++;
24788 if (r->in.datatype) {
24789 ndr_print_string(ndr, "datatype", r->in.datatype);
24791 ndr->depth--;
24792 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
24793 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
24794 ndr_print_uint32(ndr, "level", r->in.level);
24795 ndr_print_set_switch_value(ndr, &r->in.userlevel, r->in.level);
24796 ndr_print_spoolss_UserLevel(ndr, "userlevel", &r->in.userlevel);
24797 ndr->depth--;
24799 if (flags & NDR_OUT) {
24800 ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
24801 ndr->depth++;
24802 ndr_print_ptr(ndr, "handle", r->out.handle);
24803 ndr->depth++;
24804 ndr_print_policy_handle(ndr, "handle", r->out.handle);
24805 ndr->depth--;
24806 ndr_print_WERROR(ndr, "result", r->out.result);
24807 ndr->depth--;
24809 ndr->depth--;
24812 static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterEx *r)
24814 if (flags & NDR_IN) {
24815 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
24816 if (r->in.server) {
24817 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
24818 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24819 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
24820 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24822 if (r->in.info_ctr == NULL) {
24823 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24825 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
24826 if (r->in.devmode_ctr == NULL) {
24827 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24829 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
24830 if (r->in.secdesc_ctr == NULL) {
24831 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24833 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
24834 if (r->in.userlevel_ctr == NULL) {
24835 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24837 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
24839 if (flags & NDR_OUT) {
24840 if (r->out.handle == NULL) {
24841 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24843 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24844 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24846 return NDR_ERR_SUCCESS;
24849 static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterEx *r)
24851 uint32_t _ptr_server;
24852 TALLOC_CTX *_mem_save_server_0;
24853 TALLOC_CTX *_mem_save_info_ctr_0;
24854 TALLOC_CTX *_mem_save_devmode_ctr_0;
24855 TALLOC_CTX *_mem_save_secdesc_ctr_0;
24856 TALLOC_CTX *_mem_save_userlevel_ctr_0;
24857 TALLOC_CTX *_mem_save_handle_0;
24858 if (flags & NDR_IN) {
24859 ZERO_STRUCT(r->out);
24861 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
24862 if (_ptr_server) {
24863 NDR_PULL_ALLOC(ndr, r->in.server);
24864 } else {
24865 r->in.server = NULL;
24867 if (r->in.server) {
24868 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
24869 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
24870 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
24871 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
24872 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
24873 return 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));
24875 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
24876 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
24877 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
24879 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24880 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
24882 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
24883 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
24884 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
24885 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
24886 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24887 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
24889 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
24890 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
24891 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
24892 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
24893 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24894 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
24896 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
24897 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
24898 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
24899 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
24900 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24901 NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
24903 _mem_save_userlevel_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
24904 NDR_PULL_SET_MEM_CTX(ndr, r->in.userlevel_ctr, LIBNDR_FLAG_REF_ALLOC);
24905 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
24906 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userlevel_ctr_0, LIBNDR_FLAG_REF_ALLOC);
24907 NDR_PULL_ALLOC(ndr, r->out.handle);
24908 ZERO_STRUCTP(r->out.handle);
24910 if (flags & NDR_OUT) {
24911 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24912 NDR_PULL_ALLOC(ndr, r->out.handle);
24914 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24915 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
24916 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24917 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24918 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24920 return NDR_ERR_SUCCESS;
24923 _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterEx *r)
24925 ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
24926 ndr->depth++;
24927 if (flags & NDR_SET_VALUES) {
24928 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24930 if (flags & NDR_IN) {
24931 ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
24932 ndr->depth++;
24933 ndr_print_ptr(ndr, "server", r->in.server);
24934 ndr->depth++;
24935 if (r->in.server) {
24936 ndr_print_string(ndr, "server", r->in.server);
24938 ndr->depth--;
24939 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
24940 ndr->depth++;
24941 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
24942 ndr->depth--;
24943 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
24944 ndr->depth++;
24945 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
24946 ndr->depth--;
24947 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
24948 ndr->depth++;
24949 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
24950 ndr->depth--;
24951 ndr_print_ptr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
24952 ndr->depth++;
24953 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
24954 ndr->depth--;
24955 ndr->depth--;
24957 if (flags & NDR_OUT) {
24958 ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
24959 ndr->depth++;
24960 ndr_print_ptr(ndr, "handle", r->out.handle);
24961 ndr->depth++;
24962 ndr_print_policy_handle(ndr, "handle", r->out.handle);
24963 ndr->depth--;
24964 ndr_print_WERROR(ndr, "result", r->out.result);
24965 ndr->depth--;
24967 ndr->depth--;
24970 static enum ndr_err_code ndr_push_spoolss_47(struct ndr_push *ndr, int flags, const struct spoolss_47 *r)
24972 if (flags & NDR_IN) {
24974 if (flags & NDR_OUT) {
24975 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24977 return NDR_ERR_SUCCESS;
24980 static enum ndr_err_code ndr_pull_spoolss_47(struct ndr_pull *ndr, int flags, struct spoolss_47 *r)
24982 if (flags & NDR_IN) {
24984 if (flags & NDR_OUT) {
24985 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24987 return NDR_ERR_SUCCESS;
24990 _PUBLIC_ void ndr_print_spoolss_47(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_47 *r)
24992 ndr_print_struct(ndr, name, "spoolss_47");
24993 ndr->depth++;
24994 if (flags & NDR_SET_VALUES) {
24995 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24997 if (flags & NDR_IN) {
24998 ndr_print_struct(ndr, "in", "spoolss_47");
24999 ndr->depth++;
25000 ndr->depth--;
25002 if (flags & NDR_OUT) {
25003 ndr_print_struct(ndr, "out", "spoolss_47");
25004 ndr->depth++;
25005 ndr_print_WERROR(ndr, "result", r->out.result);
25006 ndr->depth--;
25008 ndr->depth--;
25011 static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterData *r)
25013 if (flags & NDR_IN) {
25014 if (r->in.handle == NULL) {
25015 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25017 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25018 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
25019 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
25020 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
25022 if (flags & NDR_OUT) {
25023 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered / 2));
25024 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
25025 if (r->out.value_needed == NULL) {
25026 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25028 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
25029 if (r->out.printerdata_type == NULL) {
25030 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25032 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.printerdata_type));
25033 if (r->out.buffer == NULL) {
25034 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25036 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.buffer));
25037 if (r->out.data_needed == NULL) {
25038 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25040 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
25041 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25043 return NDR_ERR_SUCCESS;
25046 static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterData *r)
25048 TALLOC_CTX *_mem_save_handle_0;
25049 TALLOC_CTX *_mem_save_value_needed_0;
25050 TALLOC_CTX *_mem_save_printerdata_type_0;
25051 TALLOC_CTX *_mem_save_buffer_0;
25052 TALLOC_CTX *_mem_save_data_needed_0;
25053 if (flags & NDR_IN) {
25054 ZERO_STRUCT(r->out);
25056 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25057 NDR_PULL_ALLOC(ndr, r->in.handle);
25059 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25060 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25061 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25062 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25063 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
25064 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
25065 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
25066 NDR_PULL_ALLOC(ndr, r->out.value_needed);
25067 ZERO_STRUCTP(r->out.value_needed);
25068 NDR_PULL_ALLOC(ndr, r->out.printerdata_type);
25069 ZERO_STRUCTP(r->out.printerdata_type);
25070 NDR_PULL_ALLOC(ndr, r->out.buffer);
25071 ZERO_STRUCTP(r->out.buffer);
25072 NDR_PULL_ALLOC(ndr, r->out.data_needed);
25073 ZERO_STRUCTP(r->out.data_needed);
25075 if (flags & NDR_OUT) {
25076 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
25077 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));
25078 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25079 NDR_PULL_ALLOC(ndr, r->out.value_needed);
25081 _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25082 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
25083 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
25084 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
25085 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25086 NDR_PULL_ALLOC(ndr, r->out.printerdata_type);
25088 _mem_save_printerdata_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
25089 NDR_PULL_SET_MEM_CTX(ndr, r->out.printerdata_type, LIBNDR_FLAG_REF_ALLOC);
25090 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.printerdata_type));
25091 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printerdata_type_0, LIBNDR_FLAG_REF_ALLOC);
25092 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25093 NDR_PULL_ALLOC(ndr, r->out.buffer);
25095 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25096 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
25097 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.buffer));
25098 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
25099 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25100 NDR_PULL_ALLOC(ndr, r->out.data_needed);
25102 _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25103 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
25104 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
25105 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
25106 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25107 if (r->out.value_name) {
25108 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
25111 return NDR_ERR_SUCCESS;
25114 _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterData *r)
25116 ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
25117 ndr->depth++;
25118 if (flags & NDR_SET_VALUES) {
25119 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25121 if (flags & NDR_IN) {
25122 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
25123 ndr->depth++;
25124 ndr_print_ptr(ndr, "handle", r->in.handle);
25125 ndr->depth++;
25126 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25127 ndr->depth--;
25128 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
25129 ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
25130 ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
25131 ndr->depth--;
25133 if (flags & NDR_OUT) {
25134 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
25135 ndr->depth++;
25136 ndr_print_string(ndr, "value_name", r->out.value_name);
25137 ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
25138 ndr->depth++;
25139 ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
25140 ndr->depth--;
25141 ndr_print_ptr(ndr, "printerdata_type", r->out.printerdata_type);
25142 ndr->depth++;
25143 ndr_print_uint32(ndr, "printerdata_type", *r->out.printerdata_type);
25144 ndr->depth--;
25145 ndr_print_ptr(ndr, "buffer", r->out.buffer);
25146 ndr->depth++;
25147 ndr_print_DATA_BLOB(ndr, "buffer", *r->out.buffer);
25148 ndr->depth--;
25149 ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
25150 ndr->depth++;
25151 ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
25152 ndr->depth--;
25153 ndr_print_WERROR(ndr, "result", r->out.result);
25154 ndr->depth--;
25156 ndr->depth--;
25159 static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterData *r)
25161 if (flags & NDR_IN) {
25162 if (r->in.handle == NULL) {
25163 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25165 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25166 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25167 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25168 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25169 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));
25171 if (flags & NDR_OUT) {
25172 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25174 return NDR_ERR_SUCCESS;
25177 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterData(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterData *r)
25179 TALLOC_CTX *_mem_save_handle_0;
25180 if (flags & NDR_IN) {
25181 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25182 NDR_PULL_ALLOC(ndr, r->in.handle);
25184 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25185 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25186 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25187 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25188 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
25189 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
25190 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
25191 return 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));
25193 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
25194 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));
25196 if (flags & NDR_OUT) {
25197 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25199 return NDR_ERR_SUCCESS;
25202 _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterData *r)
25204 ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
25205 ndr->depth++;
25206 if (flags & NDR_SET_VALUES) {
25207 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25209 if (flags & NDR_IN) {
25210 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
25211 ndr->depth++;
25212 ndr_print_ptr(ndr, "handle", r->in.handle);
25213 ndr->depth++;
25214 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25215 ndr->depth--;
25216 ndr_print_string(ndr, "value_name", r->in.value_name);
25217 ndr->depth--;
25219 if (flags & NDR_OUT) {
25220 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
25221 ndr->depth++;
25222 ndr_print_WERROR(ndr, "result", r->out.result);
25223 ndr->depth--;
25225 ndr->depth--;
25228 static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, int flags, const struct spoolss_4a *r)
25230 if (flags & NDR_IN) {
25232 if (flags & NDR_OUT) {
25233 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25235 return NDR_ERR_SUCCESS;
25238 static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, int flags, struct spoolss_4a *r)
25240 if (flags & NDR_IN) {
25242 if (flags & NDR_OUT) {
25243 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25245 return NDR_ERR_SUCCESS;
25248 _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4a *r)
25250 ndr_print_struct(ndr, name, "spoolss_4a");
25251 ndr->depth++;
25252 if (flags & NDR_SET_VALUES) {
25253 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25255 if (flags & NDR_IN) {
25256 ndr_print_struct(ndr, "in", "spoolss_4a");
25257 ndr->depth++;
25258 ndr->depth--;
25260 if (flags & NDR_OUT) {
25261 ndr_print_struct(ndr, "out", "spoolss_4a");
25262 ndr->depth++;
25263 ndr_print_WERROR(ndr, "result", r->out.result);
25264 ndr->depth--;
25266 ndr->depth--;
25269 static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, int flags, const struct spoolss_4b *r)
25271 if (flags & NDR_IN) {
25273 if (flags & NDR_OUT) {
25274 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25276 return NDR_ERR_SUCCESS;
25279 static enum ndr_err_code ndr_pull_spoolss_4b(struct ndr_pull *ndr, int flags, struct spoolss_4b *r)
25281 if (flags & NDR_IN) {
25283 if (flags & NDR_OUT) {
25284 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25286 return NDR_ERR_SUCCESS;
25289 _PUBLIC_ void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r)
25291 ndr_print_struct(ndr, name, "spoolss_4b");
25292 ndr->depth++;
25293 if (flags & NDR_SET_VALUES) {
25294 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25296 if (flags & NDR_IN) {
25297 ndr_print_struct(ndr, "in", "spoolss_4b");
25298 ndr->depth++;
25299 ndr->depth--;
25301 if (flags & NDR_OUT) {
25302 ndr_print_struct(ndr, "out", "spoolss_4b");
25303 ndr->depth++;
25304 ndr_print_WERROR(ndr, "result", r->out.result);
25305 ndr->depth--;
25307 ndr->depth--;
25310 static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, int flags, const struct spoolss_4c *r)
25312 if (flags & NDR_IN) {
25314 if (flags & NDR_OUT) {
25315 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25317 return NDR_ERR_SUCCESS;
25320 static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, int flags, struct spoolss_4c *r)
25322 if (flags & NDR_IN) {
25324 if (flags & NDR_OUT) {
25325 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25327 return NDR_ERR_SUCCESS;
25330 _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4c *r)
25332 ndr_print_struct(ndr, name, "spoolss_4c");
25333 ndr->depth++;
25334 if (flags & NDR_SET_VALUES) {
25335 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25337 if (flags & NDR_IN) {
25338 ndr_print_struct(ndr, "in", "spoolss_4c");
25339 ndr->depth++;
25340 ndr->depth--;
25342 if (flags & NDR_OUT) {
25343 ndr_print_struct(ndr, "out", "spoolss_4c");
25344 ndr->depth++;
25345 ndr_print_WERROR(ndr, "result", r->out.result);
25346 ndr->depth--;
25348 ndr->depth--;
25351 static enum ndr_err_code ndr_push_spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterDataEx *r)
25353 if (flags & NDR_IN) {
25354 if (r->in.handle == NULL) {
25355 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25357 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25358 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
25359 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25360 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
25361 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));
25362 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25363 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25364 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25365 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));
25366 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.type));
25367 if (r->in.buffer == NULL) {
25368 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25370 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25371 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
25372 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25374 if (flags & NDR_OUT) {
25375 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25377 return NDR_ERR_SUCCESS;
25380 static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterDataEx *r)
25382 TALLOC_CTX *_mem_save_handle_0;
25383 if (flags & NDR_IN) {
25384 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25385 NDR_PULL_ALLOC(ndr, r->in.handle);
25387 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25388 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25389 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25390 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25391 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
25392 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
25393 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
25394 return 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));
25396 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
25397 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));
25398 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
25399 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
25400 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
25401 return 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));
25403 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
25404 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));
25405 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.type));
25406 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
25407 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25408 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
25410 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
25411 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25412 if (r->in.buffer) {
25413 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
25416 if (flags & NDR_OUT) {
25417 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25419 return NDR_ERR_SUCCESS;
25422 _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterDataEx *r)
25424 ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
25425 ndr->depth++;
25426 if (flags & NDR_SET_VALUES) {
25427 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25429 if (flags & NDR_IN) {
25430 ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
25431 ndr->depth++;
25432 ndr_print_ptr(ndr, "handle", r->in.handle);
25433 ndr->depth++;
25434 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25435 ndr->depth--;
25436 ndr_print_string(ndr, "key_name", r->in.key_name);
25437 ndr_print_string(ndr, "value_name", r->in.value_name);
25438 ndr_print_uint32(ndr, "type", r->in.type);
25439 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25440 ndr->depth++;
25441 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
25442 ndr->depth--;
25443 ndr_print_uint32(ndr, "offered", r->in.offered);
25444 ndr->depth--;
25446 if (flags & NDR_OUT) {
25447 ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
25448 ndr->depth++;
25449 ndr_print_WERROR(ndr, "result", r->out.result);
25450 ndr->depth--;
25452 ndr->depth--;
25455 static enum ndr_err_code ndr_push_spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDataEx *r)
25457 if (flags & NDR_IN) {
25458 if (r->in.handle == NULL) {
25459 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25461 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25462 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
25463 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25464 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
25465 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));
25466 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25467 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25468 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25469 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));
25470 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25472 if (flags & NDR_OUT) {
25473 if (r->out.type == NULL) {
25474 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25476 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.type));
25477 if (r->out.buffer == NULL) {
25478 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25480 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25481 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
25482 if (r->out.needed == NULL) {
25483 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25485 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25486 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25488 return NDR_ERR_SUCCESS;
25491 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDataEx *r)
25493 TALLOC_CTX *_mem_save_handle_0;
25494 TALLOC_CTX *_mem_save_type_0;
25495 TALLOC_CTX *_mem_save_needed_0;
25496 if (flags & NDR_IN) {
25497 ZERO_STRUCT(r->out);
25499 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25500 NDR_PULL_ALLOC(ndr, r->in.handle);
25502 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25503 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25504 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25505 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25506 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
25507 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
25508 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
25509 return 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));
25511 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
25512 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));
25513 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
25514 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
25515 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
25516 return 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));
25518 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
25519 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));
25520 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25521 NDR_PULL_ALLOC(ndr, r->out.type);
25522 ZERO_STRUCTP(r->out.type);
25523 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
25524 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
25525 NDR_PULL_ALLOC(ndr, r->out.needed);
25526 ZERO_STRUCTP(r->out.needed);
25528 if (flags & NDR_OUT) {
25529 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25530 NDR_PULL_ALLOC(ndr, r->out.type);
25532 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
25533 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
25534 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.type));
25535 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
25536 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
25537 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25538 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
25540 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
25541 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25542 NDR_PULL_ALLOC(ndr, r->out.needed);
25544 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25545 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25546 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25547 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25548 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25549 if (r->out.buffer) {
25550 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
25553 return NDR_ERR_SUCCESS;
25556 _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r)
25558 ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
25559 ndr->depth++;
25560 if (flags & NDR_SET_VALUES) {
25561 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25563 if (flags & NDR_IN) {
25564 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
25565 ndr->depth++;
25566 ndr_print_ptr(ndr, "handle", r->in.handle);
25567 ndr->depth++;
25568 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25569 ndr->depth--;
25570 ndr_print_string(ndr, "key_name", r->in.key_name);
25571 ndr_print_string(ndr, "value_name", r->in.value_name);
25572 ndr_print_uint32(ndr, "offered", r->in.offered);
25573 ndr->depth--;
25575 if (flags & NDR_OUT) {
25576 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
25577 ndr->depth++;
25578 ndr_print_ptr(ndr, "type", r->out.type);
25579 ndr->depth++;
25580 ndr_print_uint32(ndr, "type", *r->out.type);
25581 ndr->depth--;
25582 ndr_print_ptr(ndr, "buffer", r->out.buffer);
25583 ndr->depth++;
25584 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
25585 ndr->depth--;
25586 ndr_print_ptr(ndr, "needed", r->out.needed);
25587 ndr->depth++;
25588 ndr_print_uint32(ndr, "needed", *r->out.needed);
25589 ndr->depth--;
25590 ndr_print_WERROR(ndr, "result", r->out.result);
25591 ndr->depth--;
25593 ndr->depth--;
25596 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterDataEx *r)
25598 if (flags & NDR_IN) {
25599 if (r->in.handle == NULL) {
25600 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25602 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25603 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
25604 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25605 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
25606 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));
25607 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25609 if (flags & NDR_OUT) {
25610 if (r->out.buffer == NULL) {
25611 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25613 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25614 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
25615 if (r->out.needed == NULL) {
25616 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25618 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25619 if (r->out.count == NULL) {
25620 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25622 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
25623 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25625 return NDR_ERR_SUCCESS;
25628 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterDataEx *r)
25630 TALLOC_CTX *_mem_save_handle_0;
25631 TALLOC_CTX *_mem_save_needed_0;
25632 TALLOC_CTX *_mem_save_count_0;
25633 if (flags & NDR_IN) {
25634 ZERO_STRUCT(r->out);
25636 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25637 NDR_PULL_ALLOC(ndr, r->in.handle);
25639 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25640 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25641 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25642 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25643 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
25644 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
25645 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
25646 return 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));
25648 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
25649 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));
25650 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25651 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
25652 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
25653 NDR_PULL_ALLOC(ndr, r->out.needed);
25654 ZERO_STRUCTP(r->out.needed);
25655 NDR_PULL_ALLOC(ndr, r->out.count);
25656 ZERO_STRUCTP(r->out.count);
25658 if (flags & NDR_OUT) {
25659 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
25660 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25661 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
25663 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
25664 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25665 NDR_PULL_ALLOC(ndr, r->out.needed);
25667 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25668 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25669 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25670 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25671 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25672 NDR_PULL_ALLOC(ndr, r->out.count);
25674 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
25675 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
25676 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
25677 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
25678 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25679 if (r->out.buffer) {
25680 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
25683 return NDR_ERR_SUCCESS;
25686 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDataEx *r)
25688 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
25689 ndr->depth++;
25690 if (flags & NDR_SET_VALUES) {
25691 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25693 if (flags & NDR_IN) {
25694 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDataEx");
25695 ndr->depth++;
25696 ndr_print_ptr(ndr, "handle", r->in.handle);
25697 ndr->depth++;
25698 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25699 ndr->depth--;
25700 ndr_print_string(ndr, "key_name", r->in.key_name);
25701 ndr_print_uint32(ndr, "offered", r->in.offered);
25702 ndr->depth--;
25704 if (flags & NDR_OUT) {
25705 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
25706 ndr->depth++;
25707 ndr_print_ptr(ndr, "buffer", r->out.buffer);
25708 ndr->depth++;
25709 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
25710 ndr->depth--;
25711 ndr_print_ptr(ndr, "needed", r->out.needed);
25712 ndr->depth++;
25713 ndr_print_uint32(ndr, "needed", *r->out.needed);
25714 ndr->depth--;
25715 ndr_print_ptr(ndr, "count", r->out.count);
25716 ndr->depth++;
25717 ndr_print_uint32(ndr, "count", *r->out.count);
25718 ndr->depth--;
25719 ndr_print_WERROR(ndr, "result", r->out.result);
25720 ndr->depth--;
25722 ndr->depth--;
25725 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterKey *r)
25727 uint32_t cntr_key_buffer_1;
25728 if (flags & NDR_IN) {
25729 if (r->in.handle == NULL) {
25730 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25732 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25733 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
25734 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25735 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
25736 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));
25737 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.key_buffer_size));
25739 if (flags & NDR_OUT) {
25740 if (r->out.key_buffer == NULL) {
25741 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25743 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.key_buffer_size / 2));
25744 for (cntr_key_buffer_1 = 0; cntr_key_buffer_1 < r->in.key_buffer_size / 2; cntr_key_buffer_1++) {
25745 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.key_buffer[cntr_key_buffer_1]));
25747 if (r->out.needed == NULL) {
25748 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25750 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25751 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25753 return NDR_ERR_SUCCESS;
25756 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterKey *r)
25758 uint32_t cntr_key_buffer_1;
25759 TALLOC_CTX *_mem_save_handle_0;
25760 TALLOC_CTX *_mem_save_key_buffer_1;
25761 TALLOC_CTX *_mem_save_needed_0;
25762 if (flags & NDR_IN) {
25763 ZERO_STRUCT(r->out);
25765 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25766 NDR_PULL_ALLOC(ndr, r->in.handle);
25768 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25769 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25770 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25771 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25772 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
25773 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
25774 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
25775 return 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));
25777 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
25778 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));
25779 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.key_buffer_size));
25780 NDR_PULL_ALLOC_N(ndr, r->out.key_buffer, r->in.key_buffer_size / 2);
25781 memset(r->out.key_buffer, 0, (r->in.key_buffer_size / 2) * sizeof(*r->out.key_buffer));
25782 NDR_PULL_ALLOC(ndr, r->out.needed);
25783 ZERO_STRUCTP(r->out.needed);
25785 if (flags & NDR_OUT) {
25786 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.key_buffer));
25787 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25788 NDR_PULL_ALLOC_N(ndr, r->out.key_buffer, ndr_get_array_size(ndr, &r->out.key_buffer));
25790 _mem_save_key_buffer_1 = NDR_PULL_GET_MEM_CTX(ndr);
25791 NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, 0);
25792 for (cntr_key_buffer_1 = 0; cntr_key_buffer_1 < r->in.key_buffer_size / 2; cntr_key_buffer_1++) {
25793 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.key_buffer[cntr_key_buffer_1]));
25795 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_1, 0);
25796 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25797 NDR_PULL_ALLOC(ndr, r->out.needed);
25799 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25800 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25801 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25802 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25803 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25804 if (r->out.key_buffer) {
25805 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.key_buffer, r->in.key_buffer_size / 2));
25808 return NDR_ERR_SUCCESS;
25811 _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterKey *r)
25813 uint32_t cntr_key_buffer_1;
25814 ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
25815 ndr->depth++;
25816 if (flags & NDR_SET_VALUES) {
25817 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25819 if (flags & NDR_IN) {
25820 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterKey");
25821 ndr->depth++;
25822 ndr_print_ptr(ndr, "handle", r->in.handle);
25823 ndr->depth++;
25824 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25825 ndr->depth--;
25826 ndr_print_string(ndr, "key_name", r->in.key_name);
25827 ndr_print_uint32(ndr, "key_buffer_size", r->in.key_buffer_size);
25828 ndr->depth--;
25830 if (flags & NDR_OUT) {
25831 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
25832 ndr->depth++;
25833 ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
25834 ndr->depth++;
25835 ndr->print(ndr, "%s: ARRAY(%d)", "key_buffer", (int)r->in.key_buffer_size / 2);
25836 ndr->depth++;
25837 for (cntr_key_buffer_1=0;cntr_key_buffer_1<r->in.key_buffer_size / 2;cntr_key_buffer_1++) {
25838 char *idx_1=NULL;
25839 if (asprintf(&idx_1, "[%d]", cntr_key_buffer_1) != -1) {
25840 ndr_print_uint16(ndr, "key_buffer", r->out.key_buffer[cntr_key_buffer_1]);
25841 free(idx_1);
25844 ndr->depth--;
25845 ndr->depth--;
25846 ndr_print_ptr(ndr, "needed", r->out.needed);
25847 ndr->depth++;
25848 ndr_print_uint32(ndr, "needed", *r->out.needed);
25849 ndr->depth--;
25850 ndr_print_WERROR(ndr, "result", r->out.result);
25851 ndr->depth--;
25853 ndr->depth--;
25856 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDataEx *r)
25858 if (flags & NDR_IN) {
25859 if (r->in.handle == NULL) {
25860 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25862 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25863 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
25864 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25865 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
25866 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));
25867 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25868 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25869 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25870 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));
25872 if (flags & NDR_OUT) {
25873 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25875 return NDR_ERR_SUCCESS;
25878 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDataEx *r)
25880 TALLOC_CTX *_mem_save_handle_0;
25881 if (flags & NDR_IN) {
25882 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25883 NDR_PULL_ALLOC(ndr, r->in.handle);
25885 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25886 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25887 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25888 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25889 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
25890 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
25891 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
25892 return 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));
25894 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
25895 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));
25896 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
25897 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
25898 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
25899 return 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));
25901 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
25902 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));
25904 if (flags & NDR_OUT) {
25905 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25907 return NDR_ERR_SUCCESS;
25910 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDataEx *r)
25912 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
25913 ndr->depth++;
25914 if (flags & NDR_SET_VALUES) {
25915 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25917 if (flags & NDR_IN) {
25918 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDataEx");
25919 ndr->depth++;
25920 ndr_print_ptr(ndr, "handle", r->in.handle);
25921 ndr->depth++;
25922 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25923 ndr->depth--;
25924 ndr_print_string(ndr, "key_name", r->in.key_name);
25925 ndr_print_string(ndr, "value_name", r->in.value_name);
25926 ndr->depth--;
25928 if (flags & NDR_OUT) {
25929 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
25930 ndr->depth++;
25931 ndr_print_WERROR(ndr, "result", r->out.result);
25932 ndr->depth--;
25934 ndr->depth--;
25937 static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterKey *r)
25939 if (flags & NDR_IN) {
25940 if (r->in.handle == NULL) {
25941 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25943 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25944 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
25945 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25946 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
25947 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));
25949 if (flags & NDR_OUT) {
25950 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25952 return NDR_ERR_SUCCESS;
25955 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterKey *r)
25957 TALLOC_CTX *_mem_save_handle_0;
25958 if (flags & NDR_IN) {
25959 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25960 NDR_PULL_ALLOC(ndr, r->in.handle);
25962 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25963 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25964 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25965 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25966 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
25967 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
25968 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
25969 return 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));
25971 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
25972 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));
25974 if (flags & NDR_OUT) {
25975 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25977 return NDR_ERR_SUCCESS;
25980 _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterKey *r)
25982 ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
25983 ndr->depth++;
25984 if (flags & NDR_SET_VALUES) {
25985 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25987 if (flags & NDR_IN) {
25988 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
25989 ndr->depth++;
25990 ndr_print_ptr(ndr, "handle", r->in.handle);
25991 ndr->depth++;
25992 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25993 ndr->depth--;
25994 ndr_print_string(ndr, "key_name", r->in.key_name);
25995 ndr->depth--;
25997 if (flags & NDR_OUT) {
25998 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
25999 ndr->depth++;
26000 ndr_print_WERROR(ndr, "result", r->out.result);
26001 ndr->depth--;
26003 ndr->depth--;
26006 static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, int flags, const struct spoolss_53 *r)
26008 if (flags & NDR_IN) {
26010 if (flags & NDR_OUT) {
26011 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26013 return NDR_ERR_SUCCESS;
26016 static enum ndr_err_code ndr_pull_spoolss_53(struct ndr_pull *ndr, int flags, struct spoolss_53 *r)
26018 if (flags & NDR_IN) {
26020 if (flags & NDR_OUT) {
26021 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26023 return NDR_ERR_SUCCESS;
26026 _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_53 *r)
26028 ndr_print_struct(ndr, name, "spoolss_53");
26029 ndr->depth++;
26030 if (flags & NDR_SET_VALUES) {
26031 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26033 if (flags & NDR_IN) {
26034 ndr_print_struct(ndr, "in", "spoolss_53");
26035 ndr->depth++;
26036 ndr->depth--;
26038 if (flags & NDR_OUT) {
26039 ndr_print_struct(ndr, "out", "spoolss_53");
26040 ndr->depth++;
26041 ndr_print_WERROR(ndr, "result", r->out.result);
26042 ndr->depth--;
26044 ndr->depth--;
26047 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriverEx *r)
26049 if (flags & NDR_IN) {
26050 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
26051 if (r->in.server) {
26052 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26053 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26054 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26055 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26057 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
26058 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26059 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
26060 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26061 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
26062 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26063 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
26064 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26065 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
26066 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
26068 if (flags & NDR_OUT) {
26069 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26071 return NDR_ERR_SUCCESS;
26074 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriverEx *r)
26076 uint32_t _ptr_server;
26077 TALLOC_CTX *_mem_save_server_0;
26078 if (flags & NDR_IN) {
26079 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
26080 if (_ptr_server) {
26081 NDR_PULL_ALLOC(ndr, r->in.server);
26082 } else {
26083 r->in.server = NULL;
26085 if (r->in.server) {
26086 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
26087 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
26088 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
26089 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
26090 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
26091 return 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));
26093 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
26094 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
26095 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
26097 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
26098 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
26099 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
26100 return 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));
26102 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
26103 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
26104 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
26105 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
26106 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
26107 return 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));
26109 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
26110 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
26111 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
26112 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
26114 if (flags & NDR_OUT) {
26115 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26117 return NDR_ERR_SUCCESS;
26120 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriverEx *r)
26122 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
26123 ndr->depth++;
26124 if (flags & NDR_SET_VALUES) {
26125 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26127 if (flags & NDR_IN) {
26128 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
26129 ndr->depth++;
26130 ndr_print_ptr(ndr, "server", r->in.server);
26131 ndr->depth++;
26132 if (r->in.server) {
26133 ndr_print_string(ndr, "server", r->in.server);
26135 ndr->depth--;
26136 ndr_print_string(ndr, "architecture", r->in.architecture);
26137 ndr_print_string(ndr, "driver", r->in.driver);
26138 ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
26139 ndr_print_uint32(ndr, "version", r->in.version);
26140 ndr->depth--;
26142 if (flags & NDR_OUT) {
26143 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
26144 ndr->depth++;
26145 ndr_print_WERROR(ndr, "result", r->out.result);
26146 ndr->depth--;
26148 ndr->depth--;
26151 static enum ndr_err_code ndr_push_spoolss_55(struct ndr_push *ndr, int flags, const struct spoolss_55 *r)
26153 if (flags & NDR_IN) {
26155 if (flags & NDR_OUT) {
26156 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26158 return NDR_ERR_SUCCESS;
26161 static enum ndr_err_code ndr_pull_spoolss_55(struct ndr_pull *ndr, int flags, struct spoolss_55 *r)
26163 if (flags & NDR_IN) {
26165 if (flags & NDR_OUT) {
26166 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26168 return NDR_ERR_SUCCESS;
26171 _PUBLIC_ void ndr_print_spoolss_55(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_55 *r)
26173 ndr_print_struct(ndr, name, "spoolss_55");
26174 ndr->depth++;
26175 if (flags & NDR_SET_VALUES) {
26176 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26178 if (flags & NDR_IN) {
26179 ndr_print_struct(ndr, "in", "spoolss_55");
26180 ndr->depth++;
26181 ndr->depth--;
26183 if (flags & NDR_OUT) {
26184 ndr_print_struct(ndr, "out", "spoolss_55");
26185 ndr->depth++;
26186 ndr_print_WERROR(ndr, "result", r->out.result);
26187 ndr->depth--;
26189 ndr->depth--;
26192 static enum ndr_err_code ndr_push_spoolss_56(struct ndr_push *ndr, int flags, const struct spoolss_56 *r)
26194 if (flags & NDR_IN) {
26196 if (flags & NDR_OUT) {
26197 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26199 return NDR_ERR_SUCCESS;
26202 static enum ndr_err_code ndr_pull_spoolss_56(struct ndr_pull *ndr, int flags, struct spoolss_56 *r)
26204 if (flags & NDR_IN) {
26206 if (flags & NDR_OUT) {
26207 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26209 return NDR_ERR_SUCCESS;
26212 _PUBLIC_ void ndr_print_spoolss_56(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_56 *r)
26214 ndr_print_struct(ndr, name, "spoolss_56");
26215 ndr->depth++;
26216 if (flags & NDR_SET_VALUES) {
26217 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26219 if (flags & NDR_IN) {
26220 ndr_print_struct(ndr, "in", "spoolss_56");
26221 ndr->depth++;
26222 ndr->depth--;
26224 if (flags & NDR_OUT) {
26225 ndr_print_struct(ndr, "out", "spoolss_56");
26226 ndr->depth++;
26227 ndr_print_WERROR(ndr, "result", r->out.result);
26228 ndr->depth--;
26230 ndr->depth--;
26233 static enum ndr_err_code ndr_push_spoolss_57(struct ndr_push *ndr, int flags, const struct spoolss_57 *r)
26235 if (flags & NDR_IN) {
26237 if (flags & NDR_OUT) {
26238 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26240 return NDR_ERR_SUCCESS;
26243 static enum ndr_err_code ndr_pull_spoolss_57(struct ndr_pull *ndr, int flags, struct spoolss_57 *r)
26245 if (flags & NDR_IN) {
26247 if (flags & NDR_OUT) {
26248 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26250 return NDR_ERR_SUCCESS;
26253 _PUBLIC_ void ndr_print_spoolss_57(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_57 *r)
26255 ndr_print_struct(ndr, name, "spoolss_57");
26256 ndr->depth++;
26257 if (flags & NDR_SET_VALUES) {
26258 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26260 if (flags & NDR_IN) {
26261 ndr_print_struct(ndr, "in", "spoolss_57");
26262 ndr->depth++;
26263 ndr->depth--;
26265 if (flags & NDR_OUT) {
26266 ndr_print_struct(ndr, "out", "spoolss_57");
26267 ndr->depth++;
26268 ndr_print_WERROR(ndr, "result", r->out.result);
26269 ndr->depth--;
26271 ndr->depth--;
26274 static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, int flags, const struct spoolss_XcvData *r)
26276 if (flags & NDR_IN) {
26277 if (r->in.handle == NULL) {
26278 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26280 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26281 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
26282 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26283 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
26284 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));
26285 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
26286 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
26287 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
26288 if (r->in.status_code == NULL) {
26289 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26291 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
26293 if (flags & NDR_OUT) {
26294 if (r->out.out_data == NULL) {
26295 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26297 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
26298 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
26299 if (r->out.needed == NULL) {
26300 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26302 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26303 if (r->out.status_code == NULL) {
26304 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26306 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
26307 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26309 return NDR_ERR_SUCCESS;
26312 static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flags, struct spoolss_XcvData *r)
26314 TALLOC_CTX *_mem_save_handle_0;
26315 TALLOC_CTX *_mem_save_needed_0;
26316 TALLOC_CTX *_mem_save_status_code_0;
26317 if (flags & NDR_IN) {
26318 ZERO_STRUCT(r->out);
26320 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26321 NDR_PULL_ALLOC(ndr, r->in.handle);
26323 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26324 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26325 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26326 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26327 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
26328 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
26329 if (ndr_get_array_length(ndr, &r->in.function_name) > ndr_get_array_size(ndr, &r->in.function_name)) {
26330 return 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));
26332 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t)));
26333 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));
26334 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
26335 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
26336 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
26337 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26338 NDR_PULL_ALLOC(ndr, r->in.status_code);
26340 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
26341 NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
26342 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
26343 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
26344 NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
26345 memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
26346 NDR_PULL_ALLOC(ndr, r->out.needed);
26347 ZERO_STRUCTP(r->out.needed);
26348 NDR_PULL_ALLOC(ndr, r->out.status_code);
26349 *r->out.status_code = *r->in.status_code;
26351 if (flags & NDR_OUT) {
26352 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
26353 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26354 NDR_PULL_ALLOC_N(ndr, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data));
26356 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data)));
26357 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26358 NDR_PULL_ALLOC(ndr, r->out.needed);
26360 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26361 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26362 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26363 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26364 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26365 NDR_PULL_ALLOC(ndr, r->out.status_code);
26367 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
26368 NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
26369 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
26370 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
26371 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26372 if (r->out.out_data) {
26373 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
26376 return NDR_ERR_SUCCESS;
26379 _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_XcvData *r)
26381 ndr_print_struct(ndr, name, "spoolss_XcvData");
26382 ndr->depth++;
26383 if (flags & NDR_SET_VALUES) {
26384 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26386 if (flags & NDR_IN) {
26387 ndr_print_struct(ndr, "in", "spoolss_XcvData");
26388 ndr->depth++;
26389 ndr_print_ptr(ndr, "handle", r->in.handle);
26390 ndr->depth++;
26391 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26392 ndr->depth--;
26393 ndr_print_string(ndr, "function_name", r->in.function_name);
26394 ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
26395 ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
26396 ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
26397 ndr_print_ptr(ndr, "status_code", r->in.status_code);
26398 ndr->depth++;
26399 ndr_print_uint32(ndr, "status_code", *r->in.status_code);
26400 ndr->depth--;
26401 ndr->depth--;
26403 if (flags & NDR_OUT) {
26404 ndr_print_struct(ndr, "out", "spoolss_XcvData");
26405 ndr->depth++;
26406 ndr_print_ptr(ndr, "out_data", r->out.out_data);
26407 ndr->depth++;
26408 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
26409 ndr->depth--;
26410 ndr_print_ptr(ndr, "needed", r->out.needed);
26411 ndr->depth++;
26412 ndr_print_uint32(ndr, "needed", *r->out.needed);
26413 ndr->depth--;
26414 ndr_print_ptr(ndr, "status_code", r->out.status_code);
26415 ndr->depth++;
26416 ndr_print_uint32(ndr, "status_code", *r->out.status_code);
26417 ndr->depth--;
26418 ndr_print_WERROR(ndr, "result", r->out.result);
26419 ndr->depth--;
26421 ndr->depth--;
26424 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriverEx *r)
26426 if (flags & NDR_IN) {
26427 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
26428 if (r->in.servername) {
26429 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
26430 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26431 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
26432 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26434 if (r->in.info_ctr == NULL) {
26435 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26437 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
26438 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
26440 if (flags & NDR_OUT) {
26441 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26443 return NDR_ERR_SUCCESS;
26446 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriverEx *r)
26448 uint32_t _ptr_servername;
26449 TALLOC_CTX *_mem_save_servername_0;
26450 TALLOC_CTX *_mem_save_info_ctr_0;
26451 if (flags & NDR_IN) {
26452 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
26453 if (_ptr_servername) {
26454 NDR_PULL_ALLOC(ndr, r->in.servername);
26455 } else {
26456 r->in.servername = NULL;
26458 if (r->in.servername) {
26459 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
26460 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
26461 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
26462 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
26463 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
26464 return 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));
26466 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
26467 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
26468 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
26470 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26471 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
26473 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26474 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
26475 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
26476 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26477 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
26479 if (flags & NDR_OUT) {
26480 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26482 return NDR_ERR_SUCCESS;
26485 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriverEx *r)
26487 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
26488 ndr->depth++;
26489 if (flags & NDR_SET_VALUES) {
26490 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26492 if (flags & NDR_IN) {
26493 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
26494 ndr->depth++;
26495 ndr_print_ptr(ndr, "servername", r->in.servername);
26496 ndr->depth++;
26497 if (r->in.servername) {
26498 ndr_print_string(ndr, "servername", r->in.servername);
26500 ndr->depth--;
26501 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
26502 ndr->depth++;
26503 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
26504 ndr->depth--;
26505 ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
26506 ndr->depth--;
26508 if (flags & NDR_OUT) {
26509 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
26510 ndr->depth++;
26511 ndr_print_WERROR(ndr, "result", r->out.result);
26512 ndr->depth--;
26514 ndr->depth--;
26517 static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, int flags, const struct spoolss_5a *r)
26519 if (flags & NDR_IN) {
26521 if (flags & NDR_OUT) {
26522 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26524 return NDR_ERR_SUCCESS;
26527 static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, int flags, struct spoolss_5a *r)
26529 if (flags & NDR_IN) {
26531 if (flags & NDR_OUT) {
26532 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26534 return NDR_ERR_SUCCESS;
26537 _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5a *r)
26539 ndr_print_struct(ndr, name, "spoolss_5a");
26540 ndr->depth++;
26541 if (flags & NDR_SET_VALUES) {
26542 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26544 if (flags & NDR_IN) {
26545 ndr_print_struct(ndr, "in", "spoolss_5a");
26546 ndr->depth++;
26547 ndr->depth--;
26549 if (flags & NDR_OUT) {
26550 ndr_print_struct(ndr, "out", "spoolss_5a");
26551 ndr->depth++;
26552 ndr_print_WERROR(ndr, "result", r->out.result);
26553 ndr->depth--;
26555 ndr->depth--;
26558 static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, int flags, const struct spoolss_5b *r)
26560 if (flags & NDR_IN) {
26562 if (flags & NDR_OUT) {
26563 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26565 return NDR_ERR_SUCCESS;
26568 static enum ndr_err_code ndr_pull_spoolss_5b(struct ndr_pull *ndr, int flags, struct spoolss_5b *r)
26570 if (flags & NDR_IN) {
26572 if (flags & NDR_OUT) {
26573 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26575 return NDR_ERR_SUCCESS;
26578 _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5b *r)
26580 ndr_print_struct(ndr, name, "spoolss_5b");
26581 ndr->depth++;
26582 if (flags & NDR_SET_VALUES) {
26583 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26585 if (flags & NDR_IN) {
26586 ndr_print_struct(ndr, "in", "spoolss_5b");
26587 ndr->depth++;
26588 ndr->depth--;
26590 if (flags & NDR_OUT) {
26591 ndr_print_struct(ndr, "out", "spoolss_5b");
26592 ndr->depth++;
26593 ndr_print_WERROR(ndr, "result", r->out.result);
26594 ndr->depth--;
26596 ndr->depth--;
26599 static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, int flags, const struct spoolss_5c *r)
26601 if (flags & NDR_IN) {
26603 if (flags & NDR_OUT) {
26604 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26606 return NDR_ERR_SUCCESS;
26609 static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, int flags, struct spoolss_5c *r)
26611 if (flags & NDR_IN) {
26613 if (flags & NDR_OUT) {
26614 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26616 return NDR_ERR_SUCCESS;
26619 _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5c *r)
26621 ndr_print_struct(ndr, name, "spoolss_5c");
26622 ndr->depth++;
26623 if (flags & NDR_SET_VALUES) {
26624 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26626 if (flags & NDR_IN) {
26627 ndr_print_struct(ndr, "in", "spoolss_5c");
26628 ndr->depth++;
26629 ndr->depth--;
26631 if (flags & NDR_OUT) {
26632 ndr_print_struct(ndr, "out", "spoolss_5c");
26633 ndr->depth++;
26634 ndr_print_WERROR(ndr, "result", r->out.result);
26635 ndr->depth--;
26637 ndr->depth--;
26640 static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, int flags, const struct spoolss_5d *r)
26642 if (flags & NDR_IN) {
26644 if (flags & NDR_OUT) {
26645 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26647 return NDR_ERR_SUCCESS;
26650 static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, int flags, struct spoolss_5d *r)
26652 if (flags & NDR_IN) {
26654 if (flags & NDR_OUT) {
26655 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26657 return NDR_ERR_SUCCESS;
26660 _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5d *r)
26662 ndr_print_struct(ndr, name, "spoolss_5d");
26663 ndr->depth++;
26664 if (flags & NDR_SET_VALUES) {
26665 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26667 if (flags & NDR_IN) {
26668 ndr_print_struct(ndr, "in", "spoolss_5d");
26669 ndr->depth++;
26670 ndr->depth--;
26672 if (flags & NDR_OUT) {
26673 ndr_print_struct(ndr, "out", "spoolss_5d");
26674 ndr->depth++;
26675 ndr_print_WERROR(ndr, "result", r->out.result);
26676 ndr->depth--;
26678 ndr->depth--;
26681 static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, int flags, const struct spoolss_5e *r)
26683 if (flags & NDR_IN) {
26685 if (flags & NDR_OUT) {
26686 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26688 return NDR_ERR_SUCCESS;
26691 static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, int flags, struct spoolss_5e *r)
26693 if (flags & NDR_IN) {
26695 if (flags & NDR_OUT) {
26696 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26698 return NDR_ERR_SUCCESS;
26701 _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5e *r)
26703 ndr_print_struct(ndr, name, "spoolss_5e");
26704 ndr->depth++;
26705 if (flags & NDR_SET_VALUES) {
26706 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26708 if (flags & NDR_IN) {
26709 ndr_print_struct(ndr, "in", "spoolss_5e");
26710 ndr->depth++;
26711 ndr->depth--;
26713 if (flags & NDR_OUT) {
26714 ndr_print_struct(ndr, "out", "spoolss_5e");
26715 ndr->depth++;
26716 ndr_print_WERROR(ndr, "result", r->out.result);
26717 ndr->depth--;
26719 ndr->depth--;
26722 static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, int flags, const struct spoolss_5f *r)
26724 if (flags & NDR_IN) {
26726 if (flags & NDR_OUT) {
26727 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26729 return NDR_ERR_SUCCESS;
26732 static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, int flags, struct spoolss_5f *r)
26734 if (flags & NDR_IN) {
26736 if (flags & NDR_OUT) {
26737 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26739 return NDR_ERR_SUCCESS;
26742 _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5f *r)
26744 ndr_print_struct(ndr, name, "spoolss_5f");
26745 ndr->depth++;
26746 if (flags & NDR_SET_VALUES) {
26747 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26749 if (flags & NDR_IN) {
26750 ndr_print_struct(ndr, "in", "spoolss_5f");
26751 ndr->depth++;
26752 ndr->depth--;
26754 if (flags & NDR_OUT) {
26755 ndr_print_struct(ndr, "out", "spoolss_5f");
26756 ndr->depth++;
26757 ndr_print_WERROR(ndr, "result", r->out.result);
26758 ndr->depth--;
26760 ndr->depth--;
26763 static const struct ndr_interface_call spoolss_calls[] = {
26765 "spoolss_EnumPrinters",
26766 sizeof(struct spoolss_EnumPrinters),
26767 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
26768 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
26769 (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
26770 false,
26773 "spoolss_OpenPrinter",
26774 sizeof(struct spoolss_OpenPrinter),
26775 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
26776 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
26777 (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
26778 false,
26781 "spoolss_SetJob",
26782 sizeof(struct spoolss_SetJob),
26783 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
26784 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
26785 (ndr_print_function_t) ndr_print_spoolss_SetJob,
26786 false,
26789 "spoolss_GetJob",
26790 sizeof(struct spoolss_GetJob),
26791 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
26792 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
26793 (ndr_print_function_t) ndr_print_spoolss_GetJob,
26794 false,
26797 "spoolss_EnumJobs",
26798 sizeof(struct spoolss_EnumJobs),
26799 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
26800 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
26801 (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
26802 false,
26805 "spoolss_AddPrinter",
26806 sizeof(struct spoolss_AddPrinter),
26807 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
26808 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
26809 (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
26810 false,
26813 "spoolss_DeletePrinter",
26814 sizeof(struct spoolss_DeletePrinter),
26815 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
26816 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
26817 (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
26818 false,
26821 "spoolss_SetPrinter",
26822 sizeof(struct spoolss_SetPrinter),
26823 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
26824 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
26825 (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
26826 false,
26829 "spoolss_GetPrinter",
26830 sizeof(struct spoolss_GetPrinter),
26831 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
26832 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
26833 (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
26834 false,
26837 "spoolss_AddPrinterDriver",
26838 sizeof(struct spoolss_AddPrinterDriver),
26839 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
26840 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
26841 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
26842 false,
26845 "spoolss_EnumPrinterDrivers",
26846 sizeof(struct spoolss_EnumPrinterDrivers),
26847 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
26848 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
26849 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
26850 false,
26853 "spoolss_GetPrinterDriver",
26854 sizeof(struct spoolss_GetPrinterDriver),
26855 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
26856 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
26857 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
26858 false,
26861 "spoolss_GetPrinterDriverDirectory",
26862 sizeof(struct spoolss_GetPrinterDriverDirectory),
26863 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
26864 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
26865 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
26866 false,
26869 "spoolss_DeletePrinterDriver",
26870 sizeof(struct spoolss_DeletePrinterDriver),
26871 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
26872 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
26873 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
26874 false,
26877 "spoolss_AddPrintProcessor",
26878 sizeof(struct spoolss_AddPrintProcessor),
26879 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
26880 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
26881 (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
26882 false,
26885 "spoolss_EnumPrintProcessors",
26886 sizeof(struct spoolss_EnumPrintProcessors),
26887 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
26888 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
26889 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
26890 false,
26893 "spoolss_GetPrintProcessorDirectory",
26894 sizeof(struct spoolss_GetPrintProcessorDirectory),
26895 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
26896 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
26897 (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
26898 false,
26901 "spoolss_StartDocPrinter",
26902 sizeof(struct spoolss_StartDocPrinter),
26903 (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
26904 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
26905 (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
26906 false,
26909 "spoolss_StartPagePrinter",
26910 sizeof(struct spoolss_StartPagePrinter),
26911 (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
26912 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
26913 (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
26914 false,
26917 "spoolss_WritePrinter",
26918 sizeof(struct spoolss_WritePrinter),
26919 (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
26920 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
26921 (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
26922 false,
26925 "spoolss_EndPagePrinter",
26926 sizeof(struct spoolss_EndPagePrinter),
26927 (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
26928 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
26929 (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
26930 false,
26933 "spoolss_AbortPrinter",
26934 sizeof(struct spoolss_AbortPrinter),
26935 (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
26936 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
26937 (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
26938 false,
26941 "spoolss_ReadPrinter",
26942 sizeof(struct spoolss_ReadPrinter),
26943 (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
26944 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
26945 (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
26946 false,
26949 "spoolss_EndDocPrinter",
26950 sizeof(struct spoolss_EndDocPrinter),
26951 (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
26952 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
26953 (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
26954 false,
26957 "spoolss_AddJob",
26958 sizeof(struct spoolss_AddJob),
26959 (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
26960 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
26961 (ndr_print_function_t) ndr_print_spoolss_AddJob,
26962 false,
26965 "spoolss_ScheduleJob",
26966 sizeof(struct spoolss_ScheduleJob),
26967 (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
26968 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
26969 (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
26970 false,
26973 "spoolss_GetPrinterData",
26974 sizeof(struct spoolss_GetPrinterData),
26975 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
26976 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
26977 (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
26978 false,
26981 "spoolss_SetPrinterData",
26982 sizeof(struct spoolss_SetPrinterData),
26983 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
26984 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
26985 (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
26986 false,
26989 "spoolss_WaitForPrinterChange",
26990 sizeof(struct spoolss_WaitForPrinterChange),
26991 (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
26992 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
26993 (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
26994 false,
26997 "spoolss_ClosePrinter",
26998 sizeof(struct spoolss_ClosePrinter),
26999 (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
27000 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
27001 (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
27002 false,
27005 "spoolss_AddForm",
27006 sizeof(struct spoolss_AddForm),
27007 (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
27008 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
27009 (ndr_print_function_t) ndr_print_spoolss_AddForm,
27010 false,
27013 "spoolss_DeleteForm",
27014 sizeof(struct spoolss_DeleteForm),
27015 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
27016 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
27017 (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
27018 false,
27021 "spoolss_GetForm",
27022 sizeof(struct spoolss_GetForm),
27023 (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
27024 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
27025 (ndr_print_function_t) ndr_print_spoolss_GetForm,
27026 false,
27029 "spoolss_SetForm",
27030 sizeof(struct spoolss_SetForm),
27031 (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
27032 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
27033 (ndr_print_function_t) ndr_print_spoolss_SetForm,
27034 false,
27037 "spoolss_EnumForms",
27038 sizeof(struct spoolss_EnumForms),
27039 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
27040 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
27041 (ndr_print_function_t) ndr_print_spoolss_EnumForms,
27042 false,
27045 "spoolss_EnumPorts",
27046 sizeof(struct spoolss_EnumPorts),
27047 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
27048 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
27049 (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
27050 false,
27053 "spoolss_EnumMonitors",
27054 sizeof(struct spoolss_EnumMonitors),
27055 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
27056 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
27057 (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
27058 false,
27061 "spoolss_AddPort",
27062 sizeof(struct spoolss_AddPort),
27063 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
27064 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
27065 (ndr_print_function_t) ndr_print_spoolss_AddPort,
27066 false,
27069 "spoolss_ConfigurePort",
27070 sizeof(struct spoolss_ConfigurePort),
27071 (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
27072 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
27073 (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
27074 false,
27077 "spoolss_DeletePort",
27078 sizeof(struct spoolss_DeletePort),
27079 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
27080 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
27081 (ndr_print_function_t) ndr_print_spoolss_DeletePort,
27082 false,
27085 "spoolss_CreatePrinterIC",
27086 sizeof(struct spoolss_CreatePrinterIC),
27087 (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
27088 (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
27089 (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
27090 false,
27093 "spoolss_PlayGDIScriptOnPrinterIC",
27094 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
27095 (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
27096 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
27097 (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
27098 false,
27101 "spoolss_DeletePrinterIC",
27102 sizeof(struct spoolss_DeletePrinterIC),
27103 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
27104 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
27105 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
27106 false,
27109 "spoolss_AddPrinterConnection",
27110 sizeof(struct spoolss_AddPrinterConnection),
27111 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
27112 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
27113 (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
27114 false,
27117 "spoolss_DeletePrinterConnection",
27118 sizeof(struct spoolss_DeletePrinterConnection),
27119 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
27120 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
27121 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
27122 false,
27125 "spoolss_PrinterMessageBox",
27126 sizeof(struct spoolss_PrinterMessageBox),
27127 (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
27128 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
27129 (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
27130 false,
27133 "spoolss_AddMonitor",
27134 sizeof(struct spoolss_AddMonitor),
27135 (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
27136 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
27137 (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
27138 false,
27141 "spoolss_DeleteMonitor",
27142 sizeof(struct spoolss_DeleteMonitor),
27143 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
27144 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
27145 (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
27146 false,
27149 "spoolss_DeletePrintProcessor",
27150 sizeof(struct spoolss_DeletePrintProcessor),
27151 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
27152 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
27153 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
27154 false,
27157 "spoolss_AddPrintProvidor",
27158 sizeof(struct spoolss_AddPrintProvidor),
27159 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
27160 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
27161 (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
27162 false,
27165 "spoolss_DeletePrintProvidor",
27166 sizeof(struct spoolss_DeletePrintProvidor),
27167 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
27168 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
27169 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
27170 false,
27173 "spoolss_EnumPrintProcDataTypes",
27174 sizeof(struct spoolss_EnumPrintProcDataTypes),
27175 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcDataTypes,
27176 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcDataTypes,
27177 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcDataTypes,
27178 false,
27181 "spoolss_ResetPrinter",
27182 sizeof(struct spoolss_ResetPrinter),
27183 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
27184 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
27185 (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
27186 false,
27189 "spoolss_GetPrinterDriver2",
27190 sizeof(struct spoolss_GetPrinterDriver2),
27191 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
27192 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
27193 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
27194 false,
27197 "spoolss_FindFirstPrinterChangeNotification",
27198 sizeof(struct spoolss_FindFirstPrinterChangeNotification),
27199 (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
27200 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
27201 (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
27202 false,
27205 "spoolss_FindNextPrinterChangeNotification",
27206 sizeof(struct spoolss_FindNextPrinterChangeNotification),
27207 (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
27208 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
27209 (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
27210 false,
27213 "spoolss_FindClosePrinterNotify",
27214 sizeof(struct spoolss_FindClosePrinterNotify),
27215 (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
27216 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
27217 (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
27218 false,
27221 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
27222 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
27223 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
27224 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
27225 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
27226 false,
27229 "spoolss_ReplyOpenPrinter",
27230 sizeof(struct spoolss_ReplyOpenPrinter),
27231 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
27232 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
27233 (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
27234 false,
27237 "spoolss_RouterReplyPrinter",
27238 sizeof(struct spoolss_RouterReplyPrinter),
27239 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
27240 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
27241 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
27242 false,
27245 "spoolss_ReplyClosePrinter",
27246 sizeof(struct spoolss_ReplyClosePrinter),
27247 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
27248 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
27249 (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
27250 false,
27253 "spoolss_AddPortEx",
27254 sizeof(struct spoolss_AddPortEx),
27255 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
27256 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
27257 (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
27258 false,
27261 "spoolss_RouterFindFirstPrinterChangeNotification",
27262 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
27263 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
27264 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
27265 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
27266 false,
27269 "spoolss_SpoolerInit",
27270 sizeof(struct spoolss_SpoolerInit),
27271 (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
27272 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
27273 (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
27274 false,
27277 "spoolss_ResetPrinterEx",
27278 sizeof(struct spoolss_ResetPrinterEx),
27279 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
27280 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
27281 (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
27282 false,
27285 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
27286 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
27287 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
27288 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
27289 (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
27290 false,
27293 "spoolss_RouterReplyPrinterEx",
27294 sizeof(struct spoolss_RouterReplyPrinterEx),
27295 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinterEx,
27296 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinterEx,
27297 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinterEx,
27298 false,
27301 "spoolss_RouterRefreshPrinterChangeNotify",
27302 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify),
27303 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotify,
27304 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify,
27305 (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotify,
27306 false,
27309 "spoolss_44",
27310 sizeof(struct spoolss_44),
27311 (ndr_push_flags_fn_t) ndr_push_spoolss_44,
27312 (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
27313 (ndr_print_function_t) ndr_print_spoolss_44,
27314 false,
27317 "spoolss_OpenPrinterEx",
27318 sizeof(struct spoolss_OpenPrinterEx),
27319 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
27320 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
27321 (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
27322 false,
27325 "spoolss_AddPrinterEx",
27326 sizeof(struct spoolss_AddPrinterEx),
27327 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
27328 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
27329 (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
27330 false,
27333 "spoolss_47",
27334 sizeof(struct spoolss_47),
27335 (ndr_push_flags_fn_t) ndr_push_spoolss_47,
27336 (ndr_pull_flags_fn_t) ndr_pull_spoolss_47,
27337 (ndr_print_function_t) ndr_print_spoolss_47,
27338 false,
27341 "spoolss_EnumPrinterData",
27342 sizeof(struct spoolss_EnumPrinterData),
27343 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
27344 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
27345 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
27346 false,
27349 "spoolss_DeletePrinterData",
27350 sizeof(struct spoolss_DeletePrinterData),
27351 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
27352 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
27353 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
27354 false,
27357 "spoolss_4a",
27358 sizeof(struct spoolss_4a),
27359 (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
27360 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
27361 (ndr_print_function_t) ndr_print_spoolss_4a,
27362 false,
27365 "spoolss_4b",
27366 sizeof(struct spoolss_4b),
27367 (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
27368 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
27369 (ndr_print_function_t) ndr_print_spoolss_4b,
27370 false,
27373 "spoolss_4c",
27374 sizeof(struct spoolss_4c),
27375 (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
27376 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
27377 (ndr_print_function_t) ndr_print_spoolss_4c,
27378 false,
27381 "spoolss_SetPrinterDataEx",
27382 sizeof(struct spoolss_SetPrinterDataEx),
27383 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
27384 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
27385 (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
27386 false,
27389 "spoolss_GetPrinterDataEx",
27390 sizeof(struct spoolss_GetPrinterDataEx),
27391 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
27392 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
27393 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
27394 false,
27397 "spoolss_EnumPrinterDataEx",
27398 sizeof(struct spoolss_EnumPrinterDataEx),
27399 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
27400 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
27401 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
27402 false,
27405 "spoolss_EnumPrinterKey",
27406 sizeof(struct spoolss_EnumPrinterKey),
27407 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
27408 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
27409 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
27410 false,
27413 "spoolss_DeletePrinterDataEx",
27414 sizeof(struct spoolss_DeletePrinterDataEx),
27415 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
27416 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
27417 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
27418 false,
27421 "spoolss_DeletePrinterKey",
27422 sizeof(struct spoolss_DeletePrinterKey),
27423 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
27424 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
27425 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
27426 false,
27429 "spoolss_53",
27430 sizeof(struct spoolss_53),
27431 (ndr_push_flags_fn_t) ndr_push_spoolss_53,
27432 (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
27433 (ndr_print_function_t) ndr_print_spoolss_53,
27434 false,
27437 "spoolss_DeletePrinterDriverEx",
27438 sizeof(struct spoolss_DeletePrinterDriverEx),
27439 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
27440 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
27441 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
27442 false,
27445 "spoolss_55",
27446 sizeof(struct spoolss_55),
27447 (ndr_push_flags_fn_t) ndr_push_spoolss_55,
27448 (ndr_pull_flags_fn_t) ndr_pull_spoolss_55,
27449 (ndr_print_function_t) ndr_print_spoolss_55,
27450 false,
27453 "spoolss_56",
27454 sizeof(struct spoolss_56),
27455 (ndr_push_flags_fn_t) ndr_push_spoolss_56,
27456 (ndr_pull_flags_fn_t) ndr_pull_spoolss_56,
27457 (ndr_print_function_t) ndr_print_spoolss_56,
27458 false,
27461 "spoolss_57",
27462 sizeof(struct spoolss_57),
27463 (ndr_push_flags_fn_t) ndr_push_spoolss_57,
27464 (ndr_pull_flags_fn_t) ndr_pull_spoolss_57,
27465 (ndr_print_function_t) ndr_print_spoolss_57,
27466 false,
27469 "spoolss_XcvData",
27470 sizeof(struct spoolss_XcvData),
27471 (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
27472 (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
27473 (ndr_print_function_t) ndr_print_spoolss_XcvData,
27474 false,
27477 "spoolss_AddPrinterDriverEx",
27478 sizeof(struct spoolss_AddPrinterDriverEx),
27479 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
27480 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
27481 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
27482 false,
27485 "spoolss_5a",
27486 sizeof(struct spoolss_5a),
27487 (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
27488 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
27489 (ndr_print_function_t) ndr_print_spoolss_5a,
27490 false,
27493 "spoolss_5b",
27494 sizeof(struct spoolss_5b),
27495 (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
27496 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
27497 (ndr_print_function_t) ndr_print_spoolss_5b,
27498 false,
27501 "spoolss_5c",
27502 sizeof(struct spoolss_5c),
27503 (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
27504 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
27505 (ndr_print_function_t) ndr_print_spoolss_5c,
27506 false,
27509 "spoolss_5d",
27510 sizeof(struct spoolss_5d),
27511 (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
27512 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
27513 (ndr_print_function_t) ndr_print_spoolss_5d,
27514 false,
27517 "spoolss_5e",
27518 sizeof(struct spoolss_5e),
27519 (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
27520 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
27521 (ndr_print_function_t) ndr_print_spoolss_5e,
27522 false,
27525 "spoolss_5f",
27526 sizeof(struct spoolss_5f),
27527 (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
27528 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
27529 (ndr_print_function_t) ndr_print_spoolss_5f,
27530 false,
27532 { NULL, 0, NULL, NULL, NULL, false }
27535 static const char * const spoolss_endpoint_strings[] = {
27536 "ncacn_np:[\\pipe\\spoolss]",
27539 static const struct ndr_interface_string_array spoolss_endpoints = {
27540 .count = 1,
27541 .names = spoolss_endpoint_strings
27544 static const char * const spoolss_authservice_strings[] = {
27545 "host",
27548 static const struct ndr_interface_string_array spoolss_authservices = {
27549 .count = 1,
27550 .names = spoolss_authservice_strings
27554 const struct ndr_interface_table ndr_table_spoolss = {
27555 .name = "spoolss",
27556 .syntax_id = {
27557 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
27558 NDR_SPOOLSS_VERSION
27560 .helpstring = NDR_SPOOLSS_HELPSTRING,
27561 .num_calls = 96,
27562 .calls = spoolss_calls,
27563 .endpoints = &spoolss_endpoints,
27564 .authservices = &spoolss_authservices